中国科学院计算技术研究所教育中心数据检查和拓扑处理闫磊2020年1月11日中国科学院计算技术研究所教育中心Page2讲解内容1.数据质量检查的内容2.拓扑规则介绍3.拓扑建立和拓扑检查4.拓扑错误处理5.拓扑编辑中国科学院计算技术研究所教育中心Page31.数据质量检查的内容中国科学院计算技术研究所教育中心Page41.数据质量检查的内容-总结属性检查:表结构检查、字段值范围(如必须在范围,如高程不大于8900,行政代码必须在行政代码表中),通过属性查询和属性统计,进行属性检查空间关系检查:拓扑一致性检查、碎片检查、接边检查拓扑一致性检查、碎片检查在ArcGIS是通过拓扑检查完成,ArcGIS没有接边检查,提供了一个自动(线)接边的工具中国科学院计算技术研究所教育中心Page51.数据质量检查的内容-属性检查①属性查询Getuniquevalues可以获得对应字段的唯一值查询产生选择集方法:创立新的选择集、添加到当前选择集、删除从当前选择集、从当前选择集中选择可以实现二次查询也可以使用下列方式设置中国科学院计算技术研究所教育中心Page6SQL的语法类型字符串空的判断模糊查询shp单引号=’‘_(下划线)表示1位,%表示多位pgdb单双引号都可以isNull或则=”“?表示1位,*表示多位fgdb单引号=’‘_表示1位,%表示多位oracle单引号isNull而不是=null_表示1位,%表示多位Sqlserver单引号isNull_表示1位,%表示多位总结字符串一般用单单引号,特殊的查询,如北大中国科学院计算技术研究所教育中心Page7SQL的语法续,数字的模糊查询,思路是转字符串类型模糊查询Shpcast(FIDascharacter)like'%1%'fgdbCAST(OBJECTIDASCHARACTER)LIKE'%1%'Pgdb(mdb)str([OBJECTID])like*1*oracleOBJECTIDlike‘%1%’SqlserverStr(OBJECTID)like‘%1%’中国科学院计算技术研究所教育中心Page81.数据质量检查的内容-属性统计在属性浏览中,选中字段标题,右键,SortAscending对选中从小到大排序,SortDescending从大到小排序Summarize是汇总,选中字段唯一值。其他字段,可以是最大值,最小值、平均值,汇总等,对于数字字段,右键界面如多个Statistics(统计),有最大值,最小值、平均值,汇总中国科学院计算技术研究所教育中心Page92、拓扑规则介绍ArcGIS的拓扑都是基于geodatabase(mdb,gdb,sde),shp文件是不能进行拓扑检查的。首先要建立FeatureDataset(要素集),把需要检查的数据放在同一要素集下,要素集和检查数据的数据基础(坐标系统、坐标范围)要一致,直接拖进入就可以,拖出来也可以,有拓扑时要先删除拓扑拓扑分为两种:1.一个图层自身拓扑:数据类型肯定一致,要么是点,要么线、要么面2.两个图层之间的拓扑:数据类型可能不同,有线点、点面、线面、线线、面面五种,检查前提必须在同一FeatureDataset(要素集)下,数据基础(坐标系统、坐标范围)要一致3.拓扑容差中国科学院计算技术研究所教育中心Page102.1一个图层自身拓扑点层:一个图层ArcGIS中没有拓扑检查,在我们实际中可能用到是点重复检查,做法是:没有点的坐标,可以使用ArcToolBox中AddXYCoordinates增加点XY坐标,再新建一个字段XYStr,值更新为str([POINT_X]*1000)+str([POINT_Y]*1000),这里的1000,就是容差为0.001,按XYStr,Summarize导出,个数不一致,就有重复,通过XYStr连接可以查找重复。中国科学院计算技术研究所教育中心Page112.1一个图层自身拓扑线层:a)mustnotoverlap:不能有线重合①b)mustnotintersect:不能有线相交①,②,③⑥c)mustnothavedangle:不能有悬挂节点(一个点需要连两个以上的线)④d)mustnothavepseudo-node:线不能有伪节点出现在连续弧段上的节点。把该弧段不必要地分为数段。如⑤e)mustnotselfintersect如③⑥不能线自相交,是mustnotintersect特例中国科学院计算技术研究所教育中心Page122.1一个图层自身拓扑线层:f)mustbesinglepart:线,一个线要素只能由一个path组成g)mustnotintersectortouchinterrior:线不能有相交和内节点接触⑦,还有不能有线交中国科学院计算技术研究所教育中心Page132.1一个图层自身拓扑面层1.mustnotoverlap:要素相互不能重叠(含部分)2.mustnothavegaps:单要素类,连续连接的面中间不能有空白区(非数据区)或则缝隙中国科学院计算技术研究所教育中心Page142.2.1两个图层之间拓扑点线之间点线拓扑mustbecoveredbyendpointof:点被线终点完全重合如①红点错误pointmustbecoveredbyline:点都在线上如②红点错误可以看出①包含②线点拓扑endpointmustbecoveredby:线+点,线层中的终点必须和点层的部分(或全部)点重合中国科学院计算技术研究所教育中心Page152.2.2两个图层之间拓扑点面之间点面拓扑-检查点MustBeCoveredByBoundaryOf点必须在多边形(面)的边界上MustBeProperlyInside点层的要素必须全部在多边形(面)内,点在多边形边上也是错误面点拓扑-检查面containspoint:多边形+点,多边形要素类的每个要素的边界以内必须包含点层中至少一个点,在边缘也是错误中国科学院计算技术研究所教育中心Page162.2.3两个图层之间拓扑线面之间线面拓扑:检查线MustBe线+CoveredByBoundaryOf多边形,线被多边形边界重叠,如:行政界线是行政区的边界面线拓扑:检查面BoundaryMustBeCoveredBy多边形+线:多边形层的边界与线层重叠(线层可以有非重叠的更多要素)所有的by都是多图层之间中国科学院计算技术研究所教育中心Page172.2.4两个图层之间拓扑线线之间线线之间拓扑,可以用于一个线图层自己和自己运算MustNotOverlapWith:要素层相互不能重叠,拓扑错误,是将两个图层重叠的列出来,图层顺序不影响最后的结果,只能用于两个不同图层之间。中国科学院计算技术研究所教育中心Page182.2.5两个图层之间拓扑面面之间①MustNotOverlapWith:要素层相互不能重叠,拓扑错误,是将两个图层重叠的列出来,图层顺序不影响最后的结果,只能用于两个不同图层之间。②MustBeCoveredByFeatureClassOf:第一个多边形层必须被第二个完全覆盖(如所有图必须在行政区划范围内,省与全国的关系),图层的先后,效果是不一样的,③mustbecoveredby:第一个多边形层必须把第二个完全覆盖(全国与省的关系)与前一个相反,就是上一个图层顺序调整中国科学院计算技术研究所教育中心Page192.2.5两个图层之间拓扑面面之间④MustCoverEachOther两个多边形的要素必须完全重叠,是指所有对象,而不是每个对象,如图斑的范围和行政区范围应该一致,图层先后不影响最后的结果⑤AreaBoundaryMustBeCoveredByBoundaryOf:第一个多边形的各要素必须为第二个的一个或几个多边形完全覆盖,如一个行政区划是一个多个图斑组成,图斑不能跨行政区,如全图地图是各个省组成。中国科学院计算技术研究所教育中心Page202.3拓扑容差拓扑容差是拓扑错误,关键因素,不同容差,错误个数也不一样,甚至在指定容差下有拓扑错误,如0.001,而容差为0.005,就没有了。拓扑容差大小与数据的要有关,一般0.001m,就可以了中国科学院计算技术研究所教育中心Page213.拓扑建立和拓扑检查在Arccatalog中,如果数据是shp格式,先转Geodatabase,如果是Geodatabase,看是否有FeatureDataset,要检查的数据是否在同一个FeatureDataset下,坐标系可以采用导入(import)已有数据的坐标系统要素集和检查数据的数据基础(坐标系统、坐标范围)要一致中国科学院计算技术研究所教育中心Page22MDB一个小技巧如果数据坐标系统一致,数据能叠加在一起,就是坐标范围定义不一致,一般的方法,重新见一个表后数据转,对于mdb有个小技巧,在access打开mdb修改GDB_ObjectClasses中的都DatasetID=1为对应的GDB_FeatureDataset主键(newdljx放在gp)中国科学院计算技术研究所教育中心Page233.拓扑建立和拓扑检查-内容1、建拓扑是arccatalog中,2、拓扑检查:可以在arccatalog,或arcmap中,拓扑错误处理是在arcmap。3、拓扑检查实际会改变数据,不仅仅是拓扑检查。中国科学院计算技术研究所教育中心Page243.1建拓扑在FeatureDataset右键newtopology,一个FeatureDataset中可以有多个topology,但一个图层只能在一个topology1.首先给拓扑设置名称和容差2.选择参与的图层,最少一个图层3.添加拓扑中国科学院计算技术研究所教育中心Page253.1建拓扑4、拓扑验证,点击拓扑,右键validate5、修改容差,右键,properies,在error中看错误中国科学院计算技术研究所教育中心Page263.2拓扑检查拓扑有效后就可以查看拓扑错误,设置不同拓扑,就实现不同拓扑检查可以arccatalog,也可是在acrmap将一个图层叠加在一起看,有错误就可以进行拓扑编辑中国科学院计算技术研究所教育中心Page274.拓扑错误处理1、拓扑工具条的介绍:拓扑Topology工具条在ArcMap中,通过右键增加,要想使用数据处于编辑状态2、拓扑错误处理中国科学院计算技术研究所教育中心Page284.1、拓扑工具条的介绍①MapTopology设置拓扑图层②ConstuctFeature构建拓扑要素、线转面,面转线,操作是选中要素,后点击该按钮。③planarizelines:对线拓扑处理,交叉线自动按交点打断,删除重复线,操作同上④TopologyEditTool:拓扑编辑工具,选择共享要素(如共享边),后面重点将⑤ShowShareFeature:显示共享要素,当④中共享边,看那几个共用中国科学院计算技术研究所教育中心Page294.1、拓扑工具条的介绍⑥ValidateTopologyInSpecifiedArea:有效拓扑特定的区域,操作是点击按钮,在地图画矩形,就有效矩形范围中的拓扑⑦ValidateTopologyInCurrentExtent:有效当前窗口的拓扑。⑧ValidateEntireTopology:有效当前整个拓扑⑨FixTopologyErrorTool:选择和提供修复错误工具⑩ErrorInspector:显示或隐藏拓扑错误列表6-10,是拓扑图层后才可以使用,中国科学院计算技术研究所教育中心Page304.2拓扑错误处理①重叠(线、面)mustnotoverlap②缝隙(面)mustnothavegaps③悬挂(线)mustnothavedangle④伪节点mustnothavepseudo-node⑤跨行政区AreaBoundaryMustBeCoveredByBoundaryOf⑥碎片处理一个例子中国科学院计算技术研究所教育中心Page31重叠(线)mustnotoverlap①完全重叠的话,1)选中其中一条删除2)选