Bagaimana saya bisa mengonversi file excel dengan kolom x, y ke titik shapefile?
Ada beberapa persyaratan yang agak opsional selain penciptaan shapefile yang benar:
- Jenis kolom (sesuai penentu format Excel) harus dipertahankan (terutama jenis tanggal)
- Nama kolom harus diambil dari tajuk
- Saya ingin melakukan ini dari command-line
- Jika saya dapat memasukkan referensi spasial heterogen untuk poin-poin di kolom ketiga saya akan sangat senang :)
Jawaban:
Saya akan merekomendasikan menggunakan OGR / GDAL , yang merupakan bagian dari perpustakaan GDAL . OGR mendukung format virtual yang memungkinkan spesifikasi melalui file XML. Jika Anda mengonversi lembar kerja Excel Anda menjadi CSV, Anda bisa membuat VRT untuk mengakses data.
Dengan asumsi Anda memiliki sesuatu seperti ini
example.csv
:Anda dapat membuat VRT
example.vrt
sebagai berikut:Mulai di GDAL 1.7, Anda juga dapat menentukan tipe data dari bidang atribut menggunakan
<Field>
elemen di dalamnya<OGRVRTLayer>
, seperti:Perlu diingat bahwa shapefile menyimpan atribut dalam format DBASE IV yang kurang fleksibel dalam tipe data dibandingkan Excel. Setelah Anda menentukan file VRT, Anda dapat menggunakan OGR toolchain normal untuk mengubah data menjadi Shapefile:
Sayangnya, # 4 tidak dimungkinkan - spesifikasi shapefile memungkinkan proyeksi tunggal (dapat dilihat di sini
example.prj
setelah langkah terakhir).sumber
<Field>
tag. Saya kira saya akan menemukan yang keluar sendiri :)Anda bisa menggunakan plugin Teks Dibatasi yang disertakan dengan QGIS (http://qgis.org ) untuk memuat file teks dan kemudian menyimpannya sebagai shapefile.
sumber
Meskipun bukan dari baris perintah, Anda bisa melakukan ini di dalam Aplikasi ArcGIS. Sejak 9.3.1, cukup tambahkan XLS langsung ke ArcMap. Membuat XY Event Layer dari XLS (yaitu memilih X, Y Kolom dan mengatur referensi spasial Anda) Kemudian ekspor XY Event Layer ini ke .shp ini dapat dengan mudah diotomatisasi dengan skrip python / VBA sederhana atau model dalam modelbuilder . Senang membantu alur kerja dasar ini jika Anda memerlukan info lebih lanjut.
sumber
Saya mencari tetapi tidak dapat menemukan halaman bantuan pada Display XY Data dalam bantuan web tetapi prosesnya sederhana.
Anda hanya perlu ArcView (dasar) tingkat lisensi ArcGIS (untuk) Desktop untuk melakukan ini.
sumber
Selalu ada opsi petualang. Anda bisa menulis file bentuk sendiri. ESRI menerbitkan spesifikasi untuk shapefile, yang dapat Anda baca di sini:
http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
Anda mungkin perlu menulis file DBF. Anda dapat membaca tentang format di sini:
http://www.clicketyclick.dk/databases/xbase/format/dbf.html#DBF_STRUCT
Ini tidak diragukan lagi berlebihan, tetapi itu akan memberi Anda keuntungan memiliki kendali atas seluruh proses.
sumber
Saya pribadi lebih suka menggunakan FME dari Safe Software (http://www.safe.com), yang tidak hanya memungkinkan saya memplot poin dari nilai XY, tetapi juga memberi saya fleksibilitas untuk mengubah koordinat dari satu proyeksi ke proyeksi lain sebelum merencanakan, tentukan jenis pembatas, garis awal (jika file teks memiliki informasi header), lampirkan atribut jika file teks memiliki X, Y, Informasi atribut untuk data titik. Jika Anda ingin memvisualisasikan data ini di Google Earth, Anda dapat menuliskannya dalam format KML sembari menentukan gaya titik KML juga. ~ SRG
sumber
Jika Anda ingin melakukan pemrosesan lain pada data x, y, Anda dapat memuat data ke postgres, gunakan geomfromtext dengan concatenation untuk membuat tipe data geometri dan kemudian menggunakan pgsql2shp untuk mengekspor ke bentuk. Pendekatan ini juga akan memungkinkan Anda untuk menyimpan data sistem referensi spasial heterogen di kolom lain, yang kemudian dapat Anda gunakan untuk mengubah semua poin Anda menjadi sistem referensi umum dalam db sebelum mengekspor ke bentuk. Saya menyadari bahwa ini melibatkan lebih banyak langkah daripada ogr / gdal tetapi itu akan memberi Anda lebih banyak fleksibilitas.
sumber
Bagaimana dengan memuat file CSV Anda ke dalam spatiallite dan kemudian menggunakan OGR atau QGIS untuk mengekspor ke shapefile.
http://www.gaia-gis.it/spatialite-2.2/index.html
Anda bahkan dapat mengekspor dari spasial ke shapefile secara langsung.
http://www.gaia-gis.it/spatialite-2.2/spatialite-2.2_tutorial.html#t3.1
sumber
Untuk transformasi yang lebih mendasar, Anda dapat menggunakan transformator 2Dpointreplacer di FME 2013. Anda perlu menunjukkan di kolom mana nilai X dan Y berada dan kemudian FME akan mentransformasikan nilai-nilai ini menjadi misalnya file bentuk dengan titik.
Nama dan tipe kolom dapat diatur sesuai kebutuhan
sumber