Temukan sub-baris, diberi offset awal dan akhir, melalui baris perintah
Aug 19 2020
Saya memiliki file CSV yang pada dasarnya terlihat seperti ini:
id,id_wkt,start,end,wkt
11,11,0,43,"LINESTRING(3.3623676 51.3132714,3.3626663 51.3130068,3.363068 51.3126811,3.3636323 51.3122504,3.3640754 51.3119614,3.3643705 51.3117777)"
12,11,43,217,"LINESTRING(3.3623676 51.3132714,3.3626663 51.3130068,3.363068 51.3126811,3.3636323 51.3122504,3.3640754 51.3119614,3.3643705 51.3117777)"
Ini terdiri dari rekaman dengan cincin lapisan WKT. Beberapa WKT muncul beberapa kali dan geometri sebenarnya harus diperoleh dari linestring menggunakan offset awal dan akhir (panjang dalam meter sepanjang garis) di kolomnya masing-masing.
Saya ingin mengekstrak sublinestrings berdasarkan offset panjang ini. Apakah ini mungkin melalui alat baris perintah seperti OGR?
Jawaban
Socci Aug 18 2020 at 22:08
Setelah beberapa penelitian, saya memang menemukan solusi, dengan menggunakan ogr2ogr
:
ogr2ogr output.csv -lco GEOMETRY=AS_WKT input.csv -dialect SQLITE -sql "SELECT id, id_wkt, ST_Line_Substring(GEOMETRY, start / GeodesicLength(GEOMETRY), end / GeodesicLength(GEOMETRY)) FROM input"
Memberikan
WKT,id,id_wkt
"LINESTRING (3.3623676 51.3132714,3.3626663 51.3130068,3.36274075608485 51.3129464307024)","11","11"
"LINESTRING (3.36274075608485 51.3129464307024,3.363068 51.3126811,3.3636323 51.3122504,3.3640754 51.3119614,3.36436609040842 51.3117804449745)","12","11"
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'