¿Usando ogr2ogr para convertir GML a shapefile en Python?

22

Estoy tratando de convertir un GML en un archivo de forma ESRI usando la utilidad ogr2ogr en un script de Python.

He instalado con éxito el paquete GDAL / OGR a través de osgeo, pero ahora estoy luchando por encontrar / comprender cualquier detalle sobre la sintaxis para usar ogr2ogr en python.

Después de importar ogr, todo lo que he encontrado es ogr2ogr -f "ESRI Shapefile" output.shp input.gml

¿Cómo uso esto en Python? ¿Es tan simple como asignar los archivos de entrada y salida?

Todo lo que intento me sale errores de sintaxis. Cualquier sugerencia en la dirección correcta para comenzar sería genial.

Mate
fuente
que errores estas obteniendo y cual es tu versión GDAL? Por favor, comparte por ayudarte ...
Aragón

Respuestas:

35

Obtenga una copia del puerto Python ogr2ogr, que se distribuye con la descarga del código fuente GDAL o se puede encontrar aquí: http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/ogr2ogr.py

Una vez que importe eso en su código, puede usarlo así:

import ogr2ogr

def main():
  #note: main is expecting sys.argv, where the first argument is the script name
  #so, the argument indices in the array need to be offset by 1
  ogr2ogr.main(["","-f", "KML", "out.kml", "data/san_andres_y_providencia_administrative.shp"])
Eric Levine
fuente
Este es el único ejemplo de trabajo que he visto en cualquier lugar.
bozdoz
5

Lea sobre os.system u os.popen o subproceso . O simplemente use ogr2ogr y su shell. Incluso cmd.exe (Windows) le permite recorrer los archivos de entrada.

sgillies
fuente
1

Aquíogr2ogr se puede encontrar una explicación detallada sobre cómo sustituir la herramienta de línea de comandos con la API Python de OGR .

ustroetz
fuente