Python GDAL: ogr.open oder driver.open?

10

Ich habe GDAL mit Python verwendet, um Shapefiles zu manipulieren. Beim Öffnen einer Quelldatei habe ich den Treiber zuerst auf "ESRI Shapefile" gesetzt, bevor ich die "Open" -Methode des Treibers mit dem erforderlichen Shapefile aufgerufen habe.

Ich hatte keine Probleme damit; Ich bin jedoch gespannt, was der Unterschied zwischen der Treiberinstanzmethode "Open" und der ogr-Funktion "Open" ist. Was ist zum Beispiel der Unterschied zwischen:

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

und

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

Gibt es ein bestimmtes Szenario, in dem Sie eines über dem anderen verwenden würden?

Ali
quelle
Folgefrage: Es scheint zu driver = gdal.GetDriverByNamefunktionieren und gdal.Openfunktioniert, funktioniert aber driver.Opennicht. Gibt es kein Äquivalent für Rasterdateien? Ich weiß, dass GDAL und OGR ursprünglich von verschiedenen Personen entwickelt wurden, aber diese API-Inkonsistenzen und der völlige Mangel an Dokumentation sind wirklich schmerzhaft ...
Adam Stewart

Antworten:

11

Wenn Sie einen Treiber angeben, versucht OGR nur, Ihre Datei mit dem angegebenen Treiber zu öffnen.

Wenn Sie es nicht angeben, versucht OGR, Ihre Datei mit allen Treibern zu öffnen. Es werden alle Treiber durchlaufen, bis ein Treiber gefunden wird, mit dem Ihre Datei geöffnet werden kann. Die Reihenfolge, in der versucht wird, sie zu öffnen, entspricht der in den ogrinfo-Formaten angegebenen Reihenfolge.

Siehe auch diese Frage: Erzwingen Sie, dass OGR einen bestimmten Treiber für das Eingabeformat verwendet

ustroetz
quelle