¿Convertir archivo CSV de datos WKT a shapefile usando ogr2ogr?

8

Esta pregunta está relacionada con la conversión de archivos de forma a archivos de texto (ASCII)? .

Tengo un archivo CSV, con una columna, donde todas las filas corresponden a WKT POLYGON ():

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

Estoy familiarizado con cómo convertir de shapefile a wkt, pero necesito dar la vuelta. ¿Cómo lograr esta tarea?

Intenté jugar con ogr2ogrlas configuraciones / banderas pero realmente no obtuve nada útil.

También sé que puedo usar QGIS para hacer esto, pero se congela / bloquea ya que el conjunto de datos es bastante grande.

Pris
fuente

Respuestas:

16

Tuve que resolver el mismo problema hoy, así que aquí está mi respuesta, que da una solución completa.

Tengo un lineWKT.csvarchivo almacenado en la F:\Data\carpeta, con datos como este:

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

Tengo un test.vrtarchivo como este:

<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>

Con esta configuración, puedo crear un shapefile con el siguiente comando:

ogr2ogr line.shp test.vrt

Devdatta Tengshe
fuente
1
excelente y método de trabajo! gracias por compartir algo de código también.
umbe1987