Python GDAL: ogr.open ou driver.open?


10

Eu tenho usado GDAL com python para manipular shapefiles. Ao abrir um arquivo de origem, primeiro defino o driver como “ESRI Shapefile” antes de chamar o método "Open" do driver com o shapefile necessário.

Eu não tive problemas com isso; no entanto, estou curioso para saber qual é a diferença entre o método de instância do Driver "Open" e a função ogr "Open". Por exemplo, qual é a diferença entre:

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

e

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

Existe um cenário específico em que você usaria um sobre o outro?


Pergunta de acompanhamento: parece que driver = gdal.GetDriverByNamefunciona, e gdal.Openfunciona, mas driver.Opennão funciona. Não há equivalente para arquivos rasterizados? Eu sei GDAL e OGR foram originalmente desenvolvidos por pessoas diferentes, mas estas inconsistências API e total falta de documentação são realmente doloroso ...
Adam Stewart

Respostas:


11

Se você especificar um driver, o OGR tentará abrir seu arquivo apenas com o driver especificado.

Se você não o especificar, o OGR tentará abrir seu arquivo com todos os drivers. Ele percorrerá todos os drivers até encontrar um driver com o qual possa abrir seu arquivo. A ordem em que tenta abri-los é a mesma ordem listada em ogrinfo --formats.

Veja também esta pergunta: Force o OGR a usar driver específico para o formato de entrada

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.