Menambahkan data atribut ke shapefile?


33

Saya dapat menampilkan sebuah shapefile di openlayers tetapi saya perlu menambahkan beberapa data atribut.

Saya dapat membuka file dbf di excel tetapi tidak ada opsi save as di excel ke file yang diperbarui sebagai dbf.

Apa cara terbaik (atau perangkat lunak untuk digunakan) untuk menambahkan data atribut ke shapefile saya?


Kembali ke versi Excel yang lebih lama: MS menghapus kemampuan untuk menulis file .dbf dengan versi terbarunya! :-(
whuber

4
Open office dan Quattro Pro dapat mengedit dan menyimpan file dbf, hanya saja jangan menghapus baris atau memindahkan barang-barang jika tidak file indeks tidak akan membiarkan hal-hal yang cocok. Gunakan gis komersial atau sumber terbuka untuk tugas-tugas ini, mengedit nilai sel seharusnya tidak menyebabkan masalah

Baik!!! Dan saya pikir pertanyaan saya terlalu sederhana untuk situs ini !! Saya belum punya kesempatan untuk mencoba salah satu saran karena saya entah bagaimana menghancurkan perangkat lunak geoserver dan postgres saya ... :-( Jadi begitu saya mendapatkan kotak linux saya kembali ke 100% saya akan mendapatkan memeriksa semua saran Terima kasih telah mengambil waktu untuk membalas chris
ChrisJ

Jawaban:


23

Menggunakan QGIS Anda dapat mengedit shapefile Anda dengan menambahkan kolom dan nilai baru. Cukup buka shapefile, pergi ke Properties> Attributes dan tambahkan kolom baru.

Dalam versi QGIS (2.x) yang lebih baru, 'Atribut' disebut 'Fields'


Saya tidak berpikir untuk menggunakan QGIS karena pada kotak Linux saya (Copiapo) macet ketika saya mengklik "Ambil plugin python". Adakah yang tahu jika ada perbaikan untuk ini? Sementara itu saya akan mencoba menambahkan atribut dengan versi janda.
ChrisJ

Anda dapat mencoba men-debug masalah seperti yang dijelaskan Richard di sini: osgeo-org.1803224.n2.nabble.com/…
underdark

QGIS memungkinkan Anda untuk menambah kolom baru, tetapi mengisi kolom baru dengan data tampaknya menjadi klik-klik-masuk - benar-benar tidak efisien! Saya sarankan menggunakan R seperti pada jawaban mdsummer di bawah ini.
baha-kev

@ baha-kev Mengapa hanya klik-titik-masuk? Tidak bisakah Anda melakukan sesuatu seperti tutorial ini ?
ocean800

1
Dalam QGIS 3.2.1 terletak di menu konteks lapisan> 'Properti ...'> Kategori 'Bidang Sumber' di jendela dialog.
andw

23

Gunakan Rdengan foreignpaket untuk memodifikasi file DBF:

library(foreign)
dbfdata <- read.dbf("file.dbf", as.is = TRUE)
## add new attribute data (just the numbers 1 to the number of objects)
dbfdata$new.att <- 1:nrow(dbfdata)

## overwrite the file with this new copy
write.dbf(dbfdata, "file.dbf")

Atau baca geometri dan data atribut dengan rgdalpaket (sehingga Anda dapat memodifikasi hubungan juga dan membuat shapefile yang sama sekali baru):

library(rgdal)
## read "/path/to/files/filename.shp"
shp <- readOGR("/path/to/files/", "filename")  

## add new attribute data (just the numbers 1 to the number of objects)
shp$new.att <- 1:nrow(shp)

## write out to a new shapefile
writeOGR(shp, "/path/to/files/", "filename2")  

4

Saya tidak akan merekomendasikan menggunakan OpenOffice - atau aplikasi serupa - sama sekali! Darren Cope mengomentari jawaban atas pertanyaan " Penciptaan dan manipulasi DBF tanpa excel 2003 " mengatakan:

itu karena shapefile menjadi sangat kesal jika Anda pergi dan mengedit .dbf di program 'luar'


3
ini belum tentu benar: Saya telah mengedit banyak shapefile di OpenOffice dan Excel tanpa masalah: Anda hanya perlu menyadari keterbatasan format (panjang nama kolom, tipe data, dan lain-lain).
scw

@scw: dapatkah Anda memberikan tautan ke informasi tentang batasan format?
LarsH

2
Kendala spesifik bervariasi berdasarkan penggunaan format perangkat lunak tertentu, tetapi pembatasan paling sederhana adalah: 11 nama bidang karakter, tidak ada karakter khusus atau spasi dalam nama bidang, dan berpegang teguh pada tipe data inti dari file DBF (bukan hal esoteris seperti 'memo' bidang). Untuk detail lebih lanjut, lihat shapefile.py , API DBF shapelib atau buku tebal ini di xbase .
scw

4

Saya telah menggabungkan beberapa shapefile menggunakan MS Access. Saya perlu meninggalkan beberapa data dari shapefile lain dan itu bekerja dengan cukup baik. Itu juga cepat. Namun saya kira tidak semua orang memiliki perangkat lunak ini


1
Saya menggunakan Access atau bentuk lain dari SQL untuk memanipulasi data, biasanya. Sepertinya jauh lebih mudah bagi saya untuk menjalankan beberapa pertanyaan. Seperti disebutkan sebelumnya, Anda hanya perlu menonton perubahan format database aktual, ini adalah sesuatu yang paling baik ditangani dalam perangkat lunak GIS yang sebenarnya.
MaryBeth

2

Menggunakan QGIS itu bagus, dan menyediakan antarmuka yang solid untuk berinteraksi dengan DBF, tetapi jika Anda perlu melakukan sesuatu secara terprogram atau hanya ingin alat untuk memeriksa shapefile, saya pikir saya akan menyebutkan beberapa alat lain: Saya sering menggunakan fitur dasar dari shapelib untuk memeriksa file DBF: dapat menambah, membuat, dan memodifikasi baik geometri dan atribut, saya sering gunakan dbfdump myshape.dbfuntuk mendapatkan gambaran umum cepat dari nilai atribut.

Pilihan lain jika Anda tertarik pada kontrol terprogram DBF adalah dbfpy , pustaka python (sebuah alternatif untuk foreignpustaka mdsummer yang bagus menyebutkan). Contoh skrip untuk menambahkan kolom:

import dbfpy

db = dbf.Dbf("myshape.dbf", new=False)
# add a new character field named 'myfield'
db.addField(("myfield", "C", 15))

db.close()

2

seperti yang ditunjukkan Andy di tautan DARIAPRA yang mengarahkan Anda, ada tambahan Excel 2007 yang mungkin berguna bagi Anda - Ini memungkinkan Anda untuk menyimpan dalam format dbf. Anda dapat menemukannya di situs web ini:

http://savedbf.blogspot.com/

(Seperti yang saya punya Excel 2003, saya belum pernah mencobanya, tapi saya dengar itu berguna.

Adapun manipulasi DBF di luar ArcGIS - Saya sudah melakukannya beberapa kali. Terkadang berhasil, kadang tidak. Dua sen saya: Jika Anda dapat menghindari manipulasi luar, hindari. Jika Anda berhadapan dengan bahasa non-Inggris, hindarilah sama sekali - Ini cenderung membuat semua bingung ketika mengedit di luar ArcGIS).


2

Kalau tidak:

  1. buka dbf di MS Excel 2007/10
  2. Buat perubahan Anda (menambahkan kolom, mengisi data dll) dan simpan sebagai xls / xlsx
  3. Arahkan ke lokasi xls / xlsx di ArcCatalog, klik kanan lembar kerja dan pilih Ekspor> Ke dBase (tunggal)
  4. Ganti nama file output dbf sesuai kebutuhan


2

Saya biasanya menggunakan R (periksa jawaban mdsomners), tetapi saya tidak akan merekomendasikan mempelajari bahwa jika itu adalah satu-satunya hal yang ingin Anda lakukan. Saya pikir pendekatan terbaik akan menggunakan program GIS, untuk membuat bidang, dan kemudian mencoba mengeditnya menggunakan openoffice.

Lebih penting lagi, Anda harus berpikir apakah Anda perlu mengedit semua bidang tabel atribut secara langsung, atau jika Anda dapat bergabung dengan tabel lain. Yang terakhir dapat dilakukan di sebagian besar program GIS, misalnya SAGA GIS

http://www.saga-gis.org/saga_modules_doc/shapes_tools/index.html


Sepakat. Setiap kali saya menambah / mengubah data, saya bertanya-tanya apakah ada cara yang lebih mudah.
MaryBeth

1

Open Office Calc memungkinkan Anda membaca dan menulis file dbf. Tetapi solusi Lcasagrande menggunakan QGIS harus lebih aman.

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.