Python GDAL: ogr.open або driver.open?


10

Я використовував GDAL з python для маніпулювання файлами. Відкриваючи вихідний файл, я спочатку встановлюю драйвер на "ESRI Shapefile" перед тим, як викликати метод "Відкрити" драйвера з необхідним файлом форми.

У мене з цим проблем не було; однак мені цікаво, в чому різниця між методом екземпляра драйвера “Open” та функцією ogr “Open”. Наприклад, яка різниця між:

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

і

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

Чи є певний сценарій, де ви б використовували один над іншим?


Подальше запитання: це здається, що driver = gdal.GetDriverByNameпрацює, і gdal.Openпрацює, але driver.Openні. Чи немає еквіваленту для растрових файлів? Я знаю, що GDAL та OGR спочатку розроблялися різними людьми, але ці невідповідності API та зовсім відсутність документації дуже болючі ...
Адам Стюарт

Відповіді:


11

Якщо ви вказали драйвер, OGR намагатиметься відкрити файл лише із вказаним драйвером.

Якщо ви цього не вказали, OGR спробує відкрити файл з усіма драйверами. Він буде перебирати всі драйвери, поки не знайде драйвер, з яким він зможе відкрити ваш файл. Порядок, який він намагається відкрити, - це той самий порядок, що вказаний в ogrinfo --форматах.

Дивіться також це питання: Примушуйте OGR використовувати конкретний драйвер для формату введення

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