修复损坏的 shapefile

简介:

Error: Number of shapes does not match number of table records。

形状数与表记录数不一致。

二、损坏原因

ESRI帮助文档上说常见损坏原因,并提出了解决方案:

(1)保存编辑内容时计算机崩溃

这是最常见的现象。由于软件版本不稳定或数据量大或突然断点很可能造成编辑shp文件形成损坏。

(2)添加非法几何

任何数据库都可以对其数据进行结构定义。如果有非法的几何 将导致shp文件损坏。例如,蝴蝶结。

(3)使用其他软件修改属性表

SHP文件是由多个文件组成,其中记录属性的dbf文件是不可缺少的,但如果用其他软件编辑过(例如,Microsoft Excel)也会造成文件损坏。

三、修复方法

下面是官网给出的修复方法,非常全面:

(1)    使用ArcToolBox > Data Management Tools > Features中的Check Geometry工具。此工具执行时数据的问题会被报告,或存在于输出表中。在执行后查看输出表。如果表是空的,证明没有找到坏的几何关系。如果报告有坏的几何关系,使用下面的Repair Geometry工具。

(2)    运行ArcToolBox > Data Management Tools > Features中的Repair Geometry工具。在运行后,返回再次运行Check Geometry工具以确定所有的损坏要素都被移除。依据需要往复运行Check Geometry/Repair Geometry。

(3)    导出数据岛geodatabase中,然后把他们复制到新shapefile中。

(4)    如果数据在网络驱动器上,把它复制到本地磁盘上。如果数据在本地驱动器上,把它复制到主驱动器的根目录下:例如,C:\

(5)    检查属性表中的非法字段名。字段名最多只能有10个字符,且以字母开头,不能包含空格或特殊字符,除了下划线以外。

(6)    除了下划线以外,文件名不能包含空格或特殊字符。一般来说,包含有空格的shapefile文件名可以在ArcGIS 9.x中起作用,然而为了测试请重命名shapefile是指不含空格。

(7)    在Windows资源管理器中删除所有索引(空间、属性和地理编码),投影和元数据文件。也就是删除所有的文件仅保留.shp,.dbf,.shx文件。注意在改动文件前做好备份。

(8)    尝试在其他电脑上操作这些shapefile

(9)    在其他软件中打开shapefile,最好是ArcView 3.x。如果能在ArcView 3.x中打开,尝试保存至新的shapefile,Theme > Convert To Shapefile。

(10)或者使用simple data loader或者将数据复制到ArcMap编辑进程中,将数据复制到新的要素类中。如果你的shapefile不包含很多的要素,可以一次拷贝,否则分组拷贝可能损坏的数据。当拷贝过程结束后,保存编辑,查看问题是否以去除。

(11)如果数据仍未被修复,并且Check Geometry/Repair Geometry工具报告了要素ID和损坏记录,请手动清除这些损坏的数据。

(12)在ArcGIS和ArcView 3.x中使用字段计算器计算计算字段值。计算可能停在损坏的记录上。检查损坏损坏的shapefile的属性表并确认。例如,你的shapefile有1000条记录,如果字段计算器在第750条停下来,哪门第750条或751条可能就是损坏的。要删除损坏的条目,打开ArcMap编辑,拷贝除了坏条目以外的所有行至新的shapefile中,或者尝试手动删除损坏条目。

(13)删除除FID,Shape外的所有字段,并保留一个属性字段(shapefile必须要有一个属性字段)。如果问题依然存在,添加一个新字符串字段,并删除保留的属性字段。如果问题消失,这意味着是那个字段的问题。后面你就知道该怎么做了。

(14)使用Shapefile Repaier Utility

(15)使用Shapefile Repair Utility(不要与Shapefile Repaier Utility弄混)

(16)使用FunkFinder

(17)下载并运行CleanShapefile utility(只针对ArcGIS 8.3)

四、实例

先尝试使用"检查几何",无效,因为根本就打不开,所以没法检查。

再尝试复制一下数据:

问题出来了,形状数与表记录数不一致!(注意与多部件是有区别的)。可以造成的原因是编辑异常或通过其他方式修改过dbf文件。

最后shapech工具修复了SHP文件。

操作方法:先备份数据,然后加载Shapefile数据,读取数据信息,修复shx,再修复dbf。








本文转自我也是个傻瓜51CTO博客,原文链接:http://www.cnblogs.com/liweis/p/6388368.html ,如需转载请自行联系原作者



目录
打赏
0
0
0
0
143
分享
相关文章
u盘文件损坏怎么恢复数据 ,兔八哥爱分享轻松带你恢复数据
随着电脑和移动设备的广泛使用,U盘已经成为了人们在数据传输和备份中不可或缺的重要工具之一。特别是在计算机方面,一天要用的数据很多。但有时,我们可能会遇到U盘文件损坏的情况,导致无法访问里面的数据,又不清楚是什么原因造成的,这也是很让人烦恼的。那我们可以用什么方法呢?其实先了解u盘出现损坏的原因再对症下药会简单很多。今天兔八哥爱分享就给大家分享一些 u盘恢复数据方法,操作方法简单实用,大家可以试试!
2525 0
u盘文件损坏怎么恢复数据 ,兔八哥爱分享轻松带你恢复数据
rpmdb损坏的修复方法
yum强制终止后,提示rpmdb损坏 error: cannot open providename index using db3 - bad file descriptor
9056 0
U盘文件损坏且无法读取怎么修复?五个方法帮你搞定
U盘文件目录损坏无法读取可能是硬件、软件或人为操作导致的问题。修复方法包括:1) 使用数据恢复软件提取重要文件;2) 运行Windows的磁盘检查工具;3) 格式化U盘(数据会丢失);4) 检查U盘健康状况,如坏道修复;5) 若硬件故障,联系官方售后。在修复前,记得先备份数据。加强数据备份能减少损失。
通过磁带系统备份与还原的一些记录
通过磁带系统备份与还原的一些记录
40 1