Ich habe Polygone aus Koordinaten (pythonförmig), die so aussehen
POLYGON ((24.8085317 46.8512821, 24.7986952 46.8574619, 24.8088238 46.8664741, 24.8155239 46.8576335, 24.8085317 46.8512821))
Ich möchte die Fläche dieses Polygons in km ^ 2 berechnen. Was wäre der beste Weg, um dies in Python zu tun?
Antworten:
Mir war nicht sofort klar, wie @sgillies answer zu verwenden ist. Hier ist eine ausführlichere Version:
quelle
Es sieht so aus, als wären deine Koordinaten Längen- und Breitengrad, ja? Verwenden Sie die
shapely.ops.transform
Funktion von Shapely, um das Polygon in projizierte Koordinaten gleicher Fläche zu transformieren und dann die Fläche zu übernehmen.quelle
partial
es sich nicht um eine integrierte Funktion handelt.pyproj
müssen importiert und möglicherweise installiert werden, etc.pyproj.Proj(proj='aea', lat1=lat1, lat2=lat2)
führte zuCRSError: Invalid projection: +proj=aea +lat1=5.0 +lat2=6.0 +type=crs
. Ändernlat{1,2}
inlat_{1,2}
wie implizierten proj4 Dokumentation es fest:pyproj.Proj(proj='aea', lat1=lat1, lat2=lat2)
. Ist diese Antwort korrekt oder sollte sie aktualisiert werden?lat_1
undlat_2
anstelle vonlat1
und verwendenlat2
. Ich vermute, dies gilt nach PROJ 6.0.0Die obigen Antworten scheinen korrekt zu sein, AUSSER, dass die Parameter lat1 und lat2 im PyProj-Code kürzlich mit Unterstrichen umbenannt wurden: lat_1 und lat_2 (siehe /programming//a/55259718/1538758 ). Ich habe nicht genug Repräsentanten, um einen Kommentar abzugeben, also gebe ich eine neue Antwort (sorry, nicht sorry)
quelle
Ich bin über "Bereich" gestolpert, der einfacher zu bedienen zu sein scheint:
https://pypi.org/project/area/
Beispielsweise:
... kehrt zurück:
Fläche m2: 1082979.880942425
Fläche km2: 1,082979880942425
quelle