我可以在excel中打开dbf文件,但是在excel中没有将另存为dbf选项。
将属性数据添加到shapefile的最佳方法(或使用的软件)是什么?
#1 楼
使用QGIS,您可以编辑shapefile,添加新的列和值。只需打开shapefile,转到“属性”>“属性”并添加新列。在较新版本的QGIS(2.x)中,“属性”称为“字段”
评论
我没有考虑使用QGIS,因为当我单击“获取python插件”时,在我的Linux机器上,它(Copiapo)崩溃了。有人知道是否有解决办法吗?同时,我将尝试添加寡妇版本的属性。
– ChristJ
2011年3月6日21:18
您可以尝试按照Richard在此处描述的方式调试问题:osgeo-org.1803224.n2.nabble.com/…
– Underdark♦
2011年8月8日在18:10
QGIS允许您添加新列,但是用数据填充新列似乎是单击鼠标输入的—效率很低!我建议在下面的mdsummer的答案中使用R。
– baha-kev
2012年2月23日下午5:12
@ baha-kev为什么只是点击输入?您不可以像本教程那样做吗?
–ocean800
16年4月4日在20:10
在QGIS 3.2.1中,它位于对话框窗口中的图层上下文菜单>“属性...”>“源字段”类别中。
– andw
18年7月27日在14:41
#2 楼
结合使用R
和foreign
软件包来修改DBF文件:创建一个全新的shapefile):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")
#3 楼
我完全不建议使用OpenOffice-或类似的应用程序!达伦·科普(Darren Cope)评论了“没有excel 2003的DBF创建和操作”问题的答案:程序评论
这不一定是正确的:我已经在OpenOffice和Excel中编辑了许多shapefile,而没有出现问题:您只需要了解格式的局限性(列名长度,数据类型等)。
– scw
2011年3月7日,下午2:34
@scw:您可以提供任何有关格式限制信息的链接吗?
– LarsH
14年8月27日在16:18
特定的限制因特定软件对格式的使用而异,但最简单的限制是:11个字符字段名称,字段名称中没有特殊字符或空格,并坚持使用DBF文件的核心数据类型(不是像'memo'这样深奥的东西)字段)。有关更多详细信息,请参见shapefile.py,shapelib DBF API或xbase上的此tome。
– scw
2014年8月27日在18:39
#4 楼
我已经使用MS Access合并了几个shapefile。我需要从其他shapefile中加入一些数据,并且效果很好。速度也很快。但是我想并不是每个人都有这个软件
评论
通常,我使用Access或其他某种形式的SQL来处理数据。对我来说,运行一些查询似乎要容易得多。如前所述,您只需观察实际数据库格式的变化,这是在实际GIS软件中最好处理的事情。
– MaryBeth
2011-3-7 13:23
#5 楼
使用QGIS很好,并且提供了与DBF交互的可靠接口,但是如果您需要以编程方式进行某些操作,或者只是想使用工具来检查shapefile,我想我会提到其他一些工具:我经常使用用于检查DBF文件的shapelib:它可以添加,创建和修改几何形状和属性,我经常使用dbfdump myshape.dbf
快速了解属性值。如果您对编程控制感兴趣,可以选择DBF的一个功能是dbfpy,这是一个python库(是mdsummer提到的不错的
foreign
库的替代方法)。添加列的示例脚本:import dbfpy
db = dbf.Dbf("myshape.dbf", new=False)
# add a new character field named 'myfield'
db.addField(("myfield", "C", 15))
db.close()
#6 楼
正如DARIAPRA指向您的链接中的Andy所指出的,有一个Excel 2007 ADD-IN您可能会发现有用-它允许您以dbf格式保存。您可以在以下网站上找到它:http://savedbf.blogspot.com/
(由于我拥有Excel 2003,所以我从未尝试过,但听说它很有用。
在ArcGIS外部进行DBF操作-我已经做过几次,有时它可以工作,有时却不行。我的两分钱:如果可以避免外部操作,请避免这种情况。完全避免使用它-在ArcGIS之外进行编辑时,往往会弄乱所有内容。
#7 楼
或者:在MS Excel 2007/10中打开dbf
进行更改(添加列,填充数据等)并另存为xls / xlsx
导航到在ArcCatalog中的xls / xlsx位置,右键单击工作表,然后选择“导出”>“到dBase(单个)”
根据需要重命名输出dbf文件
#8 楼
uDig有一个很好的工具,称为reshape,您可以通过它例如向表添加属性:http://udig.github.io/docs/user/reference/Transform%20operation.html支持函数是常用查询语言的函数:http://udig.github.io/docs/user/concepts/Constraint%20Query%20Language.html
#9 楼
我通常使用R(请检查mdsomners答案),但我不建议您了解这是否是您唯一想做的事情。我认为最好的方法是使用GIS程序创建字段,然后尝试使用openoffice对其进行编辑。更重要的是,您应该考虑是否需要编辑属性表中的所有字段直接,或者如果您可以将其他表联接到它。后者可以在大多数GIS程序中完成,例如SAGA GIS
http://www.saga-gis.org/saga_modules_doc/shapes_tools/index.html
评论
同意每次添加/更改数据时,我都想知道是否有更简单的方法。
– MaryBeth
2011-3-7 13:22
评论
返回到早期版本的Excel:MS删除了使用最新版本写入.dbf文件的功能! :-(Open office和Quattro Pro可以编辑和保存dbf文件,只是不要删除行或四处移动内容,否则索引文件将不允许进行匹配。将商业gis或开源gis用于这些任务,编辑单元格值应该不会造成任何问题
好!!!我以为这个网站的问题太简单了!!我没有机会尝试任何建议,因为我莫名其妙地破坏了我的geoserver和postgres软件... :-(因此,一旦我的Linux机器恢复到100%,我将查看所有建议,谢谢克里斯的回复时间