我可以在openlayers中显示shapefile,但是我需要添加一些属性数据。
我可以在excel中打开dbf文件,但是在excel中没有将另存为选项作为dbf保存到更新的文件中。
将属性数据添加到shapefile的最佳方法(或使用的软件)是什么?
我可以在openlayers中显示shapefile,但是我需要添加一些属性数据。
我可以在excel中打开dbf文件,但是在excel中没有将另存为选项作为dbf保存到更新的文件中。
将属性数据添加到shapefile的最佳方法(或使用的软件)是什么?
Answers:
使用QGIS,您可以编辑shapefile,添加新的列和值。只需打开shapefile,转到“属性”>“属性”并添加新列。
在较新版本的QGIS(2.x)中,“属性”称为“字段”
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
包读取几何和属性数据(以便您也可以修改关系并创建一个全新的shapefile):
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")
我完全不建议使用OpenOffice-或类似的应用程序!达伦·科普(Darren Cope)评论了“ 没有excel 2003的DBF创建和操作 ”问题的答案:
如果您在“外部”程序中编辑.dbf,那就是shapefile变得很沮丧
我已经使用MS Access合并了几个shapefile。我需要从其他shapefile中加入一些数据,并且效果很好。也很快。但是我猜不是每个人都有这个软件
使用QGIS很好,并且提供了与DBF交互的可靠界面,但是如果您需要以编程方式进行某些操作,或者只是想使用工具来检查shapefile,我想我会提到其他一些工具:我经常使用的基本功能用于检查DBF文件的shapelib:它可以添加,创建和修改几何形状和属性,我经常使用它dbfdump myshape.dbf
来快速了解属性值。
如果您对DBF的程序控制感兴趣,则另一个选择是dbfpy,它是一个python库(是foreign
mdsummer提到的不错的库的替代方法)。添加列的示例脚本:
import dbfpy
db = dbf.Dbf("myshape.dbf", new=False)
# add a new character field named 'myfield'
db.addField(("myfield", "C", 15))
db.close()
正如DARIAPRA指向您的链接中的Andy所指出的,有一个Excel 2007 ADD-IN您可能会发现有用-它允许您以dbf格式保存。您可以在以下网站上找到它:
(由于我拥有Excel 2003,所以我从未尝试过,但听说它很有用。
至于在ArcGIS之外进行DBF操作-我已经做了几次。有时它起作用,有时却不起作用。我的两分钱:如果可以避免外界的操纵,那就避免它。如果您使用的是非英语语言,请完全避免使用它-在ArcGIS之外进行编辑时,往往会感到一头雾水。
uDig有一个很好的工具,称为reshape,您可以通过它例如向表添加属性:http : //udig.github.io/docs/user/reference/Transform%20operation.html
支持的功能是常见查询语言的功能:http : //udig.github.io/docs/user/concepts/Constraint%20Query%20Language.html
我通常使用R(请检查mdsomners答案),但我不建议您了解这是否是您唯一想做的事情。我认为最好的方法是使用GIS程序创建字段,然后尝试使用openoffice编辑它们。
更重要的是,您应该考虑是否需要直接编辑属性表的所有字段,或者是否可以将其他表联接到该属性表。后者可以在大多数GIS程序中完成,例如SAGA GIS
http://www.saga-gis.org/saga_modules_doc/shapes_tools/index.html