Suite

Conversion d'un fichier CSV avec une colonne WKT en un fichier de formes

Conversion d'un fichier CSV avec une colonne WKT en un fichier de formes


En utilisant ogr2ogr en Python, j'essaie de convertir un fichier CSV en un fichier de formes. Une colonne du fichier CSV, nommée "Polygone", contient WKT comme ceci : POLYGON((long lat, long lat, long lat, etc.)) Actuellement, je peux créer un fichier de formes de polygone avec la bonne projection, mais la géométrie est vide . Comment puis-je modifier mes arguments ogr2ogr pour créer correctement la géométrie en utilisant le WKT dans chaque ligne ? Actuellement j'ai quelque chose comme ça :

ogr2ogr.main(["", "-a_srs", "EPSG:4326", "-f", "ESRI Shapefile", "output.shp", "input.csv", "-nlt", "POLYGON"] )

Je ne sais pas si ça va t'aider mais j'ai testé avec ogr2ogr l'outil de ligne de commande et cette commande font le travail (en supposant que 'Polygone' est le champ contenant la géométrie dans WKT):

ogr2ogr -f "ESRI Shapefile" output.shp -dialect sqlite -sql "SELECT *, GeomFromText(Polygon) FROM input" input.csv -a_srs "WGS84"

Peut-être pourriez-vous adapter cela à l'outil python ogr2ogr ?

J'ai également posté une réponse sur Stack Overflow, en utilisant des liaisons python ogr (il fait essentiellement la même chose, mais c'est plus d'une ligne de code… !)

EDIT : J'ai testé avec l'outil python ogr2ogr et il semble que le paramètre -dialect ne soit pas implémenté.
Cependant, si vous ne trouvez pas de meilleure option, cela fonctionne si vous appelez ogr2ogr (l'outil de ligne de commande) avec un sous-processus en python :

Dans [24] : import subprocess Dans [25] : subprocess.call(["ogr2ogr", "-a_srs", "WGS84", "-f", "ESRI Shapefile", "output.shp", "input.csv ", "-dialect", "sqlite", "-sql", "SELECT *, GeomFromText(Polygon) FROM input"]) Out[25]: 0

Comme vous le voyez, il renverra le code de retour du processus (ici, 0 s'il réussit ou 1 s'il échoue).
(testé avec GDAL 1.11.2 / python 3.4)


Voir la vidéo: Convert Moscow BTI CSV file to CSV with WKT geometry