16 votos

Importación de shp a Postgis usando Python y ogr

Acabo de exportar una Tabla Postgis para shp usando este consejos pero yo no soy capaz de importar un shp a Postgis usar la misma biblioteca(ogr). Alguna idea? Muchas gracias f.

32voto

GreyCat Puntos 146

En Python puro, sin necesidad de utilizar el módulo subprocess (os.el sistema está en desuso) para llamar a ogr2ogr o shp2pgsql, por ejemplo):

1) con ogr

2) con la ogr y psycopg2 del libro de Python Geoespacial de Desarrollo (Eric Westra), Capítulo 7, pág.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) con psycopg2 sólo

4) con psycopg2 y otros espacial de las bibliotecas

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X