Python GDAL: ogr.open o driver.open?

10

He estado usando GDAL con python para manipular archivos de forma. Al abrir un archivo fuente, primero configuré el controlador en "ESRI Shapefile" antes de llamar al método "Abrir" del controlador con el shapefile requerido.

No he tenido problemas con esto; Sin embargo, tengo curiosidad por saber cuál es la diferencia entre el método de instancia del controlador "Abrir" y la función ogr "Abrir". Por ejemplo, ¿cuál es la diferencia entre:

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

y

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

¿Hay un escenario particular en el que usarías uno sobre el otro?

Ali
fuente
Pregunta de seguimiento: parece que driver = gdal.GetDriverByNamefunciona y gdal.Openfunciona, pero driver.Openno funciona. ¿No hay equivalente para los archivos ráster? Sé que GDAL y OGR fueron desarrollados originalmente por diferentes personas, pero estas inconsistencias API y la falta total de documentación son realmente dolorosas ...
Adam Stewart

Respuestas:

11

Si especifica un controlador, OGR solo intentará abrir su archivo con el controlador especificado.

Si no lo especifica, OGR intentará abrir su archivo con todos los controladores. Recorrerá todos los controladores hasta que encuentre un controlador con el que pueda abrir su archivo. El orden en que intenta abrirlos es el mismo que aparece en ogrinfo --formats.

Consulte también esta pregunta: forzar a OGR a utilizar un controlador específico para el formato de entrada

ustroetz
fuente