আপনি যদি কিউজিআইএস-এর পাইথন কনসোল থেকে সিএসভি ফাইল পুনঃপ্রজেজন করতে চান তবে নীচের স্ক্রিপ্টটি ব্যবহার করতে পারেন। আপনাকে যে সমস্ত পরিবর্তন করতে হবে তা হল মন্তব্যে উল্লিখিত তিনটি পথ s
মূলত, স্ক্রিপ্টটি আপনার সিএসভি ফাইলগুলি কিউজিআইএস-এ শেপফিল হিসাবে আমদানি করে (আপনার জ্যামিতিক ক্ষেত্রগুলির নাম 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")
আশাকরি এটা সাহায্য করবে!