Konvertieren einer CSV-Datei mit WKT-Daten in ein Shapefile mit ogr2ogr?


8

Diese Frage bezieht sich auf das Konvertieren von Shapefiles in Textdateien (ASCII). .

Ich habe eine CSV-Datei mit einer Spalte, in der alle Zeilen den WKT POLYGON () entsprechen:

WKT
POLYGON(...)
POLYGON(...)
...

Ich bin mit dem Konvertieren von Shapefile in WKT vertraut, aber ich muss umgekehrt vorgehen. Wie kann man diese Aufgabe erfüllen?

Ich habe versucht, mit ogr2ogrden Einstellungen / Flags herumzuspielen, aber nichts wirklich Nützliches bekommen.

Ich weiß auch, dass ich QGIS verwenden kann, um dies zu tun, aber es friert ein / stürzt ab, da der Datensatz ziemlich groß ist.

Antworten:



16

Ich musste heute das gleiche Problem lösen, daher hier meine Antwort, die eine vollständige Lösung bietet.

Ich habe eine lineWKT.csvDatei im F:\Data\Ordner gespeichert , mit den Daten wie folgt:

id,gm
0,"LINESTRING (30 10 0, 10 30 0, 40 40 5)"

Ich habe eine test.vrtDatei wie diese:

<OGRVRTDataSource>
    <OGRVRTLayer name="lineWKT">
       <SrcDataSource>F:\Data\lineWKT.csv</SrcDataSource>
      <GeometryType>wkbLineString25D</GeometryType>
 <LayerSRS>PROJCS["WGS_1984_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",85.875],PARAMETER["Standard_Parallel_1",24.625],PARAMETER["Standard_Parallel_2",27.125],PARAMETER["Latitude_Of_Origin",25.8772525],UNIT["Meter",1.0]]</LayerSRS>
 <GeometryField encoding="WKT" field='gm' > </GeometryField >
     </OGRVRTLayer>
</OGRVRTDataSource>

Mit dieser Konfiguration kann ich mit dem folgenden Befehl ein Shapefile erstellen:

ogr2ogr line.shp test.vrt


1
tolle und funktionierende Methode! Vielen Dank, dass Sie auch Code geteilt haben.
umbe1987
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.