Використовуючи ogr2ogr для перетворення GML у shapefile в Python?


22

Я намагаюсь перетворити GML у файл формату ESRI за допомогою утиліти ogr2ogr у сценарії python.

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

Після імпорту ogr все, що я знайшов, - це ogr2ogr -f "ESRI Shapefile" output.shp input.gml

Як я можу це використовувати в python? Це так просто, як призначити вхідні та вихідні файли?

Все, що я намагаюся, я просто отримую синтаксичні помилки. Будь-які вказівники в правильному напрямку, щоб почати мене, було б чудово.


які помилки ви отримуєте? а яка у вас версія GDAL? pls поділіться за допомогу вам ..
Арагон

Відповіді:


35

Візьміть копію порту ogr2ogr Python, який розповсюджується за допомогою завантаження вихідного коду 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"])

Це єдиний робочий приклад, який я бачив де-небудь.
bozdoz

5

Напевно ви знайдете набагато кращі відповіді, ніж я можу дати вам на http://www.gis.usu.edu/~chrisg/python/2009/lectures/ospy_slides1.pdf та http://trac.osgeo.org/gdal/ wiki / GdalOgrInPython .

Спробуйте там чи інший підручник, пов’язаний із другою URL-адресою, і, можливо, задайте інше конкретніше питання, якщо ви застрягли.


5

Прочитайте на os.system або os.popen або subprocess . Або просто використовуйте ogr2ogr та вашу оболонку. Навіть cmd.exe (Windows) дозволяє перебирати вхідні файли.


1

Детальне пояснення як замінити інструмент ogr2ogrкомандного рядка API OGR Python можна знайти тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.