Menggunakan ogr2ogr untuk mengonversi GML ke shapefile dengan Python?

22

Saya mencoba mengonversi GML ke bentuk ESRI menggunakan utilitas ogr2ogr dalam skrip python.

Saya telah berhasil menginstal paket GDAL / OGR melalui osgeo tetapi saya sekarang berjuang untuk menemukan / memahami setiap detail pada sintaks untuk menggunakan ogr2ogr dalam python.

Setelah mengimpor ogr, yang saya temukan hanyalah ogr2ogr -f "ESRI Shapefile" output.shp input.gml

Bagaimana saya menggunakan ini dalam python? Apakah sesederhana menetapkan file input dan output?

Semua yang saya coba, saya hanya mendapatkan kesalahan sintaks. Setiap petunjuk di arah yang benar untuk memulai saya akan sangat bagus.

Mat
sumber
kesalahan apa yang kamu dapatkan? dan apa versi GDAL Anda? tolong bagikan untuk membantu Anda ..
Aragon

Jawaban:

35

Ambil salinan port Python ogr2ogr, yang didistribusikan dengan unduhan kode sumber GDAL atau dapat ditemukan di sini: http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/ogr2ogr.py

Setelah Anda mengimpornya ke dalam kode Anda, Anda dapat menggunakannya seperti ini:

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
sumber
Ini adalah satu-satunya contoh kerja yang pernah saya lihat di mana saja.
bozdoz
5

Baca di os.system atau os.popen atau subproses . Atau cukup gunakan ogr2ogr dan shell Anda. Bahkan cmd.exe (Windows) memungkinkan Anda mengulang file input.

sgillies
sumber
1

Penjelasan terperinci bagaimana cara mengganti ogr2ogralat baris perintah dengan OGR Python API dapat ditemukan di sini .

ustroetz
sumber