पाइथन में शेपफाइल में पोस्टगिस टेबल को परिवर्तित करना?


10

मैं एक PostGIS तालिका को एक आकृति के रूप में परिवर्तित करना चाहता हूं (pgsql2shp का उपयोग किए बिना)।

शेपफाइल में ज्योमेट्री बनाने के लिए मुझे Xmin, Ymin और Xmax, Ymax देना होगा और मेरे PostGIS टेबल में जो ज्योमेट्री है, वह अनियमित आकार की है (मैं बाउंडिंग बॉक्स का उपयोग करके बाहरी प्राप्त कर सकता हूं, लेकिन इसमें शामिल होगा) मेरे अतिरिक्त क्षेत्र के कुछ अतिरिक्त क्षेत्र)। क्या कोई तरीका है जिसके द्वारा मैं कार्य पूरा कर सकता हूं?

मैं प्रोग्राम को व्यावहारिक रूप से और पायथन का उपयोग करके करना चाहता हूं।

जवाबों:


12

यदि आप इसे पायथन के साथ प्रोग्राम करना चाहते हैं तो संभवतः GDAL / OGR इसे करने का सबसे अच्छा तरीका है। नमूना उदाहरण कोड को देखें जो PostgreSQL से SHP फ़ाइल में तालिका पर प्रतिलिपि बनाता है। उदाहरण सही नहीं है, लेकिन आप अपनी आवश्यकताओं के अनुसार इसे आसानी से संशोधित कर सकते हैं।

import os
os.environ['PATH'] = "c:\\Program Files\\GDAL\\bin" + ';' + os.environ['PATH']
os.environ['GDAL_DRIVER_PATH'] = "c:\\Program Files\\GDAL\\bin\\gdal\\plugins-optional"
os.environ['GDAL_DATA'] = "c:\\Program Files\\GDAL\\bin\\gdal-data"
import ogr

conn=ogr.Open("PG: host=192.168.5.3 dbname=some_database user=postgres password=xxxx")
if conn is None:
    print 'Could not open a database or GDAL is not correctly installed!'
    sys.exit(1)

output = "d:\\points.shp"

# Schema definition of SHP file
out_driver = ogr.GetDriverByName( 'ESRI Shapefile' )
out_ds = out_driver.CreateDataSource(output)
out_srs = None
out_layer = out_ds.CreateLayer("point", out_srs, ogr.wkbPoint)
fd = ogr.FieldDefn('name',ogr.OFTString)
out_layer.CreateField(fd)


layer = conn.GetLayerByName("point_data")
#layer = conn.ExecuteSQL(sql)

feat = layer.GetNextFeature()
while feat is not None:
    featDef = ogr.Feature(out_layer.GetLayerDefn())
    featDef.SetGeometry(feat.GetGeometryRef())
    featDef.SetField('name',feat.TITLE)
    out_layer.CreateFeature(featDef)
    feat.Destroy()
    feat = layer.GetNextFeature()

conn.Destroy()
out_ds.Destroy()

यदि आपके प्रोग्रामिंग का वातावरण विंडोज़ है, तो आप यहाँ से GDAL / OGR डाउनलोड कर सकते हैं । कुछ अच्छी शुरुआती सामग्री जो आप यहाँ पा सकते हैं । आशा है ये मदद करेगा।


1

मैं आपको GDAL / OGR लाइब्रेरी पर एक नज़र डालने की सलाह दे सकता हूं: http://www.gdal.org/ogr/index.html

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