আপনি যদি কিউজিআইএস-এর পাইথন কনসোল থেকে সিএসভি ফাইল পুনঃপ্রজেজন করতে চান তবে নীচের স্ক্রিপ্টটি ব্যবহার করতে পারেন। আপনাকে যে সমস্ত পরিবর্তন করতে হবে তা হল মন্তব্যে উল্লিখিত তিনটি পথ s
মূলত, স্ক্রিপ্টটি আপনার সিএসভি ফাইলগুলি কিউজিআইএস-এ শেপফিল হিসাবে আমদানি করে (আপনার জ্যামিতিক ক্ষেত্রগুলির নাম Xএবং ধরে নেওয়া হয় Y)। এরপরে প্রসেসিং টুলবক্স থেকে qgis:reprojectlayerএবং qgis:fieldcalculatorঅ্যালগরিদমগুলি নতুন স্থানাঙ্কগুলির সাথে এবং ক্ষেত্রগুলি পুনরায় প্রজেক্ট করতে এবং আপডেট করতে ব্যবহার করে । এরপরে এগুলি একটি ফোল্ডারে সংরক্ষণ করে এবং আপনার নির্দিষ্ট করা পথে সিএসভি ফাইলগুলিতে রূপান্তর করে। সুতরাং শেষ পর্যন্ত, আপনার পৃথক ফোল্ডারে শেডফিল এবং সিএসভি ফাইল আপডেট হয়েছে।XY
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")
আশাকরি এটা সাহায্য করবে!