Geopandas vs QGIS vs nilai area ArcGIS

Dec 20 2020

Saya menghitung area KML di QGIS, ArcGIS, dan GeoPandas dan semuanya berbeda, hasil saya adalah ini:

Geopanda ArcGIS QGIS
29.3498 28,500084 25.651554

Cr asli dari KML adalah 4326, jadi di QGIS dan ArcGIS pertama, saya memproyeksikan ulang KML (di ArcGIS pertama saya harus membuat KML menjadi shp atau fitur) dan kemudian saya menghitung luasnya.

Saya memeriksa posting ini tentang masalah yang sama tetapi dengan QGIS, dan saya menghitung area di QGIS seperti yang mereka katakan, di ArcGIS saya melakukan sesuatu yang serupa, pertama saya mengatur sistem koordinat ke kerangka data dan kemudian menghitung ulang luasnya, dengan GeoPandas I´ saya melakukan ini:

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

Untuk berjaga-jaga jika seseorang ingin memeriksa proses, file tersebut ada di sini

Jawaban

5 KadirŞahbaz Dec 20 2020 at 03:00

Di GeoPandas, Anda mengubah sistem koordinat geografis dari shapefile menjadi yang diproyeksikan sesuai (menjaga sudut, yang berarti tidak melestarikan area). Diharapkan mendapatkan nilai wilayah yang berbeda. Faktanya, dalam kasus ini, jika Anda memiliki nilai yang sama di GeoPandas, maka ada sesuatu yang salah.

Dalam hal QGIS vs ArcGIS, ada banyak geometri yang tidak valid di data Anda. Jika Anda menerapkan alat Dissolve di QGIS, Anda akan melihatnya. (Asumsi saya) ArcGIS dan QGIS mungkin menangani geometri yang tidak valid secara berbeda atau mereka melakukan sesuatu yang tidak kita sadari atau sesuatu yang lain.

Saran saya:

  • Setelah mengganti crs, simpan gdfmenggunakan gdf.to_file("new_file_path").
  • Kemudian buka shapefile baru dan bandingkan areanya.

Inilah yang saya punya:

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

Jawaban ini tidak menjelaskan dengan sempurna mengapa area tersebut berbeda. Setidaknya, Anda menyingkirkan masalah area yang berbeda.