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.

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


1
metode hebat dan bekerja! terima kasih telah berbagi beberapa kode juga.
umbe1987
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.