Geopandas vs QGIS vs valeurs de zone ArcGIS
Je calcule des zones d'un KML dans QGIS, ArcGIS et GeoPandas et tous sont alors différents, mes résultats sont les suivants:
Géopandas | ArcGIS | QGIS |
---|---|---|
29,3498 | 28,500084 | 25,651554 |
Le crs original du KML est 4326, donc dans QGIS et ArcGIS d'abord, je reprojecte le KML (dans ArcGIS, je dois d'abord faire du KML un shp ou une entité), puis je calcule la surface.
J'ai vérifié cet article sur le même problème mais avec QGIS, et je calcule la zone dans QGIS comme ils l'ont dit, dans ArcGIS, j'ai fait quelque chose de similaire, j'ai d'abord défini le système de coordonnées sur le dataframe, puis recalculé la zone, avec GeoPandas I´ je fais ceci:
import geopandas as gpd
import fiona
gpd.io.file.fiona.drvsupport.supported_drivers['KML'] = 'rw'
df = gpd.read_file('original_kml.kml', driver='KML')
gdf = df.to_crs('esri:102015')
gdf["area"] = gdf['geometry'].area/ 10**6
gdf.sum()
Juste au cas où quelqu'un voudrait vérifier le processus, les fichiers sont ici
Réponses
Dans GeoPandas, vous transformez le système de coordonnées géographiques du fichier de formes en un système projeté conforme (préservation de l'angle, ce qui signifie qu'il ne préserve pas les zones). On s'attend à ce que les valeurs de surface soient différentes. En fait, dans ce cas, si vous aviez la même valeur dans GeoPandas, alors quelque chose n'allait pas.
Quand il s'agit de QGIS vs ArcGIS, il existe de nombreuses géométries non valides dans vos données. Si vous appliquez l'outil Dissolve dans QGIS, vous le verrez. (Je présume) ArcGIS et QGIS peuvent gérer différemment les géométries non valides ou faire quelque chose dont nous ne sommes pas conscients ou autre chose.
Ma suggestion:
- Après avoir changé crs, enregistrez en
gdf
utilisantgdf.to_file("new_file_path")
. - Ensuite, ouvrez le nouveau fichier de formes et comparez les zones.
Voici ce que j'ai:
Geopandas: 29.3497 km²
ArcGIS : 29.349727079406 km²
QGIS : 29.349727432 km²
Cette réponse n'explique pas parfaitement pourquoi les domaines sont différents. Au moins, vous vous débarrassez du problème de différents domaines.