Geopandas बनाम QGIS बनाम ArcGIS क्षेत्र मूल्य

Dec 20 2020

मैं QGIS, ArcGIS और GeoPandas में KML के क्षेत्रों की गणना कर रहा हूं और फिर सभी अलग-अलग हैं, मेरे परिणाम निम्न हैं:

जियोपास आर्कगिस QGIS
29.3498 28.500084 २५,६५१५५४

KML का मूल crs 4326 है, इसलिए पहले QGIS और ArcGIS में, मैं KML को अस्वीकार करता हूं (ArcGIS में पहले मुझे KML को shp या फीचर बनाना है) और फिर मैं क्षेत्र की गणना करता हूं।

मैंने उसी समस्या के बारे में इस पोस्ट की जाँच की लेकिन QGIS के साथ, और मैं QGIS में क्षेत्र की गणना करता हूं जैसे उन्होंने कहा, आर्कगिस में मैंने कुछ ऐसा ही किया, पहले मैंने समन्वय प्रणाली को डेटाफ़्रेम में सेट किया और फिर क्षेत्र की गणना की, GeoGandas I के साथ मैं यह कर रहा हूँ:

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 में, आप आकृतिफाइल की भौगोलिक समन्वय प्रणाली को एक अनुरूप प्रोजेक्ट (कोण-संरक्षण, जिसका अर्थ है कि यह क्षेत्रों को संरक्षित नहीं करता है) में बदल देता है। इससे अलग-अलग क्षेत्र मूल्यों को प्राप्त करने की उम्मीद है। वास्तव में, इस मामले में, यदि आपके पास जियोपैन्डस में समान मूल्य है, तो कुछ गलत होगा।

जब QGIS बनाम ArcGIS की बात आती है, तो आपके डेटा में कई अवैध ज्यामिति हैं। यदि आप QGIS में डिसॉल्व टूल लगाते हैं तो आप देखेंगे। (मेरे अनुमान) आर्किज और क्यूजीआईएस अवैध ज्यामिति को अलग-अलग तरीके से संभाल रहे हैं या वे कुछ ऐसा कर रहे हैं जिसके बारे में हमें कुछ पता नहीं है।

मेरा सुझाव:

  • सीआरएस बदलने के बाद, gdfउपयोग करने से बचाएं gdf.to_file("new_file_path")
  • फिर नए आकार को खोलें और क्षेत्रों की तुलना करें।

यह मेरे पास है:

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

यह उत्तर पूरी तरह से नहीं समझाता है कि क्षेत्र अलग क्यों हैं। कम से कम, आपको विभिन्न क्षेत्रों के मुद्दे से छुटकारा मिलता है।