Saya memiliki tabel atribut dengan dua bidang kosong di QGIS.
Saya ingin mengimpor database excel untuk mengisi bidang kosong saya di QGIS. File excel saya cocok dengan kolom di tabel atribut QGIS saya.
Saya dapat menggabungkan excel (.CSV) saya dengan benar ke shapefile saya. Namun, proses, alih-alih mengisi bidang kosong seperti yang saya inginkan, membuat duplikat. Dengan bantuan «Table Manager» saya dapat memperbaiki situasi, tetapi itu membutuhkan banyak waktu. Saya mencari cara yang lebih efisien untuk bergabung dengan data excel saya.
Bagaimana saya bisa bergabung dengan file excel saya ke tabel atribut saya tanpa membuat duplikat?
qgis
attribute-table
attribute-joins
excel
Laurent Robitaille-Lainesse
sumber
sumber
Jawaban:
Saya akan melakukan hal-hal berikut untuk membuat hidup lebih mudah:
Sebelum Anda melakukan ini, buat cadangan dari shapefile Anda.
ini adalah tab Field yang saya maksud
Jangan lupa untuk beralih pengeditan sebelum dan sesudah menghapus bidang yang tidak perlu
sumber
Anda ingin bergabung dengan file excel ke shapefile. Anda akan bergabung dengan mereka pada atribut umum dan hasilnya akan menjadi layer gabungan di mana setiap catatan menyimpan atribut dari kedua file shapefile dan excel.
Ok pertama, Anda memuat file excel Anda dan vektor Anda nanti ke dalam lapisan. Saya menggunakan beberapa data uji yang saya buat tetapi pengaturan Anda akan terlihat seperti di bawah ini.
Sekarang klik kanan pada layer (di panel lapisan) dan pilih properti, lalu pilih bergabung. Pertama tekan tanda + hijau di kiri bawah (Panah Merah Besar pada gambar di bawah) dan itu akan memunculkan menu Tambah Vektor Gabung baru (seperti di bawah) Di sini layer gabung Anda akan menjadi file excel (jadi pilih file excel yang tepat) & sheet) kolom gabungan adalah bidang dalam file excel yang menyimpan atribut umum ke shapefile. Bidang target adalah bidang yang cocok di shapefile. (dalam kasus saya kedua bidang umum kebetulan bernama unit, tetapi jika bidang itu disebut UNIT_ dalam shapefile saya akan menggunakannya daripada UNIT untuk bidang target saya)
Ada beberapa opsi lain yang dapat Anda mainkan di join, seperti jika Anda hanya ingin melihat bidang tertentu, dll ... tetap jadi sekarang mereka bergabung dan jika Anda kembali dan melihat atribut shapefile Anda akan melihat sekarang memiliki atribut yang sesuai dari file excel seperti di bawah ini.
Berikut adalah beberapa tutorial praktis untuk menunjukkan kepada Anda langkah demi langkah cara melakukannya:
https://www.mapbox.com/tilemill/docs/guides/joining-data/
http://maps.cga.harvard.edu/qgis/wkshop/join_csv.php
http://qgis.spatialthoughts.com/2012/03/using-tabular-data-in-qgis.html
Bagaimana cara bergabung dengan tabel eksternal dengan tabel atribut shapefile di QGIS?
http://www.digital-geography.com/qgis-tutorial-ii-how-to-join-data-with-shapefiles/#.Vs9vpmHXKUk
dan tutorial ArMoraer disebutkan dalam komentar.
sumber
Hanya untuk menambahkan metode lain, Anda dapat mengatur makro Proyek yang ketika dimuat:
IP1
danIP2
Pertama, buat proyek jika Anda belum melakukannya lalu buka bilah alat:
Project> Project Properties ...> Macro
Kemudian gunakan kode berikut dalam
def openProject():
fungsi dan masukkan nama layer Anda dan bidang yang ingin Anda gabungkan. Saya menggunakan "Contoh" dan "spreadsheet" masing-masing untuk file shapefile dan csv saya dengan bidangID
:Pastikan bahwa layer tidak bergabung, simpan proyek dan aktifkan makro dengan pergi ke toolbar:
Pengaturan> Umum> Aktifkan makro
Sekarang ketika Anda menutup proyek dan mengedit file csv, saat berikutnya Anda memuat proyek, bidang harus secara otomatis diperbarui:
sumber
Saran saya adalah menggunakan LibreOffice / Open Office sumber terbuka untuk mengedit file Excel Anda dan membuat file .dbf. Saya menyiapkan buku kerja ujian untuk Anda. Tes buku kerja - tautan
Tabel hasil tanpa duplikat di QGIS:
sumber
Mengapa ada bidang kosong di sana? Bisakah Anda mulai tanpa bidang kosong dan hanya menggunakan dua kolom yang dihasilkan dalam bergabung? Saya pikir ini adalah pendekatan yang paling sederhana. Entah itu atau menemukan alat yang mirip dengan alat "Muat" di ArcGIS.
https://desktop.arcgis.com/en/arcmap/latest/extensions/production-mapping/loading-data-into-a-geodatabase.htm
Jika Anda tidak menggunakan geodatabase, saya sangat merekomendasikan ini.
sumber
Saya tidak tahu apakah ada cara langsung untuk bergabung tanpa duplikat sejak itu .shp mendukung file dengan atribut dalam .DBF (file database). DBF ini memiliki deklarasi tipe kolom seperti integer, real, string, dll dengan detail panjang dan presisi. File CSV hanya memiliki kolom normal tanpa jenis apa pun yang dideklarasikan. Saya tidak tahu seberapa besar file Anda. Bagi saya, saya akan menyimpan duplikat Fields dan kemudian menggunakan caluclator bidang dengan rumus umum:
Kemudian hapus semua bidang yang digandakan (melalui QGIS atau program basis data)
sumber
Saya percaya cara termudah untuk memperbaikinya adalah dengan menghapus dua kolom yang dimaksud dalam tabel QGIS sebelum bergabung. Kemudian, ketika Anda bergabung dengan shapefile, dua kolom yang Anda inginkan tidak akan menjadi duplikat dan akan menyimpan nama kolom aslinya.
sumber