Utiliser ogr2ogr pour convertir du GML en shapefile en Python?

22

J'essaie de convertir un GML en un fichier de formes ESRI en utilisant l'utilitaire ogr2ogr dans un script python.

J'ai installé avec succès le paquet GDAL / OGR via osgeo mais j'ai du mal à trouver / comprendre tous les détails sur la syntaxe pour utiliser ogr2ogr en python.

Après avoir importé ogr, tout ce que j'ai trouvé est ogr2ogr -f "ESRI Shapefile" output.shp input.gml

Comment utiliser cela en python? Est-ce aussi simple que d'attribuer les fichiers d'entrée et de sortie?

Tout ce que j'essaie, je reçois juste des erreurs de syntaxe. Tout pointeur dans la bonne direction pour me lancer serait formidable.

Mat
la source
quelles erreurs obtenez-vous? et quelle est votre version GDAL? pls partager pour vous aider ..
Aragon

Réponses:

35

Récupérez une copie du port Python ogr2ogr, qui est distribué avec le téléchargement du code source GDAL ou peut être trouvé ici: http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/ogr2ogr.py

Une fois que vous avez importé cela dans votre code, vous pouvez l'utiliser comme ceci:

import ogr2ogr

def main():
  #note: main is expecting sys.argv, where the first argument is the script name
  #so, the argument indices in the array need to be offset by 1
  ogr2ogr.main(["","-f", "KML", "out.kml", "data/san_andres_y_providencia_administrative.shp"])
Eric Levine
la source
Ceci est le seul exemple de travail que j'ai vu nulle part.
bozdoz
5

Lisez sur os.system ou os.popen ou sous - processus . Ou utilisez simplement ogr2ogr et votre shell. Même cmd.exe (Windows) vous permet de parcourir les fichiers d'entrée.

sgillies
la source
1

Une explication détaillée sur la façon de remplacer l' ogr2ogroutil de ligne de commande par l'API OGR Python peut être trouvée ici .

ustroetz
la source