У меня есть полигоны из координат в (Python shapely), который выглядит следующим образом
POLYGON ((24.8085317 46.8512821, 24.7986952 46.8574619, 24.8088238 46.8664741, 24.8155239 46.8576335, 24.8085317 46.8512821))
Я хотел бы рассчитать площадь этого многоугольника в км ^ 2. Что было бы лучшим способом сделать это в Python?
Ответы:
Мне было не совсем понятно, как использовать ответ @sgillies, поэтому вот более подробная версия:
источник
Похоже, ваши координаты - это долгота и широта, да? Используйте
shapely.ops.transform
функцию Shapely, чтобы преобразовать многоугольник в проекции равных координат области, а затем взять область.источник
partial
это не встроенный;pyproj
придется импортировать и, возможно, устанавливать и т. д.pyproj.Proj(proj='aea', lat1=lat1, lat2=lat2)
что в результатеCRSError: Invalid projection: +proj=aea +lat1=5.0 +lat2=6.0 +type=crs
. Изменениеlat{1,2}
вlat_{1,2}
качестве подразумеваемых proj4 документации установил ее:pyproj.Proj(proj='aea', lat1=lat1, lat2=lat2)
. Является ли этот ответ точным или должен быть обновлен?lat_1
иlat_2
вместоlat1
иlat2
. Я подозреваю, что это применимо пост PROJ 6.0.0Приведенные выше ответы кажутся правильными, за исключением того, что в последнее время параметры lat1 и lat2 в коде pyproj были переименованы с подчеркиванием: lat_1 и lat_2 (см. Https://stackoverflow.com/a/55259718/1538758 ). У меня недостаточно представителей, чтобы комментировать, поэтому я делаю новый ответ (извините, не извините)
источник
Я наткнулся на «область», которая кажется проще в использовании:
https://pypi.org/project/area/
Например:
... возвращает:
площадь м2: 1082979.880942425
площадь км2: 1,082979880942425
источник