यदि आप QGIS में पायथन कंसोल से सीएसवी फ़ाइलों को फिर से देखना चाहते हैं तो आप निम्न स्क्रिप्ट का उपयोग कर सकते हैं। आपको केवल उन तीन रास्तों को बदलना होगा जो टिप्पणियों में उल्लिखित हैं।
अनिवार्य रूप से, स्क्रिप्ट आपके सीएसवी फाइलों को क्यूजीआईएस में आकृतिफाइल्स के रूप में आयात करता है (यह मानते हुए कि आपके ज्यामितीय क्षेत्र का नाम X
और है Y
)। इसके बाद प्रसंस्करण टूलबॉक्स से qgis:reprojectlayer
और qgis:fieldcalculator
एल्गोरिदम का उपयोग करता है और नए निर्देशांकों के साथ और फ़ील्ड्स को रीप्रोजेक्ट और अपडेट करता है । यह तब इन्हें एक फोल्डर में सेव करता है और इन्हें आपके द्वारा निर्दिष्ट पथ में सीएसवी फाइलों में परिवर्तित करता है। इसलिए अंत में, आपने अलग-अलग फ़ोल्डरों में शेपफाइल्स और सीएसवी फाइलें अपडेट की हैं।X
Y
import glob, os, processing
path_to_csv = "C:/Users/You/Desktop/Testing//" # Change path to the directory of your csv files
shape_result = "C:/Users/You/Desktop/Testing/Shapefile results//" # Change path to where you want the shapefiles saved
os.chdir(path_to_csv) # Sets current directory to path of csv files
for fname in glob.glob("*.csv"): # Finds each .csv file and applies following actions
uri = "file:///" + path_to_csv + fname + "?delimiter=%s&crs=epsg:4326&xField=%s&yField=%s" % (",", "x", "y")
name = fname.replace('.csv', '')
lyr = QgsVectorLayer(uri, name, 'delimitedtext')
QgsMapLayerRegistry.instance().addMapLayer(lyr) # Imports csv files to QGIS canvas (assuming 'X' and 'Y' fields exist)
crs = 'EPSG:32633' # Set crs
shapefiles = QgsMapLayerRegistry.instance().mapLayers().values() # Identifies loaded layers before transforming and updating 'X' and 'Y' fields
for shapes in shapefiles:
outputs_0 = processing.runalg("qgis:reprojectlayer", shapes, crs, None)
outputs_1 = processing.runalg("qgis:fieldcalculator", outputs_0['OUTPUT'], 'X', 0, 10, 10, False, '$x', None)
outputs_2 = processing.runalg("qgis:fieldcalculator", outputs_1['OUTPUT_LAYER'], 'Y', 0, 10, 10, False, '$y', shape_result + shapes.name())
os.chdir(shape_result) # Sets current directory to path of new shapefiles
for layer in glob.glob("*.shp"): # Finds each .shp file and applies following actions
new_layer = QgsVectorLayer(layer, os.path.basename(layer), "ogr")
new_name = layer.replace('.shp', '')
csvpath = "C:/Users/You/Desktop/Testing/CSV results/" + new_name + ".csv" # Change path to where you want the csv(s) saved
QgsVectorFileWriter.writeAsVectorFormat(new_layer, csvpath, 'utf-8', None, "CSV")
उम्मीद है की यह मदद करेगा!