मैं सिर्फ इस युक्तियों का उपयोग करके shp के लिए एक Postgis Table को निर्यात करता हूं लेकिन मैं उसी लाइब्रेरी (ogr) का उपयोग करके Postgis में एक shp आयात करने में सक्षम नहीं हूं। कोई उपाय? बहुत बहुत धन्यवाद f।
मैं सिर्फ इस युक्तियों का उपयोग करके shp के लिए एक Postgis Table को निर्यात करता हूं लेकिन मैं उसी लाइब्रेरी (ogr) का उपयोग करके Postgis में एक shp आयात करने में सक्षम नहीं हूं। कोई उपाय? बहुत बहुत धन्यवाद f।
जवाबों:
शुद्ध पायथन में, उपप्रक्रमक मॉड्यूल का उपयोग किए बिना (os.system पदावनत किया जाता है) , उदाहरण के लिए, ogr2ogr
याshp2pgsql
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()
ogr2ogr -f "PostgreSQL" PG:”dbname=DBNAME host=localhost" file.shp -nln TABLENAME