«Недопустимая проекция» при вычислении площади многоугольника

#python #area #geode #pyproj

Вопрос:

Я пытаюсь вычислить площадь полигона в км2 и спроецировать в EPSG: 3857, но он не распознает мои crs

 raise GeodError("Invalid geometry provided.")
pyproj.exceptions.GeodError: Invalid geometry provided.
 

должен ли я использовать другой? является ли функция неправильной?

 def area(polygon):
        geod = Geod('EPSG: 3857')
        x, y = polygon.exterior.coords.xy
        area, perimeter = geod.geometry_area_perimeter(x,y)
        return area
 

Комментарии:

1. Что такое CRS точек в многоугольнике?

2. в WGS84 или EPSG 4326

Ответ №1:

Геодезические вычисления ожидают географических данных. Вот пример для ваших данных в WGS84 / EPSG: 4326:

https://pyproj4.github.io/pyproj/stable/examples.html#creating-geod-class

 from pyproj import Geod, CRS
geod = Geod(ellps='WGS84')
# or
geod = CRS("EPSG:4326").get_geod()