27 lines
679 B
Python
27 lines
679 B
Python
import pyproj
|
|
|
|
from functools import partial
|
|
from shapely.ops import transform
|
|
from shapely.geometry import Polygon
|
|
|
|
|
|
def polygon_area(poly):
|
|
return transform(
|
|
partial(pyproj.transform,
|
|
pyproj.Proj(init='EPSG:4326'),
|
|
pyproj.Proj(proj='aea',
|
|
lat1=poly.bounds[1],
|
|
lat2=poly.bounds[2],
|
|
)
|
|
),
|
|
poly
|
|
).area
|
|
|
|
|
|
def polygon_bounding_box_area(poly):
|
|
bbox = poly.bounds
|
|
p = Polygon([(bbox[0], bbox[3]), (bbox[0], bbox[1]),
|
|
(bbox[2], bbox[1]), (bbox[2], bbox[3]),
|
|
])
|
|
return polygon_area(p)
|