Python GDAL: ogr.open ou driver.open?

10

J'utilise GDAL avec python pour manipuler des fichiers de formes. Lors de l'ouverture d'un fichier source, je définis d'abord le pilote sur «ESRI Shapefile» avant d'appeler la méthode «Open» du pilote avec le shapefile requis.

Je n'ai eu aucun problème avec cela; cependant, je suis curieux de savoir quelle est la différence entre la méthode d'instance de pilote «Open» et la fonction ogr «Open». Par exemple, quelle est la différence entre:

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

et

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

Y a-t-il un scénario particulier où vous utiliseriez l'un sur l'autre?

Ali
la source
Question de suivi: cela semble driver = gdal.GetDriverByNamefonctionner et gdal.Openfonctionne, mais driver.Openne fonctionne pas. N'y a-t-il pas d'équivalent pour les fichiers raster? Je sais que GDAL et OGR ont été initialement développés par des personnes différentes, mais ces incohérences API et le manque total de documentation sont vraiment douloureux ...
Adam Stewart

Réponses:

11

Si vous spécifiez un pilote, OGR essaiera uniquement d'ouvrir votre fichier avec le pilote spécifié.

Si vous ne le spécifiez pas, OGR essaiera d'ouvrir votre fichier avec tous les pilotes. Il bouclera sur tous les pilotes jusqu'à ce qu'il trouve un pilote avec lequel il pourra ouvrir votre fichier. L'ordre dans lequel il essaie de les ouvrir est le même que celui indiqué dans ogrinfo --formats.

Voir aussi cette question: Forcer OGR à utiliser un pilote spécifique pour le format d'entrée

ustroetz
la source