While shapely doesn't natively understand coordinate systems,
shapely.ops.transform()
can do that along with pyproj
. If pyproj.Proj
can understand your both of your coordinate systems, then it can be made into a function that shapely can transform with.
From the shapely docs:
pyproj >= 2.1.0
import pyproj
from shapely.geometry import Point
from shapely.ops import transform
wgs84_pt = Point(-72.2495, 43.886)
wgs84 = pyproj.CRS('EPSG:4326')
utm = pyproj.CRS('EPSG:32618')
project = pyproj.Transformer.from_crs(wgs84, utm, always_xy=True).transform
utm_point = transform(project, wgs84_pt)
pyproj < 2.1
from functools import partial
import pyproj
from shapely.ops import transform
project = partial(
pyproj.transform,
pyproj.Proj(init='epsg:4326'), # source coordinate system
pyproj.Proj(init='epsg:26913')) # destination coordinate system
g2 = transform(project, g1) # apply projection
fiona.transform
looks to have what you need.