পাইথন ও ওজিআর ব্যবহার করে পোস্টপিসে shp আমদানি করুন


14

আমি এই টিপসগুলি ব্যবহার করে কেবল পোস্টপিস টেবিলটি রফতানি করি তবে আমি একই লাইব্রেরি (ওজিআর) ব্যবহার করে পোস্টগ্রিসে কোনও এসপিপি আমদানি করতে পারছি না। কোন ধারণা? অনেক অনেক ধন্যবাদ।


1
এটি করার জন্য আপনার কি সত্যই অজগর ব্যবহার করতে হবে, বা আপনি কেবল ফাইলটি আমদানির চেষ্টা করছেন? আমি পড়ে যাচ্ছি আপনাকে ফাইলটি আমদানি করতে হবে এবং কমান্ড লাইনে ogr2ogr ব্যবহার করতে হবে ogr2ogr -f "PostgreSQL" PG:”dbname=DBNAME host=localhost" file.shp -nln TABLENAME
জেসি ক্রকার

উত্তর:


29

শুদ্ধ পাইথনে, সাবপ্রসেস মডিউলটি ব্যবহার না করে (os.system অবমূল্যায়ন করা হয়) কল করতে ogr2ogrবা shp2pgsqlউদাহরণস্বরূপ:

1) ogr সহ

২) পাইথন জিওস্প্যাটিয়াল ডেভলপমেন্ট (এরিক ওয়েস্ট্রা) বইয়ের অধ্যায়,, পি .২৯৯ থেকে ওগ্রা এবং সাইকোপজি ২ সহ

import os.path  
import psycopg2
import osgeo.ogr  
connection = psycopg2.connect("dbname=... user=...")  
cursor = connection.cursor()  
cursor.execute("DELETE FROM countries")  
srcFile = os.path.join("DISTAL-data", "TM_WORLD_BORDERS-0.3","TM_WORLD_BORDERS-0.3.shp")  
shapefile = osgeo.ogr.Open(srcFile)    
layer = shapefile.GetLayer(0)    
for i in range(layer.GetFeatureCount()):  
    feature = layer.GetFeature(i)  
    name = feature.GetField("NAME").decode("Latin-1")  
    wkt = feature.GetGeometryRef().ExportToWkt()  
    cursor.execute("INSERT INTO countries (name,outline) " +"VALUES (%s, ST_GeometryFromText(%s, " +"4326))", (name.encode("utf8"), wkt))  

connection.commit()  

3) শুধুমাত্র সাইকোপজি 2 সহ

4) সাইকোপজি 2 এবং অন্যান্য স্থানিক লাইব্রেরি সহ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.