Valores de área Geopandas vs QGIS vs ArcGIS
Estou calculando áreas de um KML em QGIS, ArcGIS e GeoPandas e todos são diferentes, meus resultados são estes:
Geopandas | ArcGIS | QGIS |
---|---|---|
29,3498 | 28,500084 | 25,651554 |
O crs original do KML é 4326, então no QGIS e no ArcGIS primeiro, eu reprojeto o KML (no ArcGIS primeiro tenho que fazer do KML um shp ou recurso) e então calculo a área.
Verifiquei este post sobre o mesmo problema mas com QGIS, e calculo a área no QGIS como eles disseram, no ArcGIS fiz algo semelhante, primeiro configurei o sistema de coordenadas para o dataframe e depois recalculei a área, com GeoPandas I estou fazendo isso:
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()
Caso alguém queira verificar o processo, os arquivos estão aqui
Respostas
No GeoPandas, você transforma o sistema de coordenadas geográficas do shapefile em um projetado conforme (preservação do ângulo, o que significa que não preserva áreas). Espera-se obter diferentes valores de área. Na verdade, neste caso, se você tivesse o mesmo valor no GeoPandas, então algo estaria errado.
Quando se trata de QGIS vs ArcGIS, existem muitas geometrias inválidas em seus dados. Se você aplicar a ferramenta Dissolve no QGIS, você verá isso. (Minha suposição) ArcGIS e QGIS podem estar lidando com geometrias inválidas de forma diferente ou estão fazendo algo que não temos conhecimento ou outra coisa.
Minha sugestão:
- Depois de alterar crs, salve
gdf
usandogdf.to_file("new_file_path")
. - Em seguida, abra o novo arquivo de forma e compare as áreas.
Isso é o que eu tenho:
Geopandas: 29.3497 km²
ArcGIS : 29.349727079406 km²
QGIS : 29.349727432 km²
Essa resposta não explica perfeitamente por que as áreas são diferentes. Pelo menos, você se livrar do problema de diferentes áreas.