打开要素类错误.几何形状数量与表的纪录数不匹配
前言
在Arcgis中打开Shapefile文件遇到这种问题,返回错误:“打开要素类错误.几何形状数量与表的纪录数不匹配。”
问题分析
Arcgis提示已很明确,形状数与表记录数不一致,即图形与属性表的记录数不一致,情况也就两种,一是图形比属性记录数多,另一种就是图形比属性记录数少。
出现第一种情况原因很多,可能是意外断电或者程序崩溃,属性未得到及时保存,也可能有其他的原因;第二种可能是在编辑过程中只增加了属性记录,而未进行图形的增加。还有就是可能通过其他的软件对shp附带的dbf文件进行了编辑,造成记录的增多或减少,进而造成图形与属性记录不一致。
解决办法
不管问题出现是什么原因,解决办法很简单。那就是属性记录少了就补上,多了就删掉。那么如何得知属性表记录是多了还是少了呢,就要用到一个叫 shapechk 的工具,工具执行顺序 Shapefile——Build Shx——Check DBF。因为造成问题的原因有很多,程序在简单问题情况下,会自动处理,而复杂情况下就需要手动处理了。
手动处理步骤
选择shp文件,点击Build Shp按钮,会弹窗提示是否删除现有索引文件,点击确定会删除shp附带的sbn和sbx文件,在程序中可以看到有614个要素,在这里就拿到了图形数。
再点击Check DBF,可以看到dbf记录数为611,比图形数少了3个。
也无需其他dbf编辑软件,将shp附带的dbf文件改个与shp不同的名字,用Arcgis打开——开始编辑——增加三条记录——停止编辑——保存。再将名称改回去,再用Arcgis打开就会发现问题已解决了。
问题扩展
有些爱动脑的小伙伴们不禁又要问了,你这样修复之后属性和图形还是对应的吗?还真是不一定,这要分几种情况:
- dbf记录多了,这种情况一般修复后没问题,即使在shp文件中存在几何为空的要素,shapechk也是会将其认定为一个图形的,所以不用担心dbf记录删多了,而一般情况下是不会在dbf中间去插入记录的,所以删除的多数情况并不会造成图形与属性匹配问题。
- dbf记录少了,如果由于各种意外情况删除的是最后的几条记录,那么影响的只是最后的图形丢失属性,问题不大;如果删除的是中间的记录,虽然手工修复将记录补齐,则会造成从删除位置开始的属性错位问题。如果出现这种问题就要自求多福了,如果你的属性中存在与图形有关的属性,那就可以相互验证进行调整,如果没有那就只能提醒你下次小心点了,数据无价,谨慎操作。
修复几何
对于以上问题修复几何为什么没有作用呢,这里就把修复几何的帮助搬过来,可以看到并没有针对以上问题的修复,在矢量编辑过程中要注意数据规范,避免出现下面的这些问题。
检查要素类中每个要素的几何问题。发现几何问题后,将应用相关修复,并打印一行描述,以便识别要素并确定遇到的问题。
有效的输入为 shapefile、个人地理数据库要素类和文件地理数据库要素类。
- 下面是所有几何问题和此工具将执行的相应修复的列表:
- Null geometry - 从要素类中删除记录。要保留具有空几何的记录,请取消选中删除几何为空的要素(使用 Python 中有关 KEEP_NULL 参数的 delete_null 选项)。
- Short segment - 删除几何的短线段。
- Incorrect ring ordering - 更新几何以获得正确的环走向。
- Incorrect segment orientation - 更新几何以获得正确的线段方向。
- Self intersections - 融合面中的重叠区域。
- Unclosed rings - 通过连接环的端点可将非闭合环闭合。
- Empty parts - 删除 null 或空的部分。
- Duplicate vertex - 删除其中一个折点。
- Mismatched attributes - 更新 z 或 m 坐标以实现匹配。
- Discontinuous parts - 根据现有的不连续部分创建多部分。
- Empty Z values:将 z 的值设置为 0。
- Bad envelope - 更新要素的包络矩形以实现更正。
打开要素类错误.几何形状数量与表的纪录数不匹配相关推荐
- java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...
问题标题 设计三个类:几何形状类(Shape).圆类(Circle).矩形类(.,请编写 Java程序,设计一个"形状&rdquo 2019-5-10来自ip:17.175.174. ...
- 论文浅尝 | 对于知识图谱嵌入表示的几何形状理解
论文链接:http://anthology.aclweb.org/attachments/P/P18/P18-1012.Presentation.pdf 发表会议:ACL 2018 摘要 知识图谱的嵌 ...
- 伟景行citymaker-----01.javascript打开本地模型CEP,加载目录树,加载要素类
以下所有代码基于 CityMaker_IE_Plugin_vConnect8.0.171127.exe 版本 该版本只能使用IE打开,建议使用IE11 下载代码案例 1.打开cep模型代码 1.1 ...
- java定义一个接口shape_java声明一个接口Shape2D用来实现二维几何形状类Circle和Rectangle。...
java声明一个接口Shape2D用来实现二维几何形状类Circle和Rectangle.10 匿名网友2015.05.20浏览371次分享举报 1.声明一个接口Shape2D用来实现二维几何形状类C ...
- ArcGIS教程:要素类基础知识(一)
要素类具有相同空间制图表达(如点.线或面)和一组通用属性列的常用要素的同类集合,例如,表示道路中心线的线类要素.最常用的四个要素分别是点.线.面和注记(地图文本的地理数据库名称等). 要素类是具有相同 ...
- Geometry(几何对象定义空间位置和关联几何形状)
Geometry 描述 几何对象定义空间位置和关联几何形状. 讨论 在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类.使用光标填充要素类.使用要素类 ...
- arcmap新建要素_ArcGIS创建要素类
在使用ARCGIS软件进行工作时,免不了要建立地理数据库和要素类之类的.一下是我创建文件地理数据库并在数据库中创建要素类写相关步骤: 1.启动软件,可以使用ARCCatalog直接进行创建也可以使用A ...
- Shapefile、要素类和layer之间的区别和联系
1.Shapefile (.shp)是一种矢量数据的存储方式,用于存储地理要素的位置.形状和属性,但没有投影和拓扑信息.shapefile存储在一系列相关的文件中并包含一个.Shp文件. 2.要素类是 ...
- c++几何类和几何简单工厂模式
直接上报告了,不想再修改了 里面有很多算法都是学习其他朋友的,希望体谅 代码都是自己一句一句写的,不容易,有问题可以评论区见 一.实习题目 1.实现一个集合类 CSet(完成代码并测试运行),能够存储 ...
- ArcGIS教程:要素类基础知识(二)
要素类包含各要素的几何形状和描述性属性.各要素几何主要由各自的要素类型(点.线或面)定义.但是,也可定义其他几何属性.例如,要素可以是单部件或多部件.具有3D折点.具有线性测量值(称为m值)以及包含通 ...
最新文章
- LeetCode 17. Letter Combinations of a Phone Number--笔试题--C++,Python解法
- python(19)编码问题
- 移动端手势库Hammer.js学习
- Complete Guide to Parameter Tuning in XGBoost (with codes in Python)
- JVM 参数使用总结
- java excil表格开发_JAVA导出Excel电子表格的方法
- 括号匹配不一定用栈哦(洛谷P1739题题解,Java语言描述)
- MathType使用中的四个小技巧
- mysql数据的表分区二
- bootstrap datetimepicker 初始化及取值
- flash百叶窗消失_Flash遮罩特效实例之百叶窗效果
- 场外期权:一个你从未了解过的金融衍生品市场正在中国悄悄壮大
- 骇客基础知识:第3部分
- 除了“带地球去流浪”,还有哪些脑洞大开的太空计划?
- 2018年38种自由职业大盘点
- 最小二乘法和主成分分析的比较 matlab 儿子的papa
- ZOJ Monthly,Feburary 2012 部分题解
- 郭德纲的网络效应和网络利用
- 开启子进程的两种方式,孤儿进程与僵尸进程,守护进程,互斥锁,IPC机制,生产者与消费者模型...
- 【Linux】权限-粘滞位