Использование ogr2ogr для преобразования GML в шейп-файл в Python?

22

Я пытаюсь преобразовать GML в шейп-файл ESRI с помощью утилиты ogr2ogr в скрипте Python.

Я успешно установил пакет GDAL / OGR через osgeo, но сейчас я пытаюсь найти / понять какие-либо подробности о синтаксисе использования ogr2ogr в python.

После импорта ogr все, что я нашел, это ogr2ogr -f "ESRI Shapefile" output.shp input.gml

Как я могу использовать это в Python? Это так же просто, как назначить входные и выходные файлы?

Все, что я пытаюсь, я просто получаю синтаксические ошибки. Любые указатели в правильном направлении, чтобы начать меня, были бы великолепны.

Matt
источник
какие ошибки вы получаете? а какая у тебя версия GDAL? Пожалуйста, поделитесь, чтобы помочь вам ..
Арагон

Ответы:

35

Захватите копию порта Python ogr2ogr, который распространяется с загрузкой исходного кода GDAL или можно найти здесь: http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/ogr2ogr.py.

Как только вы импортируете это в свой код, вы можете использовать его следующим образом:

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"])
Эрик Левайн
источник
Это единственный рабочий пример, который я видел где-либо.
Боздоз
5

Вы, вероятно, найдете гораздо лучшие ответы, чем я могу дать на http://www.gis.usu.edu/~chrisg/python/2009/lectures/ospy_slides1.pdf и http://trac.osgeo.org/gdal/ вики / GdalOgrInPython .

Попробуйте там или другой учебник, связанный со вторым URL, и, возможно, задайте другой, более конкретный вопрос, если вы застряли.

Stev_k
источник
5

Читайте os.system или os.popen или подпроцесс . Или просто используйте ogr2ogr и вашу оболочку. Даже cmd.exe (Windows) позволяет перебирать входные файлы.

sgillies
источник
1

Подробное объяснение того, как заменить ogr2ogrинструмент командной строки API-интерфейсом OGR Python, можно найти здесь .

ustroetz
источник