Geopandas 대 QGIS 대 ArcGIS 영역 값

Dec 20 2020

QGIS, ArcGIS 및 GeoPandas에서 KML 영역을 계산하고 있는데 모두 다르며 결과는 다음과 같습니다.

Geopandas ArcGIS QGIS
29.3498 28.500084 25,651554

KML의 원래 crs는 4326이므로 QGIS 및 ArcGIS에서 먼저 KML을 재 투영하고 (ArcGIS에서는 먼저 KML을 shp 또는 기능으로 만들어야 함) 면적을 계산합니다.

같은 문제 에 대해이 게시물을 확인 했지만 QGIS를 사용하여 QGIS에서 말한 것처럼 QGIS에서 면적을 계산했습니다. ArcGIS에서 비슷한 작업을 수행했습니다. 먼저 좌표계를 데이터 프레임으로 설정 한 다음 GeoPandas I´로 면적을 다시 계산합니다. m 이렇게 :

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

누군가가 프로세스를 확인하려는 경우 파일이 여기에 있습니다.

답변

5 KadirŞahbaz Dec 20 2020 at 03:00

GeoPandas에서 shapefile의 지리적 좌표계를 등각 투영 된 좌표계로 변환합니다 (각도 보존, 이는 영역을 보존하지 않음을 의미 함). 다른 면적 값을 얻을 것으로 예상됩니다. 사실이 경우 GeoPandas에서 동일한 값을 가졌다면 뭔가 잘못되었을 것입니다.

QGIS와 ArcGIS의 경우 데이터에 잘못된 지오메트리가 많이 있습니다. QGIS에서 Dissolve 도구를 적용하면 그것을 볼 수 있습니다. (내 가정) ArcGIS와 QGIS는 잘못된 지오메트리를 다르게 처리하거나 우리가 알지 못하는 일이나 다른 일을하고있을 수 있습니다.

나의 제안:

  • CRS를 변경 한 후 저장 gdf사용 gdf.to_file("new_file_path").
  • 그런 다음 새 shapefile을 열고 영역을 비교하십시오.

이것이 내가 가진 것입니다.

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

이 답변은 영역이 다른 이유를 완벽하게 설명하지 않습니다. 적어도 다른 영역 문제를 제거합니다.