Mengonversi file CSV data WKT ke shapefile menggunakan ogr2ogr?

8

Pertanyaan ini terkait dengan Konversi file shapefile ke teks (ASCII)? .

Saya memiliki file CSV, dengan satu kolom, di mana semua baris sesuai dengan WKT POLYGON ():

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

Saya akrab dengan cara mengkonversi dari shapefile ke wkt, tapi saya perlu sebaliknya. Bagaimana cara menyelesaikan tugas ini?

Saya mencoba bermain - main dengan ogr2ogrpengaturan / bendera tetapi tidak benar - benar mendapatkan sesuatu yang bermanfaat.

Saya juga tahu saya bisa menggunakan QGIS untuk melakukan ini, tetapi membeku / macet karena dataset cukup besar.

Pris
sumber

Jawaban:

16

Saya harus menyelesaikan masalah yang sama hari ini, jadi inilah jawaban saya, yang memberikan solusi lengkap.

Saya memiliki lineWKT.csvfile yang disimpan di F:\Data\folder, dengan data seperti ini:

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

Saya punya test.vrtfile seperti ini:

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

Dengan konfigurasi ini, saya dapat membuat shapefile dengan perintah berikut:

ogr2ogr line.shp test.vrt

Devdatta Tengshe
sumber
1
metode hebat dan bekerja! terima kasih telah berbagi beberapa kode juga.
umbe1987