Saya menulis tutorial untuk siswa MSc yang menggunakan QGIS. Salah satu tugas mengharuskan data atribut untuk diubah (lihat draf pdf tutorial di sini jika tertarik).
Pertanyaannya adalah bagaimana membuat mereka mengedit data atribut. Saya tahu pertanyaan ini telah diajukan sebelumnya , dan jawabannya dulunya sederhana: cukup gunakan LibreOffice calc untuk memodifikasinya dan kemudian menyimpannya, memastikan urutan baris dan judul kolom tetap sama. Saya telah menggunakan pendekatan ini sebelumnya untuk memberikan efek yang besar.
Sayangnya, solusinya tidak lagi berfungsi: menyimpan file .dbf, di LibreOffice (5.4.2) atau OpenOffice (3.4.1) Calc mengacak data dari perspektif QGIS (hanya angka integer acak yang muncul di tabel atribut), dan malah membuat file .dbt tambahan.
Jadi untuk sampai ke pertanyaan: bagaimana saya memberi tahu kelas siswa MSc untuk melakukan ini minggu depan? Saya telah mempertimbangkan opsi berikut:
- Gunakan R sebagai gantinya (bagus untuk saya, tetapi menakutkan bagi siswa)
- Edit file tersebut sebagai .csv, lalu gabung berdasarkan stempel waktu (baik-baik saja, tetapi tampaknya terlalu rumit, dan dapat menyebabkan lebih banyak kesalahan dalam 2 jam praktis)
- Gunakan program alternatif: Saya sudah mencoba Gnumeric dan Excel, yang keduanya tidak menghasilkan hasil yang baik dengan cepat.
Untuk membantu menjawab pertanyaan ini, saya telah membuat contoh yang dapat ditiru . Buka file "points.shp" di QGIS, amati tabel atribut lalu tutup. Edit beberapa sel dalam tabel atribut "points.dbf" di LibreOffice - save. Buka kembali "points.shp" di QGIS dan amati tabel atribut yang diacak. Shapefile lain di folder .zip telah rusak oleh LibreOffice dan OpenOffice untuk menggambarkan seperti apa masalahnya bagi saya.
Singkatnya, bagaimana cara terbaik mengatasi masalah ini?
sumber
Jawaban:
Jawaban paling sederhana yang saya temukan, berdasarkan saran Ryan Garnett untuk melakukannya dalam QGIS:
Gunakan regexp_replace
Kemampuan ini ditambahkan ke kalkulator lapangan 1 tahun yang lalu oleh Jürgen Fischer (seperti yang diilustrasikan oleh laporan bug ini ). Saya mencoba sebentar untuk mengetahui bagaimana melakukan ini, tetapi gagal mencari "qgis regex" dan istilah-istilah lain yang tidak jelas.
Fungsionalitasnya mungkin paling baik diilustrasikan oleh kebutuhan untuk membakukan semua nilai di kolom "nama". Misalnya, jika kita perlu mengganti semua sel yang berisi pola "Tesc" dengan 'Tesco', menghapus informasi berlebihan seperti "Tesco, Infirmary Road" (yang sering ditambahkan kontributor OSM), fungsi berikut dapat digunakan:
regexp_replace ("name", 'Tesc. *', 'Tesco')
Saya kira ini adalah fungsi ekspresi reguler Pythonic, karena ini sedikit berbeda dari grep, yang telah saya gunakan sebelumnya.
Saya pikir lebih banyak dokumentasi (detail pada situs web QGIS terbatas pada beberapa kata) diperlukan tentang cara kerjanya, jadi saya telah menandai halaman-halaman berikut untuk referensi di masa mendatang:
Solusi ini memiliki beberapa keunggulan:
Permintaan maaf karena menjawab pertanyaan saya sendiri, dan banyak terima kasih kepada orang lain karena membimbing saya menuju cahaya! Saya harap utas pertanyaan ini akan bermanfaat bagi orang lain yang menghadapi masalah serupa.
sumber
Ini mungkin jawaban yang bodoh, karena ini bisa menjadi tujuan pembelajaran bagi mahasiswa pascasarjana, tetapi apakah ada alasan mengapa Anda tidak mengedit atribut dalam QGIS dengan menggunakan Field Calculator? Dalam versi sebelumnya, atribut pengeditan QGIS (pra 1.7) langsung dalam QGIS tidak dimungkinkan; karenanya kebutuhan untuk mengedit file .DBF di OpenOffice dll.
Pada 1.7 dan 1.8 Anda dapat mengedit data atribut secara langsung di Kalkulator Bidang, dengan kemampuan untuk melakukan ekspresi bersyarat. Ada juga plugin Python Attribute yang tersedia, yang dapat memberikan opsi tambahan untuk mengedit atribut. Ini mungkin solusi, dan atau, opsi untuk tutorial Anda.
Sebagai siswa Masters sebelumnya dan sekarang menjadi karyawan universitas, saya memahami masalah ini, persyaratan sebelumnya untuk melakukannya di luar QGIS, dan sekarang menghargai kemampuan untuk melakukan semua pengeditan atribut dalam QGIS. Saya akan dengan senang hati membantu Anda dengan ini lebih banyak, jika Anda menginginkannya.
sumber
Anda dapat menggunakan Pangkalan LibreOffice untuk memodifikasi file dbf Anda .
Anda sekarang dapat mulai mengeditnya. Semoga itu cukup baik untuk keperluan Anda.
Anda juga dapat mencoba DBF Explorer meskipun hanya Windows. Itu memang memiliki pencarian dan ganti.
sumber