前言

在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 - 更新要素的包络矩形以实现更正。

打开要素类错误.几何形状数量与表的纪录数不匹配相关推荐

  1. java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...

    问题标题 设计三个类:几何形状类(Shape).圆类(Circle).矩形类(.,请编写 Java程序,设计一个"形状&rdquo 2019-5-10来自ip:17.175.174. ...

  2. 论文浅尝 | 对于知识图谱嵌入表示的几何形状理解

    论文链接:http://anthology.aclweb.org/attachments/P/P18/P18-1012.Presentation.pdf 发表会议:ACL 2018 摘要 知识图谱的嵌 ...

  3. 伟景行citymaker-----01.javascript打开本地模型CEP,加载目录树,加载要素类

    以下所有代码基于 CityMaker_IE_Plugin_vConnect8.0.171127.exe 版本 该版本只能使用IE打开,建议使用IE11 下载代码案例 1.打开cep模型代码 1.1  ...

  4. java定义一个接口shape_java声明一个接口Shape2D用来实现二维几何形状类Circle和Rectangle。...

    java声明一个接口Shape2D用来实现二维几何形状类Circle和Rectangle.10 匿名网友2015.05.20浏览371次分享举报 1.声明一个接口Shape2D用来实现二维几何形状类C ...

  5. ArcGIS教程:要素类基础知识(一)

    要素类具有相同空间制图表达(如点.线或面)和一组通用属性列的常用要素的同类集合,例如,表示道路中心线的线类要素.最常用的四个要素分别是点.线.面和注记(地图文本的地理数据库名称等). 要素类是具有相同 ...

  6. Geometry(几何对象定义空间位置和关联几何形状)

    Geometry 描述 几何对象定义空间位置和关联几何形状. 讨论 在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类.使用光标填充要素类.使用要素类 ...

  7. arcmap新建要素_ArcGIS创建要素类

    在使用ARCGIS软件进行工作时,免不了要建立地理数据库和要素类之类的.一下是我创建文件地理数据库并在数据库中创建要素类写相关步骤: 1.启动软件,可以使用ARCCatalog直接进行创建也可以使用A ...

  8. Shapefile、要素类和layer之间的区别和联系

    1.Shapefile (.shp)是一种矢量数据的存储方式,用于存储地理要素的位置.形状和属性,但没有投影和拓扑信息.shapefile存储在一系列相关的文件中并包含一个.Shp文件. 2.要素类是 ...

  9. c++几何类和几何简单工厂模式

    直接上报告了,不想再修改了 里面有很多算法都是学习其他朋友的,希望体谅 代码都是自己一句一句写的,不容易,有问题可以评论区见 一.实习题目 1.实现一个集合类 CSet(完成代码并测试运行),能够存储 ...

  10. ArcGIS教程:要素类基础知识(二)

    要素类包含各要素的几何形状和描述性属性.各要素几何主要由各自的要素类型(点.线或面)定义.但是,也可定义其他几何属性.例如,要素可以是单部件或多部件.具有3D折点.具有线性测量值(称为m值)以及包含通 ...

最新文章

  1. LeetCode 17. Letter Combinations of a Phone Number--笔试题--C++,Python解法
  2. python(19)编码问题
  3. 移动端手势库Hammer.js学习
  4. Complete Guide to Parameter Tuning in XGBoost (with codes in Python)
  5. JVM 参数使用总结
  6. java excil表格开发_JAVA导出Excel电子表格的方法
  7. 括号匹配不一定用栈哦(洛谷P1739题题解,Java语言描述)
  8. MathType使用中的四个小技巧
  9. mysql数据的表分区二
  10. bootstrap datetimepicker 初始化及取值
  11. flash百叶窗消失_Flash遮罩特效实例之百叶窗效果
  12. 场外期权:一个你从未了解过的金融衍生品市场正在中国悄悄壮大
  13. 骇客基础知识:第3部分
  14. 除了“带地球去流浪”,还有哪些脑洞大开的太空计划?
  15. 2018年38种自由职业大盘点
  16. 最小二乘法和主成分分析的比较 matlab  儿子的papa
  17. ZOJ Monthly,Feburary 2012 部分题解
  18. 郭德纲的网络效应和网络利用
  19. 开启子进程的两种方式,孤儿进程与僵尸进程,守护进程,互斥锁,IPC机制,生产者与消费者模型...
  20. 【Linux】权限-粘滞位

热门文章

  1. 让SlickEdit 自动编译Keil C51工程
  2. html转pdf分页 css
  3. 2022软工K班个人编程任务
  4. 全国省市区县数据库(大全)
  5. php 真太阳时间修正,北京时间与真太阳时以及换算方法!
  6. php拼音转为汉字方法二
  7. java设计模式2,开闭原则
  8. 笔记 黑马程序员C++教程从0到1入门编程——核心编程
  9. Unity-TA 成长之路(二)内置渲染管线-官方篇
  10. 软考初级程序员---题目(三)