Shapefile Öznitelik verileri ekleme


33

Openlayers'da bir shapefile gösterebilirim, ancak bazı nitelik verileri eklemem gerekiyor.

Dbf dosyasını excel'de açabiliyorum, ancak güncellenmiş dosyaya excel olarak dbf olarak kaydetme seçeneği bulunmuyor.

Şekil dosyama nitelik verileri eklemenin en iyi yolu (veya kullanılacak yazılım) nedir?


Excel'in önceki bir sürümüne dönün: MS , .dbf dosyalarını en son sürümüyle yazabilme özelliğini kaldırdı ! :-(
whuber

4
Açık ofis ve Quattro Pro, dbf dosyalarını düzenleyebilir ve kaydedebilir, sadece satırları silmeyin veya etrafta dolaştırmayın, aksi takdirde indeks dosyası olayların eşleşmesine izin vermez. Bu görevler için ticari veya açık kaynak kodlu bir gis kullanın, hücre değerlerini düzeltmek sorun

İyi!!! Ve sorumun bu site için çok basit olduğunu düşündüm! Herhangi bir öneriyi deneme şansım olmadı, çünkü bir şekilde geoserver ve postgres yazılımlarımı geri aldım ... :-( Bu yüzden linux kutumu% 100'e geri döndüğümde tüm önerileri kontrol edeceğim chris cevaplamak için zamanı
ChrisJ

Yanıtlar:


23

QGIS'i kullanarak , şekil dosyasını yeni sütunlar ve değerler ekleyerek düzenleyebilirsiniz. Sadece şekil dosyasını açın, Özellikler> Öznitelikler'e gidin ve yeni sütunlar ekleyin.

QGIS'in (2.x) daha yeni sürümlerinde 'Öznitelikler' 'Alanlar' olarak adlandırılır.


QGIS kullanmayı düşünmedim, çünkü Linux kutumda (Copiapo) "Fetus python eklentisi" üzerine tıkladığımda çöküyor. Bunun için bir düzeltme olup olmadığını bilen var mı? Bu arada ben bir dul sürümü ile özellikleri eklemeye çalışacağım.
Chris

Sen sorunu Richard burada açıklanır yolu hata ayıklamak için deneyebilirsiniz: osgeo-org.1803224.n2.nabble.com/...
Underdark

QGIS, yeni sütunlar eklemenize izin veriyor, ancak yeni sütunu verilerle doldurmak, tıkla ve tıklamak gibi görünüyor - gerçekten yetersiz! Aşağıdaki yazıcının cevabında olduğu gibi R kullanılmasını öneririm.
baha-kev

@ baha-kev Neden sadece tıklama-nokta-enter olsun? Bu öğretici gibi bir şey yapamaz mısın ?
ocean800,

1
QGIS 3.2.1'de, diyalog penceresinde katman bağlam menüsü> 'Özellikler ...'> 'Kaynak Alanlar' kategorisinde bulunur.
18'de

23

DBF dosyasını değiştirmek Riçin foreignpaketle birlikte kullanın :

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")

Ya da geometriyi okuyun ve verileri rgdalpakete yerleştirin (böylece ilişkileri de değiştirebilir ve tamamen yeni bir şekil dosyası oluşturabilirsiniz):

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

OpenOffice - veya benzer bir uygulama - kullanmanızı hiç tavsiye etmem! Darren Cope , " 2003'ün excel olmadan DBF oluşturma ve manipülasyon " sorusuna bir cevabın yorumunu yaptı :

'dış' bir programda .dbf dosyasını düzenleyip düzenlerseniz, shapefiles oldukça üzülür.


3
bu mutlaka doğru değil: OpenOffice ve Excel'de birçok şekil dosyasını sorunsuzca düzenledim: formatın sınırlamalarının (sütun adı uzunlukları, veri tipleri, vb.) farkında olmanız yeterli.
scw

@scw: Format sınırlamaları hakkında bilgiye bağlantılar verebilir misiniz?
LarsH

2
Özel kısıtlamalar, belirli bir yazılımın formatı kullanmasına bağlı olarak değişir, ancak en basit kısıtlamalar şunlardır: 11 karakter alan adı, alan adlarında özel karakter veya boşluk yoktur ve DBF dosyalarının temel veri türlerine ('not' gibi ezoterik şeyler değil) yapışır. alanları). Daha fazla ayrıntı için, bkz. Shapefile.py , shapelib DBF API veya xbase'de bu tome .
scw

