-
-
Save robinkraft/c6de2f988c9d3f01af3c to your computer and use it in GitHub Desktop.
import pyproj | |
from shapely.geometry import shape | |
from shapely.ops import transform | |
geom = {'type': 'Polygon', | |
'coordinates': [[[-122., 37.], [-125., 37.], | |
[-125., 38.], [-122., 38.], | |
[-122., 37.]]]} | |
s = shape(geom) | |
proj = partial(pyproj.transform, pyproj.Proj(init='epsg:4326'), | |
pyproj.Proj(init='epsg:3857')) | |
s_new = transform(proj, s) | |
projected_area = transform(proj, s).area |
if you have a list of coordinates than how to use them
here
from functools import partial
thnks!
Thanks for sharing this
Thank you.
Please note that init='epsg:4326'
is deprecated. use 'epsg:4326'
instead.
Hello,
when I am trying to calculate the area with the code above without init='epsg:4326' some values are returned as nan, while with it I have an output. Does anyone experience the same kind of problem?
Hello,
when I am trying to calculate the area with the code above without init='epsg:4326' some values are returned as nan, while with it I have an output. Does anyone experience the same kind of problem?
same here :-O
import pyproj
from shapely.geometry import shape
from shapely.ops import transform
geom = {'type': 'Polygon',
'coordinates': [[[-122., 37.], [-125., 37.],
[-125., 38.], [-122., 38.],
[-122., 37.]]]}
s = shape(geom)
wgs84 = pyproj.CRS('EPSG:4326')
utm = pyproj.CRS('EPSG:3857')
project = pyproj.Transformer.from_crs(wgs84, utm, always_xy=True).transform
projected_area = transform(project, s).area
print(projected_area )
This worked for me.
How would one use this code to interate over a gdf that contains the polygons in a column?
import pyproj from shapely.geometry import shape from shapely.ops import transform
geom = {'type': 'Polygon', 'coordinates': [[[-122., 37.], [-125., 37.], [-125., 38.], [-122., 38.], [-122., 37.]]]}
s = shape(geom) wgs84 = pyproj.CRS('EPSG:4326') utm = pyproj.CRS('EPSG:3857') project = pyproj.Transformer.from_crs(wgs84, utm, always_xy=True).transform projected_area = transform(project, s).area print(projected_area )
This worked for me.
I think worked for me too!
It looks you're missing an import:
from functools import partial