Usando ogr2ogr para converter GML em shapefile em Python?

22

Estou tentando converter um GML em um shapefile ESRI usando o utilitário ogr2ogr em um script python.

Instalei com sucesso o pacote GDAL / OGR via osgeo, mas agora estou lutando para encontrar / entender quaisquer detalhes sobre a sintaxe para usar ogr2ogr em python.

Depois de importar ogr, tudo o que encontrei é ogr2ogr -f "ESRI Shapefile" output.shp input.gml

Como eu uso isso em python? É tão simples quanto atribuir os arquivos de entrada e saída?

Tudo o que eu tento recebe apenas erros de sintaxe. Qualquer ponteiro na direção certa para começar seria ótimo.

Matt
fonte
que erros você está recebendo? e qual é a sua versão do GDAL? pls ação para ajudar a você ..
Aragon

Respostas:

35

Pegue uma cópia da porta Python ogr2ogr, que é distribuída com o download do código-fonte GDAL ou pode ser encontrada aqui: http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/ogr2ogr.py

Depois de importá-lo para o seu código, você pode usá-lo assim:

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
fonte
Este é o único exemplo de trabalho que eu já vi em qualquer lugar.
bozdoz
5

Leia sobre os.system ou os.popen ou subprocesso . Ou apenas use ogr2ogr e seu shell. Até o cmd.exe (Windows) permite fazer um loop sobre os arquivos de entrada.

sgillies
fonte
1

Uma explicação detalhada sobre como substituir a ogr2ogrferramenta de linha de comando pela API OGR Python pode ser encontrada aqui .

ustroetz
fonte