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?
driver = gdal.GetDriverByName
fonctionner etgdal.Open
fonctionne, maisdriver.Open
ne 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 ...Réponses:
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
la source