J'ai des polygones de coordonnées en (python galbé) qui ressemble à ceci
POLYGON ((24.8085317 46.8512821, 24.7986952 46.8574619, 24.8088238 46.8664741, 24.8155239 46.8576335, 24.8085317 46.8512821))
Je voudrais calculer l'aire de ce polygone en km ^ 2. Quelle serait la meilleure façon de le faire en Python?
Réponses:
Il n'était pas évident pour moi comment utiliser la réponse @sgillies, alors voici une version plus détaillée:
la source
Il semble que vos coordonnées soient la longitude et la latitude, oui? Utilisez la
shapely.ops.transform
fonction de Shapely pour transformer le polygone en coordonnées de zone égales projetées , puis prenez la zone.la source
partial
ne s'agit pas d'un système intégré;pyproj
devra être importé et éventuellement installé, etc.pyproj.Proj(proj='aea', lat1=lat1, lat2=lat2)
résultatCRSError: Invalid projection: +proj=aea +lat1=5.0 +lat2=6.0 +type=crs
. La modificationlat{1,2}
enlat_{1,2}
tant que sous - entendus par la documentation PROJ4 fixe il:pyproj.Proj(proj='aea', lat1=lat1, lat2=lat2)
. Cette réponse est-elle exacte ou doit-elle être mise à jour?lat_1
etlat_2
au lieu delat1
etlat2
. Je soupçonne que cela s'applique après PROJ 6.0.0Les réponses ci-dessus semblent être correctes, SAUF qu'à un moment donné récemment, les paramètres lat1 et lat2 dans le code pyproj ont été renommés avec des traits de soulignement: lat_1 et lat_2 (voir /programming//a/55259718/1538758 ). Je n'ai pas assez de représentant pour commenter, donc je fais une nouvelle réponse (désolé pas désolé)
la source
Je suis tombé sur "zone" qui semble plus simple à utiliser:
https://pypi.org/project/area/
Par exemple:
... Retour:
surface m2: 1082979.880942425
superficie en km2: 1.082979880942425
la source