Python GDAL: ogr.open czy driver.open?

10

Używam GDAL z pythonem do manipulowania plikami kształtów. Podczas otwierania pliku źródłowego najpierw ustawiam sterownik na „ESRI Shapefile”, zanim wywołam metodę „Open” sterownika z wymaganym plikiem shapefile.

Nie miałem z tym żadnych problemów; jestem jednak ciekawy, jaka jest różnica między metodą instancji Driver „Open” a funkcją ogr „Open”. Na przykład jaka jest różnica między:

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

i

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

Czy istnieje konkretny scenariusz, w którym używałbyś jednego nad drugim?

Ali
źródło
Dalsze pytanie: wygląda na to, że driver = gdal.GetDriverByNamedziała i gdal.Opendziała, ale driver.Opennie działa. Czy nie ma odpowiednika dla plików rastrowych? Wiem, że GDAL i OGR zostały pierwotnie opracowane przez różne osoby, ale te niespójności API i całkowity brak dokumentacji są naprawdę bolesne ...
Adam Stewart

Odpowiedzi:

11

Jeśli określisz sterownik, OGR spróbuje otworzyć plik tylko z określonym sterownikiem.

Jeśli go nie określisz, OGR spróbuje otworzyć plik ze wszystkimi sterownikami. Zapętli wszystkie sterowniki, aż znajdzie sterownik, dzięki któremu będzie mógł otworzyć plik. Kolejność, w jakiej próbuje je otworzyć, jest taka sama, jak wymieniona w formatach ogrinfo -.

Zobacz także to pytanie: Zmuś OGR do używania określonego sterownika dla formatu wejściowego

ustroetz
źródło