Sólo intento entender por qué Geopandas y QGIS pueden calcular áreas de forma diferente a pesar de utilizar exactamente los mismos shapefiles y exactamente las mismas proyecciones.
Ambos shapefiles utilizan EPSG:53032 - Equidistante azimutal de la esfera . La cadena Proj4 es:
+proj=aeqd +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs
A pesar de ello, ambos han arrojado resultados similares, pero sustancialmente diferentes.
Resultados de QGIS:
Resultados de Geopandas:
PARA SU INFORMACIÓN:
- Los resultados de QGIS se calcularon utilizando la función $area de la calculadora de campo
- Se puede acceder a los Shapefiles aquí si quieres jugar con ellos.
-
El código de Geopandas está más abajo:
import pandas as pd import geopandas as gpd
Import Shapefiles from Google Drive
gdf = gpd.read_file('https://drive.google.com/uc?export=download&id=1RnniXEYTJAfazYKQBMIRphj_gloK9uSm')
Update CRS
newcrs = "+proj=aeqd +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"
gdf = gdf.to_crs(newcrs) gdf["area"] = (((gdf['geometry'].area)/1000)/1000) # Divited by 1000 to convert into metres
gdf.sort_values(['area'], ascending = False)
0 votos
¿Por qué estás convirtiendo tu shapefile a 'newcrs' cuando ya está en ese CRS? [Si no está en ese CRS, ¿lo está reproyectando también en QGIS?]
0 votos
¿Qué versión de QGIS utiliza?
0 votos
Gracias. La pregunta está respondida, pero para que conste, estaba usando la versión 3.6.5 de QGIS y también estaba reproyectando esto en QGIS.