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?
driver = gdal.GetDriverByName
działa igdal.Open
działa, aledriver.Open
nie 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 ...Odpowiedzi:
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
źródło