กำลังเพิ่มข้อมูลคุณสมบัติลงใน Shapefile หรือไม่


33

ฉันสามารถแสดง shapefile ใน openlayers แต่ฉันต้องการเพิ่มข้อมูลคุณลักษณะบางอย่าง

ฉันสามารถเปิดไฟล์ dbf ใน excel แต่ไม่มีตัวเลือกบันทึกเป็น excel ในไฟล์ที่อัปเดตเป็น dbf

เป็นวิธีที่ดีที่สุด (หรือซอฟต์แวร์ที่จะใช้) เพื่อเพิ่มข้อมูลคุณลักษณะให้กับ shapefile ของฉันได้อย่างไร


กลับไปที่ Excel เวอร์ชันก่อนหน้า: MS ได้ลบความสามารถในการเขียนไฟล์. dbf ด้วยเวอร์ชันล่าสุด! :-(
whuber

4
Open office และ Quattro Pro สามารถแก้ไขและบันทึกไฟล์ dbf เพียงแค่ไม่ลบแถวหรือย้ายสิ่งต่าง ๆ มิฉะนั้นไฟล์ดัชนีจะไม่อนุญาตให้จับคู่สิ่งต่าง ๆ ใช้ gis เชิงพาณิชย์หรือโอเพนซอร์สสำหรับงานเหล่านี้การแก้ไขค่าของเซลล์ควรทำให้ไม่มีปัญหา

ดี!!! และฉันคิดว่าคำถามของฉันง่ายเกินไปสำหรับเว็บไซต์นี้ !! ฉันไม่ได้มีโอกาสลองคำแนะนำใด ๆ เพราะฉันทิ้งถังขยะ geoserver ของฉันและซอฟต์แวร์ postgres ... :-( ดังนั้นเมื่อฉันได้รับกล่อง linux ของฉันกลับไปที่ 100% ฉันจะตรวจสอบคำแนะนำทั้งหมดขอบคุณที่สละ เวลาตอบคริส
ChrisJ

คำตอบ:


23

การใช้QGISคุณสามารถแก้ไข shapefile เพิ่มคอลัมน์และค่าใหม่ เพียงเปิด Shapefile ไปที่คุณสมบัติ> คุณสมบัติและเพิ่มคอลัมน์ใหม่

ใน QGIS เวอร์ชันใหม่กว่า (2.x) 'แอตทริบิวต์' จะเรียกว่า 'ฟิลด์'


ฉันไม่คิดว่าจะใช้ QGIS เพราะในกล่อง Linux (Copiapo) ของฉันล้มเหลวเมื่อฉันคลิกที่ "Fetch python plugin" ใครรู้ว่ามีการแก้ไขสำหรับเรื่องนี้? ในระหว่างนี้ฉันจะลองเพิ่มแอตทริบิวต์ด้วยรุ่นแม่ม่าย
ChrisJ

คุณสามารถลองแก้ไขปัญหาตามวิธีที่ Richard อธิบายไว้ได้ที่นี่: osgeo-org.1803224.n2.nabble.com/…
underdark

QGIS อนุญาตให้คุณเพิ่มคอลัมน์ใหม่ แต่การเติมคอลัมน์ใหม่ด้วยข้อมูลดูเหมือนจะเป็นจุดคลิกเข้า - ไม่มีประสิทธิภาพจริงๆ! ฉันแนะนำให้ใช้ R ในคำตอบ mdsummer ด้านล่าง
baha-kev

@ baha-kev ทำไมมันแค่คลิกจุดป้อน? คุณไม่สามารถทำบางอย่างเช่นบทช่วยสอนนี้ได้หรือไม่
ocean800

1
ใน QGIS 3.2.1 จะอยู่ในเมนูบริบทของเลเยอร์> หมวดหมู่ 'คุณสมบัติ ... '> 'แหล่งข้อมูลฟิลด์' ในหน้าต่างข้อความ
andw

23

ใช้Rกับforeignแพ็คเกจเพื่อแก้ไขไฟล์ 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")

หรืออ่านข้อมูลรูปทรงเรขาคณิตและคุณลักษณะด้วยrgdalแพ็คเกจ (เพื่อให้คุณสามารถปรับเปลี่ยนความสัมพันธ์ได้เช่นกันและสร้างรูปร่างไฟล์ใหม่โดยสมบูรณ์):

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 - หรือโปรแกรมที่คล้ายกัน - เลย! Darren Copeแสดงความคิดเห็นคำตอบสำหรับคำถาม " การสร้างและการจัดการ DBF โดยไม่มี excel 2003 " กล่าวว่า:

มันเป็นรูปร่างที่ได้รับอารมณ์เสียมากถ้าคุณไปและแก้ไข. dbf ในโปรแกรม 'นอก'


3
สิ่งนี้ไม่เป็นความจริง: ฉันได้แก้ไขรูปร่างหลายไฟล์ใน OpenOffice และ Excel โดยไม่มีปัญหา: คุณเพียงแค่ต้องตระหนักถึงข้อ จำกัด ของรูปแบบ (ความยาวชื่อคอลัมน์, ชนิดข้อมูลและอื่น ๆ )
scw

@scw: คุณสามารถให้ลิงก์ใด ๆ กับข้อมูลเกี่ยวกับข้อ จำกัด ของรูปแบบได้หรือไม่
LarsH

2
ข้อ จำกัด เฉพาะแตกต่างกันไปตามการใช้รูปแบบของซอฟต์แวร์โดยเฉพาะ แต่ข้อ จำกัด ที่ง่ายที่สุดคือ: ชื่อฟิลด์อักขระ 11 ตัวไม่มีอักขระพิเศษหรือช่องว่างในชื่อฟิลด์และยึดติดกับประเภทข้อมูลหลักของไฟล์ DBF (ไม่ใช่สิ่งลึกลับเช่น 'memo' สาขา) สำหรับรายละเอียดเพิ่มเติมโปรดดูที่shapefile.pyที่API shapelib DBFหรือเล่มนี้ใน Xbase
scw

4

ฉันได้รวมหลายรูปร่างเข้าด้วยกันโดยใช้ MS Access ฉันต้องออกจากการเข้าร่วมข้อมูลบางอย่างจากไฟล์รูปร่างอื่น ๆ และทำงานได้ค่อนข้างดี นอกจากนี้ยังรวดเร็ว อย่างไรก็ตามฉันคิดว่าไม่ใช่ทุกคนที่มีซอฟต์แวร์นี้


1
ฉันใช้ Access หรือ SQL รูปแบบอื่นเพื่อจัดการข้อมูลโดยปกติ ดูเหมือนจะง่ายกว่าที่ฉันจะเรียกใช้แบบสอบถามสองสามข้อ ดังที่ได้กล่าวไว้ก่อนหน้านี้คุณเพียงแค่ต้องเฝ้าดูการเปลี่ยนแปลงของรูปแบบฐานข้อมูลจริงนี่เป็นสิ่งที่จัดการได้ดีที่สุดในซอฟต์แวร์ GIS จริง
MaryBeth

2

การใช้ QGIS นั้นดีและมีอินเตอร์เฟสที่แข็งแกร่งสำหรับการโต้ตอบกับ DBF แต่ถ้าคุณต้องการทำอะไรบางอย่างโดยทางโปรแกรมหรือต้องการเครื่องมือในการตรวจสอบไฟล์รูปร่างฉันคิดว่าฉันพูดถึงเครื่องมืออื่น ๆ : ฉันมักจะใช้คุณสมบัติพื้นฐานของshapelibสำหรับการตรวจสอบไฟล์ DBF: มันสามารถเพิ่มสร้างและแก้ไขทั้งรูปทรงเรขาคณิตและคุณลักษณะที่ฉันมักจะใช้dbfdump myshape.dbfเพื่อรับภาพรวมอย่างรวดเร็วของค่าคุณลักษณะ

ตัวเลือกอื่นหากคุณสนใจในการควบคุมโดยทางโปรแกรมของ DBF คือdbfpy , ไลบรารี python (เป็นอีกทางเลือกหนึ่งของforeignmdsummer library ที่ดี) ตัวอย่างสคริปต์สำหรับการเพิ่มคอลัมน์:

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 ที่อ้างถึงคุณมี Excel 2007 ADD-IN ที่คุณอาจพบว่ามีประโยชน์ - ช่วยให้คุณบันทึกในรูปแบบ dbf คุณสามารถค้นหาได้ในเว็บไซต์นี้:

http://savedbf.blogspot.com/

(เนื่องจากฉันมี Excel 2003 ฉันไม่เคยลอง แต่ฉันได้ยินมาว่ามันมีประโยชน์

สำหรับการจัดการ DBF นอก ArcGIS - ฉันทำไปสองสามครั้ง บางครั้งก็ใช้งานได้บางครั้งก็ใช้ไม่ได้ สองเซ็นต์ของฉัน: หากคุณสามารถหลีกเลี่ยงการจัดการภายนอกหลีกเลี่ยงได้ หากคุณกำลังเผชิญกับภาษาที่ไม่ใช่ภาษาอังกฤษให้หลีกเลี่ยงทั้งหมด - มันมีแนวโน้มที่จะสับสนเมื่อแก้ไขนอก ArcGIS)


2

อีกวิธีหนึ่งคือ:

  1. เปิด dbf ใน MS Excel 2007/10
  2. ทำการเปลี่ยนแปลง (การเพิ่มคอลัมน์การเติมข้อมูล ฯลฯ ) และบันทึกเป็น xls / xlsx
  3. นำทางไปยังตำแหน่ง xls / xlsx ใน ArcCatalog คลิกขวาที่แผ่นงานแล้วเลือกส่งออก> ไปยัง dBase (เดี่ยว)
  4. เปลี่ยนชื่อไฟล์เอาต์พุต dbf ตามต้องการ

2

uDig มีเครื่องมือที่ดีที่เรียกว่า reshape ซึ่งคุณสามารถเพิ่มแอ็ตทริบิวต์ลงในตารางได้เช่นhttp://udig.github.io/docs/user/reference/Transform%20operation.html

ฟังก์ชั่นที่รองรับคือภาษาเคียวรีทั่วไป: http://udig.github.io/docs/user/concepts/Constraint%20Query%20Language.html


2

ฉันมักจะใช้ R (ตรวจสอบคำตอบ mdsomners) แต่ฉันจะไม่แนะนำให้เรียนรู้ว่าถ้านั่นเป็นสิ่งเดียวที่คุณต้องการทำ ฉันคิดว่าวิธีที่ดีที่สุดคือการใช้โปรแกรม GIS เพื่อสร้างเขตข้อมูลแล้วลองแก้ไขโดยใช้ openoffice

ที่สำคัญกว่านั้นคุณควรคิดว่าคุณต้องแก้ไขฟิลด์ทั้งหมดในตารางแอตทริบิวต์โดยตรงหรือถ้าคุณสามารถเข้าร่วมตารางอื่น ๆ ได้ หลังสามารถทำได้ในโปรแกรม GIS ส่วนใหญ่เช่น SAGA GIS

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


ตกลง ทุกครั้งที่ฉันเพิ่ม / เปลี่ยนแปลงข้อมูลฉันสงสัยว่ามีวิธีที่ง่ายกว่านี้หรือไม่
MaryBeth

1

Open Office Calc ช่วยให้คุณสามารถอ่านและเขียนไฟล์ dbf แต่โซลูชันของ Lcasagrande ที่ใช้ QGIS น่าจะปลอดภัยกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.