Geopandas - QGIS - ArcGIS alan değerleri
QGIS, ArcGIS ve GeoPandas'ta bir KML'nin alanlarını hesaplıyorum ve hepsi farklı, sonuçlarım şu:
Jeopandalar | ArcGIS | QGIS |
---|---|---|
29.3498 | 28.500084 | 25.651554 |
KML'nin orijinal crs'si 4326'dır, bu yüzden önce QGIS ve ArcGIS'te KML'yi yeniden yazıyorum (ArcGIS'te önce KML'yi bir shp veya özellik yapmalıyım) ve sonra alanı hesaplıyorum.
Bunu kontrol yazı ArcGIS Benzer bir şey yaptım aynı sorun hakkında ancak QGIS ile ve onlar dediğim gibi QGIS bölgeyi hesaplamak, ilk o zaman dataframe için koordinat sistemi ve set GeoPandas I'ile bölgeyi hesaplamak re Bunu yapıyorum:
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()
Birinin işlemi kontrol etmek istemesi durumunda dosyalar burada
Yanıtlar
GeoPandas'ta, şekil dosyasının coğrafi koordinat sistemini uyumlu bir projeksiyon sistemine dönüştürürsünüz (açı koruma, yani alanları korumaz). Farklı alan değerleri alması beklenir. Aslında, bu durumda, GeoPandalarda aynı değere sahip olsaydınız, o zaman bir şeyler yanlış olurdu.
QGIS ve ArcGIS söz konusu olduğunda, verilerinizde birçok geçersiz geometri vardır. QGIS'de Dağıtma aracını uygularsanız, bunu göreceksiniz. (Benim tahminim) ArcGIS ve QGIS geçersiz geometrileri farklı şekilde ele alıyor olabilir veya bizim farkında olmadığımız veya başka bir şey yapıyor olabilir.
Benim önerim:
- CR'leri değiştirdikten sonra
gdf
kullanarak kaydedingdf.to_file("new_file_path")
. - Ardından yeni şekil dosyasını açın ve alanları karşılaştırın.
Elimde olan bu:
Geopandas: 29.3497 km²
ArcGIS : 29.349727079406 km²
QGIS : 29.349727432 km²
Bu cevap, alanların neden farklı olduğunu tam olarak açıklamıyor. En azından farklı alanlardan kurtulursunuz.