4

MS Access kullanarak birkaç şekil dosyasını birleştirdim. Başka bir şekil dosyasındaki bazı verileri birleştirmek için bırakmam gerekiyordu ve oldukça iyi çalışıyordu. Ayrıca hızlıydı. Ancak sanırım herkes bu yazılıma sahip değil


1
Verileri işlemek için genellikle Access'i veya başka bir SQL formunu kullanırım. Birkaç sorgu yapmam çok daha kolay görünüyor. Daha önce de belirtildiği gibi, gerçek veritabanı formatının değişimini izlemek zorundasınız, bu gerçek GIS yazılımında en iyi şekilde ele alınan bir şeydir.
MaryBeth

2

QGIS kullanmak hoş ve DBF ile etkileşime geçmek için sağlam bir arabirim sağlar, ancak programsal olarak bir şey yapmanız veya yalnızca şekil dosyalarını incelemek için araçlar istiyorsanız, başka bir araçtan bahsetmem gerektiğini düşündüm: Sık sık temel özellikleri kullanırım. DBF dosyalarını incelemek için shapelib : hem geometri hem de nitelik ekleyebilir, yaratabilir ve dbfdump myshape.dbfdüzenleyebilir , genellikle özellik değerlerine hızlı bir genel bakış elde etmek için kullanırım .

Bir DBF'nin programatik kontrolü ile ilgileniyorsanız, bir başka seçenek de bir python kütüphanesi olan dbfpy'dir ( foreignmdsummer'ın güzel kütüphanesine alternatif ). Bir sütun eklemek için örnek bir komut dosyası:

import dbfpy

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

db.close()

2

Andy, DARIAPRA bağlantısında belirtildiği gibi, faydalı bulabileceğiniz bir Excel 2007 ADD-IN vardır - dbf biçiminde kaydetmenize olanak verir. Bu web sitesinde bulabilirsiniz:

http://savedbf.blogspot.com/

(Excel 2003'e sahip olduğum için, hiç denemedim, ancak yararlı olduğunu duydum.

ArcGIS dışındaki DBF işlemlerine gelince - Bunu birkaç kez yaptım. Bazen işe yarar, bazen işe yaramaz. İki sentim: Dış manipülasyondan kaçınabiliyorsanız, kaçının. Eğer ingilizce olmayan bir dil ile uğraşıyorsanız, tamamen önleyin - ArcGIS dışında düzenleme yaparken herkesin dikkatini çekmeye meyillidir).


2

Alternatif:

  1. dbf'yi MS Excel 2007/10 sürümünde açın.
  2. Değişikliklerinizi yapın (sütun ekleme, veri doldurma vb.) Ve xls / xlsx olarak kaydedin
  3. ArcCatalog'da xls / xlsx konumuna gidin, çalışma sayfasını sağ tıklayın ve Dışa Aktar> To dBase (tek) seçeneğini belirleyin.
  4. Çıktı dbf dosyasını gerektiği gibi yeniden adlandırın


2

Genelde R'yi kullanırım (mdsomners'ın cevabını kontrol et), fakat bunu yapmak istediğin tek şey ise öğrenmeyi tavsiye etmem. Bence en iyi yaklaşım GIS programını kullanmak, alanları oluşturmak ve ardından bunları openoffice kullanarak düzenlemeyi denemek olacaktır.

Daha önemlisi, nitelik tablosundaki tüm alanları doğrudan düzenlemeniz gerekip gerekmediğini veya başka tablolara katılıp katılamayacağınızı düşünmelisiniz. Sonuncusu çoğu GIS programında yapılabilir, örneğin SAGA GIS

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


Kabul. Ne zaman veri eklediğim / değiştirdiğimde, daha kolay bir yol olup olmadığını merak ediyorum.
MaryBeth

1

Open Office Calc, dbf dosyalarını okumanıza ve yazmanıza izin verir. Ancak Lcasagrande'nin QGIS kullanan çözümü daha güvenli olmalı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.