arcgis几何修复有作用吗_修复损坏的 shapefile

0fd0e8de29b89e653cb39ae51a32bc0c.gif

一、SHP文件

Shapefile文件(简称SHP)作为ESRI一种经典的数据格式,被很多其他软件所支持,如CAD、MapGIS等,虽然也有一些限制(如无法进行拓扑分析、字段长度为10个字符等),但其仍然是广泛使用的空间数据格式。

用得多了,有时也会遇到出错的时候。

d1248998d5e0042fb28896619d1c567c.png

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)

四、实例

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

817a6663325453e52a6960135f520d8e.png

再尝试复制一下数据:

5483d45114e687f06347f2903ea5ad67.png

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

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

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

73547a290334783eebf553895633953b.png

f43ef4d4eac1d6898900d2116fac8f87.png

来源:cnblogs

作者:我也是个傻瓜

地址:https://www.cnblogs.com/liweis/

本资源均为通过网络等公开合法渠道获取的资料,仅作为学习交流之用,其版权归原作者或原出版社所有,不对所涉及的版权问题负法律责任。如原作者认为侵权,请联系我们,我们立即删除文章,谢谢!

- END -

7.72GB ARCGIS  ERDAS  ENVI干货教程网盘下载ArcGIS Pro 关于地震数据可视化制作流程(附练习数据下载)在SHP, DWG, DXF, KML/KMZ矢量数据中自由行走ArcGIS制图技巧—边框的选择ArcGIS综合制图.doc(文档可下载)ArcGIS土地利用制图流程(附练习数据)689a62c82fc8930ac0135f9e103d99f1.gif2cc0ccc2ed34d357082951265aa1348f.gif戳原文,更有料!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器存档修改,云服务器存档修改器

云服务器存档修改器 内容精选换一换修改云服务器信息,目前支持修改云服务器名称及描述。您可以在API Explorer中直接运行调试该接口。PUT /v2.1/{project_id}/servers/{server_id}参数说明请参见表1。参数说明参数是否必选描述project_id是项目ID。获取方法请参见获…

contains方法_【原创】Pandas数据处理系列(二):常用处理方法笔记

Pandas的魅力在于处理数据的灵活性,但是由于太灵活,会导致使用者很容易忘记各类方法。在Pandas学习这件事情上,真正体现了好记性不如烂笔头的方法特性。故特用此文章记录Pandas常用的数据处理方法,需要用的时候,打开此…

模板多个列表级联_如何使用word制作模版?word怎样使用模板?

Word模板的使用教程:使用Word预设模板首次打开Word时,显示的第一个窗口会询问您要打开的文件。有几种选择。您可以打开一个新文档,这意味着将打开一个没有文本或样式的新文件。在新的空白文档中显示的唯一样式是在空白文件模板中设置的样式。…

联想gen系列服务器,Hpe Microserver Gen10 Plus开箱

Hpe Microserver Gen10 Plus开箱2021-04-19 10:53:2325点赞69收藏83评论心水很久的gen10 plus终于到了,关注了很久终于下手了,在值得买好像都没看到gen10 plus的开箱,那我就来一个开箱吧,本来是一个gen8升级到gen10plus的过程&…

加密选项_Zoom终于为免费账户也提供了端到端通讯加密的选项

受 COVID-19 健康危机的影响,世界各地的人们的工作和日常生活都发生了极大的改变。与此同时,以 Zoom 为代表的云会议解决方案,已经成为了许多人协同工作和网络授课的首选解决方案。问题在于,免费版的 Zoom 服务迟迟未能引入端到端…

matplotlib 设置标注方向_在matplotlib中用箭头和文字来标记重要的点

在matplotlib中,可以通过以下几种函数在图中添加箭头和文字标记1. text,用于添加文字2. arrow,用于添加箭头3. annotate,支持同时添加文字和箭头下面看下具体的用法1.texttext函数通过指定xy轴坐标,以及对应的文字来实…

c++ map 初始化_如何调整Linux内核启动中的驱动初始化顺序?

如何调整Linux内核启动中的驱动初始化顺序?【问题】此处我要实现的是将芯片的ID用于网卡MAC地址,网卡驱动是enc28j60_init。但是,读取芯片ID的函数,在as352x_afe_init模块中,所以要先初始化as352x_afe_init。此处&…

