Python GDAL: ogr.open atau driver.open?

10

Saya telah menggunakan GDAL dengan python untuk memanipulasi shapefile. Saat membuka file sumber, saya pertama-tama mengatur driver ke "ESRI Shapefile" sebelum memanggil metode "Open" driver dengan shapefile yang diperlukan.

Saya tidak punya masalah dengan ini; namun saya ingin tahu apa perbedaan antara metode instance Driver "Open" dan fungsi ogr "Open". Misalnya, apa perbedaan antara:

driver = ogr.GetDriverByName("ESRI Shapefile")
source = driver.Open(“O:\myshp.shp”,0)

dan

source = ogr.Open(“O:\myshp.shp”,0)

Apakah ada skenario tertentu di mana Anda akan menggunakan salah satunya?

Ali
sumber
Pertanyaan tindak lanjut: sepertinya driver = gdal.GetDriverByNamebekerja, dan gdal.Openberfungsi, tetapi driver.Opentidak. Apakah tidak ada padanan untuk file raster? Saya tahu GDAL dan OGR pada awalnya dikembangkan oleh orang yang berbeda, tetapi ketidakkonsistenan API ini dan kurangnya dokumentasi sangat menyakitkan ...
Adam Stewart

Jawaban:

11

Jika Anda menentukan driver, OGR hanya akan mencoba untuk membuka file Anda dengan driver yang ditentukan.

Jika Anda tidak menentukannya, OGR akan mencoba membuka file Anda dengan semua driver. Ini akan mengulang semua driver hingga menemukan driver yang dapat membuka file Anda. Perintah yang mencoba membukanya adalah urutan yang sama seperti yang tercantum dalam ogrinfo --formats.

Lihat juga pertanyaan ini: Paksa OGR untuk menggunakan driver spesifik untuk format input

ustroetz
sumber