Python GDAL: ogr.open o driver.open?


10

Ho usato GDAL con Python per manipolare gli shapefile. All'apertura di un file sorgente ho prima impostato il driver su "ESRI Shapefile" prima di chiamare il metodo "Open" del driver con lo shapefile richiesto.

Non ho avuto problemi con questo; tuttavia sono curioso di sapere qual è la differenza tra il metodo di istanza Driver "Open" e la funzione ogr "Open". Ad esempio, qual è la differenza tra:

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

e

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

C'è uno scenario particolare in cui useresti uno sopra l'altro?


Domanda di follow-up: sembra che funzioni driver = gdal.GetDriverByName, e gdal.Openfunziona, ma driver.Opennon funziona. Non esiste un equivalente per i file raster? So che GDAL e OGR sono stati originariamente sviluppati da persone diverse, ma queste incoerenze API e la totale mancanza di documentazione sono davvero dolorose ...
Adam Stewart,

Risposte:


11

Se si specifica un driver, OGR proverà ad aprire il file solo con il driver specificato.

Se non lo specifichi, OGR proverà ad aprire il tuo file con tutti i driver. Passerà in rassegna tutti i driver fino a quando non trova un driver in grado di aprire il file. L'ordine in cui tenta di aprirli è lo stesso ordine elencato in ogrinfo --formats.

Vedi anche questa domanda: forzare OGR a utilizzare driver specifici per il formato di input

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.