Geopandas vs QGIS vs valores de área de ArcGIS

Dec 20 2020

Estoy calculando áreas de un KML en QGIS, ArcGIS y GeoPandas y todos son diferentes, mis resultados son los siguientes:

Geopandas ArcGIS QGIS
29.3498 28.500084 25,651554

El crs original del KML es 4326, por lo que en QGIS y ArcGIS primero reproyecto el KML (en ArcGIS primero tengo que convertir el KML en un shp o feature) y luego calculo el área.

Revisé esta publicación sobre el mismo problema pero con QGIS, y calculo el área en QGIS como dijeron, en ArcGIS hice algo similar, primero configuré el sistema de coordenadas en el marco de datos y luego volví a calcular el área, con GeoPandas I´ estoy haciendo esto:

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()

En caso de que alguien quiera verificar el proceso, los archivos están aquí.

Respuestas

5 KadirŞahbaz Dec 20 2020 at 03:00

En GeoPandas, transforma el sistema de coordenadas geográficas del shapefile en uno proyectado conforme (preserva el ángulo, lo que significa que no preserva áreas). Se espera obtener diferentes valores de área. De hecho, en este caso, si tuviera el mismo valor en GeoPandas, entonces algo estaría mal.

Cuando se trata de QGIS vs ArcGIS, hay muchas geometrías no válidas en sus datos. Si aplica la herramienta Disolver en QGIS, verá eso. (Supongo que) ArcGIS y QGIS pueden estar manejando las geometrías no válidas de manera diferente o están haciendo algo de lo que no somos conscientes o algo más.

Mi sugerencia:

  • Después de cambiar crs, guarde gdfusando gdf.to_file("new_file_path").
  • Luego abra el nuevo shapefile y compare las áreas.

Esto es lo que tengo:

Geopandas: 29.3497 km²  
ArcGIS   : 29.349727079406 km²
QGIS     : 29.349727432 km²

Esta respuesta no explica perfectamente por qué las áreas son diferentes. Al menos, te deshaces del problema de diferentes áreas.