पायथन और ओगर का उपयोग करके पोस्टगिस को आयात करें


14

मैं सिर्फ इस युक्तियों का उपयोग करके shp के लिए एक Postgis Table को निर्यात करता हूं लेकिन मैं उसी लाइब्रेरी (ogr) का उपयोग करके Postgis में एक shp आयात करने में सक्षम नहीं हूं। कोई उपाय? बहुत बहुत धन्यवाद f।


1
क्या आपको वास्तव में इसे करने के लिए अजगर का उपयोग करने की आवश्यकता है, या आप बस फ़ाइल आयात करने की कोशिश कर रहे हैं? मुझे लगता है कि आपको करने की ज़रूरत है फ़ाइल आयात करें फिर कमांड लाइन पर ogr2ogr का उपयोग करेंogr2ogr -f "PostgreSQL" PG:”dbname=DBNAME host=localhost" file.shp -nln TABLENAME
जेसी क्रोकर

जवाबों:


29

शुद्ध पायथन में, उपप्रक्रमक मॉड्यूल का उपयोग किए बिना (os.system पदावनत किया जाता है) , उदाहरण के लिए, ogr2ogrयाshp2pgsql

1) ओगर के साथ

2) OGR और साथ psycopg2 किताब से अजगर भू-स्थानिक विकास (एरिक Westra), अध्याय 7, p.219

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) psycopg2 के साथ ही

4) psycopg2 और अन्य स्थानिक पुस्तकालयों के साथ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.