Mai mult

Conversia unui CSV cu o coloană WKT într-un Shapefile

Conversia unui CSV cu o coloană WKT într-un Shapefile


Folosind ogr2ogr în Python, încerc să convertesc un CSV într-un shapefile. O coloană din CSV, denumită „Poligon”, conține WKT astfel: POLIGON ((lat lung, lat lung, lat lung etc.)) În prezent, pot crea un fișier de tip poligon cu proiecția corectă, dar geometria este goală . Cum pot modifica argumentele mele ogr2ogr pentru a crea corect geometria folosind WKT în fiecare rând? În prezent, am așa ceva:

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

Nu știu dacă te va ajuta, dar am testat cu ogr2ogr instrument de linie de comandă și această comandă face treaba (presupunând că „Poligon” este câmpul care conține geometria în WKT):

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

Poate ai putea adapta asta la instrumentul ogr2ogr python?

De asemenea, am postat un răspuns pe Stack Overflow, folosind legături ogr python (practic face același lucru, dar are mai mult de o linie de cod ...!)

EDIT: Am testat cu instrumentul ogr2ogr python și se pare că parametrul -dialect nu este implementat.
Cu toate acestea, dacă nu găsiți o opțiune mai bună, funcționează dacă apelați ogr2ogr (instrumentul pentru linia de comandă) cu subproces în python:

În [24]: import subproces În [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

După cum vedeți, va returna codul de returnare al procesului (aici, 0 dacă are succes sau 1 dacă eșuează).
(testat cu GDAL 1.11.2 / python 3.4)


Priveste filmarea: Export Attribute Table to Excel in Qgis