mysql group_concat去重_mysql 数据库group_concat函数的一些用法

对于group_contact函数一般懂一点sql的人来说,并不算太陌生,它主要配合group by 使用,起着分组时,将涉及行的相应的字段串联成一个字段如下表a:我们按照type分类,并将对应的名称按逗号分隔保存为一个names字…

mysql 征途_MySQL数据库

MySQL数据库数据库管理系统数据库管理系统是一种大型软件。常见的关系型数据库管理系统:OracleDB2SQL Server:现在用得少了SQL Lite:用于手机端MySQL:目前不要下载最新的8.0,下载5.7版本的。MySQL数据库安装步骤略&…

jeecmsv9导入mysql详细步骤_jeecms v9.3数据库导入

8# 发表于:2019-02-15 14:55:31 IP:27.220.*.*[Err] 1067 - Invalid default value for login_time[Err] ## Source for table jc_api_user_login#CREATE TABLE jc_api_user_login (id bigint(20) NOT NULL AUTO_INCREMENT,session_key varchar(100) DEFAULT COMMENT sesssio…

mysql 5.5 查询_mysql5.5数据库优化--定位慢查询

什么是慢查询mysql记录下查询超过指定时间的语句,被称为“慢查询”;启动慢查询日志1.查询是否把索引的SQL记录到慢查询日志中SHOW VARIABLES LIKE log_queries_%2.将查询到的值若为OFF,表示没有记录,就开启记录SET GLOBAL log_que…

svn mysql认证_SVN基于MySQL认证

SVN的简介和工作原理Subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但是普通应用在Linux上。SVN主要是通过两种方式来工作:即…

mysql账户dpzs_MySQL添加授权的用户命令实际操作

我们今天是要和大家一起探讨的是MySQL添加授权的用户命令 ,我前两天在相关网站看见MySQL添加授权的用户命令的资料,觉得挺好,就拿出来供大家分享。希望会给你带来一些帮助在此方面。 1.新建用户。 登录MySQL MySQL -u root -p 密码 创建用户 …

mysql游标的概述_MySQL游标简介

mysql> delimiter //mysql>mysql> create procedure test1()-> begin-> declare l_add_bonus1 int default 1000;-> declare l_add_bonus2 int default 500;-> declare l_empno int;-> declare l_sal,l_bonus decimal(15,2);->-> -- 游标结束的标…

mysql odbc.ini_关于unixodbc中odbc.ini和odbcinst.ini的介绍

关于unixodbc中odbc.ini和odbcinst.ini的介绍unixODBC without the GUIOreverything you wanted to know about odbcinst but were afraid to askPurposeA lot of people are using unixODBC but for a number of reasons are not building the GUI configuration and testing …

mysql range代表什么意思_MySQL数据表range分区例子

某些行业数据量的增长速度极快,随着数据库中数据量的急速膨胀,数据库的插入和查询效率越来越低。此时,除了程序代码和查询语句外,还得在数据库的结构上做点更改;在一个主读辅写的数据库中,当数据表数据超过…

mysql 日期类型比价_MySQL 日期时间类型怎么选?

构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 datetime 以及使用 int 来存储 unix timestamp。不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类…

怎么才能点一下excel中的超链接就显示出图片?_Excel如何批量建立超链接,搭建工作台...

本篇是“建立工作导航”第3讲如果您错过了前两篇:点墨楼:高效秘技!用EXCEL制作导航页和日志表管理日常工作​zhuanlan.zhihu.com点墨楼:批量提取文件名,快速建立EXCEL工作台文件路径​zhuanlan.zhihu.com为了提高工作效…

全局修改elementui message 右边弹出_ElementUI 只允许 $message 提示一次

场景:在某个API接口中调用了ElementUI的Message方法,在加了loading的情况下,多次请求会重复调用Message方法。Message时间长会重叠,时间段看不清提示内容,很烦~~~~这波是…

mysql 存树 闭包表_关系型数据库树形关系存储-闭包表

前言在关系型数据库中,有一种逻辑关系比较难处理,这种就是树形结构。目前有很多主流的处理方案,比如说直接在业务表中存储上一级id,这样就可以用递归查询SQL的形式找到某一节点的父节点,子节点,或者兄弟节点…