(,,・∀・)ノ゛hello,小编又来啦(一不小心又拖更这么长时间),感觉大家都是催更小能手,天天定时定点的发消息催更,(其实很感谢大家的关注与催更,说明我写的这些对大家都有很大的用处!让我感到挺高兴的,而我自己在写水文的过程中也会加深自己对此方法的理解!互惠互利!)

上一篇呢我写了拓扑面要素的修改方法,这篇我讲一下线要素拓扑修改的具体方法和一些小技巧。线拓扑的建立过程与ArcGis拓扑的那些事儿(拓扑应用过程一)这个面要素拓扑建立过程一致,我这里就不写啦!这篇呢主要写一下线拓扑的规则是怎样的,怎么样去修改线段的拓扑错误!下一篇呢会和大家说一下关于点的拓扑技巧!希望大家持续关注


因为每种项目的规程不同,数据库的规则也不一样,有的允许存在拓扑错误,有的不允许出现,所以我在这里就说说每个线拓扑的规则与修改方法吧,大家在建立拓扑过程中看情况择优选用!

Ps:每次写这些都感觉脑细胞死一万个

线拓扑规则详解规则一:不能重叠规则解释:此规则和面要素中的不能重叠规则是一致的,此规则不允许同一个图层中的任何线段发生重叠,任何重叠的线都会报错。

修改方法:①.建立好拓扑之后,使用拓扑错误查看工具,一个一个修改,这个方法最为稳妥,可以自主选择哪条线段与哪条线段合并、或者选择性的剪除重叠部分(此方法适用于有不可更改属性的线段【例如行政界线,权界线、地类界线、三调,二调,基本农田补划等等精细且要求高的线数据】)

②.选中全部线段,使用编辑器菜单栏下的合并工具,使其所有线段合并,然后使用高级编辑中的拆分多部件要素工具(俗称:炸开工具?) 把线段分开(此操作适合无任何属性的线段【当然有属性的也可以做这一步操作,然后把有正确属性的线段与拆分开的线段进行一个空间赋值就可以了】)③.选中全部线段,使用编辑器菜单栏下的合并工具,使其所有线段合并,然后调用工具箱中的多部件到单部件工具,使其不连续线段都拆分开(此操作适合无任何属性的线段【当然有属性的也可以做这一步操作,然后把有正确属性的线段与拆分开的线段进行一个空间赋值就可以了】)④.使用菜单栏地理处理下拉菜单中的融合工具,选中长度、属性相同的字段进行相同属性合并(这个方法小编是不怎么推荐的,弊端很大)

⑤.在编辑状态下使用高级编辑器中的打断相交线,这个功能可是不能小看噢,它的隐藏属性就是删除重复线!你选中重叠的线段之后点击这个功能,然后你就会发现这重复的线段神奇的合并成一条线段了(这个方法唯一的缺点就是把所有交点处的线段都会打断!不过我们可以结合第二种修改方法来进行使用【如果有特定序号的话,一定要先建立一个序号字段噢,然后在进行打断相交线这一操作,最后配合使用融合工具合并相同顺序号的线段】)

以上方法的排序顺序没有先后啊,若还有其他好的修改方法,请告知小编这菜鸟,让我也学习学习

规则二:不能相交规则解释:此规则说的是同一图层中的线段互相不能相交与叠置,不管是任何情况下的相交与叠置,此规则都认为是错误的。修改方法:①.建立好拓扑之后,使用拓扑错误查看工具,一个一个修改,这个方法最适合新手使用!简单、实用、不会出错,就是麻烦。(此方法适用于精细数据,例如三调,二调,基本农田补划等等精细且要求高的线数据)②.使用工具箱中的在折点处分割线,可以打断所有折点处的线段。

③.在编辑状态下使用高级工具中的打断相交线,这个功能在上面就详细的说啦,这里就不解释啦!

以上方法的排序顺序没有先后啊,若还有其他好的修改方法,请告知小编这菜鸟,让我也学习学习

规则三:必须被其他要素的要素类覆盖

规则解释:此规则说的是一个图层的线必须与另一个图层中的线要素重合,此规则认为第一个图层的任何线段未与第二个图层的线段重合都是错误的

修改方法:①.建立好拓扑之后,使用拓扑错误查看工具,一个一个修改,这个方法最适合新手使用!简单、实用、不会出错,就是麻烦。(此方法适用于精细数据,例如三调,二调,基本农田补划等等精细且要求高的线数据)

②.使用拓扑编辑工具中的对齐边工具(这个工具在ArcGis拓扑的那些事儿(拓扑应用过程二)有介绍),简单实用便捷! 不过这也是单次修改的!③.使用组合工具(以县界和乡界来解释):要素转点——要素折点转点——在点处分割线——复制——粘贴——合并——多部件到单部件——空间链接赋值必要属性(一定要使用备份后的数据并且在编辑状态下进行复制粘贴),具体操作过程如下:

县界转点,乡界折点转点,拿县界的点标记乡界线,然后统一删除被标记的乡界线段,把乡界折点转成的点使用在点处分割线工具,分割县界,把分割后的县界框选选中复制到乡界中,把乡界线段全部选中使用编辑器下拉菜单中的合并,合并之后呢选用工具多部件到单部件把全部不连续线段炸开,再把一些必要的属性用原始数据挂接进去!(这些步骤应该不难,大家可以试着操作一次【倒是小编感觉脑袋有点晕晕的,被绕进去了。。。】)

④.其实呢,上面三种方法完全可以解决这个重合问题了,但是呢我还想给大家多提供一个工具,可以解决很多数据未发现的问题,这个工具就是整合,此工具也是根据特定容差内来把相近坐标点数据进行一个坐标聚类(这个工具我就是提一提,大家根据情况使用吧,慎用【这个工具点、线、面通用】)以上方法的排序顺序没有先后啊,若还有其他好的修改方法,请告知小编这菜鸟,让我也学习学习。规则四:不能与其他要素重叠

规则解释:此规则说的是一个图层的线要素不能与另一个图层中的线要素重叠,但是可以相交,此规则认为第二个图层的任何线要素与第一个图层的线要素有任何重合都是错误的

这个拓扑规则一般都不会使用,我感觉只适用于地类图斑勾画草图阶段?例如分村画图斑,村界一圈的地类界线有可能会重叠?如果是这样的话,在总工计划工作流程时候就会解决这个问题的,如果确实有这样的问题的话,请参考规则一的修改方法来,同理!

规则五:必须被其他要素的边界所覆盖规则解释:此规则说的是一个图层中的线要素必须与另一个图层的面要素的边界重合,此规则认为线图层中的线要素与面层边界不重合的线要素都是错误的。修改方法:①.建立好拓扑之后,使用拓扑错误查看工具,一个一个修改,这个方法最适合新手使用!简单、实用、不会出错,就是麻烦。(此方法适用于精细数据,例如三调,二调,基本农田补划等等精细且要求高的线数据)②.如果要达到规则中的效果,那么我们就认为这个重合的地方是一个公共线,就借用整合工具来进行处理,使用此工具会把要素位于指定的X,Y容差范围内的公共要素通过使要素重叠来保持公共要素边界的完整性,位于指定 x,y 容差范围内的要素将使低等级的要素向高等级的靠拢,位于指定 x,y 容差范围内的要素会插入公共坐标折点,并在要素线段相交的地方添加折点,使其完全一致。这里要注意两个重点啊,如果要素间的距离小于容差,则折点或点将被聚类(移动至重合状态)。等级较低的要素类或图层将捕捉到等级较高的要素类或图层中的要素(其中 1 级高于 2 级)。请注意,如果使用的 x,y 容差较大,则等级为 1 的要素类中的要素甚至也可能发生移动。③.如果是要验证县界、村级调查区界线、乡级行政区界线与地类图斑是否存在跨界情况的话,这个规则一定要使用哦,解决方法为吗,新建三个个字段(KZJX、XZQDM、CJDCQDM),提取坐落单位代码前六位、九位、十二位分别依次赋值到新建字段中,以此字段融合形成县界、村级调查区、乡级行政区,然后转线炸开,这样就不会出现不重合问题了。④.还有一个骚方法,就是用拓扑中的聚类来解决,使用不同级别的容差,使不准的界线与标准界线逐渐靠拢,这个方法不大推荐,就给大家提供这么个思路!!!主要是小编用白话也写不出来,O(∩_∩)O哈哈~,大家回去自己试验吧!经过你自己的不断实验,或许会有小惊喜???以上方法的排序顺序没有先后啊,若还有其他好的修改方法,请告知小编这菜鸟,让我也学习学习。规则六:不能有悬挂点规则解释:此规则说的是每一条线段的端点都不能孤立,必须和其他要素或和自身相接触,此规则认为线图层中的任何端点未与其他线接触都是错误的。小编一直都认为悬挂点与悬挂线是一致的,但是听人说有区别,但是也没说区别在哪儿,让我很苦恼啊!难过(ಥ﹏ಥ)。修改方法:①.这第一种修改方和上面其余规则的第一种修改方法都一样,都是用拓扑查看器来查看和修改。②.使用修剪线工具,此工具可以移除线上超过交点指定距离的部分(悬挂线,也是悬挂点)。可修剪两个端点均未与其他线相接触的任何线,但只能移除超过交点指定距离的线段噢。这个工具会将修剪长度短于指定“悬挂长度”且两个端点均未接触到其他线的线段(悬挂线)。如果未指定“悬挂长度”的话,则会将所有悬挂线(两个端点均未接触到其他线的线段)均修剪至交点处,而不考虑悬挂线的长度。③.使用延伸线工具,此工具可将线段延伸至指定距离范围内的第一个相交要素,如果在指定距离范围内不存在相交的要素,则不会延伸该线段。以上方法的排序顺序没有先后啊,若还有其他好的修改方法,请告知小编这菜鸟,让我也学习学习。规则七:不能有伪节点规则解释:此规则说的是一个图层中的线必须在其端点处与同一图层的多条线接触,此规则认为一个端点如果仅与一条线接触,那么就是错误的。修改方法:①.这第一种修改方和上面其余规则的第一种修改方法都一样,都是用拓扑查看器来查看和修改。②.对于这个错误小编一直是以容差聚类作用去解决,只要把容差设的足够小就OK啦(聚类参考上一篇文章)。③.使用FME软件,调用Line joiner函数进行处理。以上方法的排序顺序没有先后啊,若还有其他好的修改方法,请告知小编这菜鸟,让我也学习学习。规则八:不能自重叠规则解释:此规则说的是同一个图层中的线要素不能与同一图层中的线要素重叠,此规则认为任何重叠的线都是错误的,相比规则一的不能重叠来说,这个规则更适合拓扑线要素!(推荐)修改方法:①.方法同上面所有的第一个修改方法。②.规则一的所有修改方法对于本规则同样有效。规则九:不能自相交规则解释:此规则说的是同一个图层中的线要素不能自相交,此规则认为任何存在要素自叠置的线都是错误的。这个错误容小编多说一点,自相交这个问题在数据生产中是个很严重的错误,也是最常见的一个错误自相交若是不处理,则会导致要素无法转换成指定格式,或者是无法完成写入库等操作。发生自相交的根本原因情况很多,有些是因为作图人员不小心误操作,采集要素节点的时候反复添加引起的错误;还有就是因为一些检查或处理的软件再对数据进行处理的时候设置的数据精度不同,也可能会导致自相交!小编下面的有几种方法都是2018底至2019年中旬做三调矢量化检查过程中使用过的一些方法!都是根据百度整理得来的,具体作者小编真是忘记了(作者大佬们勿怪!)。修改方法:①.方法同上面所有的第一个修改方法。②.这个错误小编推荐GIS的自带工具——修复几何,不过使用这个功能之前需要备份数据噢,因为此方法会改变要素的几何,各位酌情使用~~~(小编通常都是先检查几何看一下问题大不大,处理之后会不会影响面积,然后才做修复几何)。③.使用Arcpy,不过这个咱们基层工作人员会使用的不多(我们都是社畜工具人!),我直接把代码贴出来,大家直接使用吧,就不解释了!

import arcpyimport os#检查相交或重复的问题 A = r"D:\data\test.shp"fold = r'D:\data\bb' #打开覆盖写入arcpy.env.overwriteOutput=Trueindex=A.rfind("\\")B=fold+A[index:-4]+"B.shp"C=fold+A[index:-4]+"C.shp"D=fold+A[index:-4]+"D.shp"E=fold+A[index:-4]+"E.shp"G=fold+A[index:-4]+"G.shp"if not os.path.exists(fold):    os.makedirs(fold)#问题区域 相交的问题prob=fold+A[index:-4]+"H.shp"prob2=fold+A[index:-4]+"__WT.shp"#关闭结果加入图层arcpy.env.addOutputsToMap=Falsearcpy.FeatureToLine_management(A,B)arcpy.FeatureToPolygon_management(B,C) arcpy.Intersect_analysis([C,A],G)arcpy.FeatureToPoint_management(G, D)arcpy.FeatureToPoint_management(A, E)arcpy.Erase_analysis(E,D,prob)#添加字段 问题类型arcpy.AddField_management(prob, "problem", "TEXT","","", 12)with arcpy.da.UpdateCursor(prob, "problem") as cursor:    for row in cursor:        row[0] = "相交"        cursor.updateRow(row)del cursor#检查重复的问题,根据坐标是否一致判断  #E = r'D:\data\fumz\test\testE.shp'sets = set()sets2 = set()arcpy.AddField_management(E, "problem", "TEXT","","", 12)fields = ['SHAPE@WKT','problem','SHAPE@X','SHAPE@Y'] with arcpy.da.UpdateCursor(E, fields) as cursor:    for row in cursor:        id = row[0]        id2 = '%s,%s'%(row[2],row[3])        if id in sets:            row[1] = '重复'            cursor.updateRow(row)        elif id2 in sets2:            row[1] = '疑似相交'            cursor.updateRow(row)             else:            cursor.deleteRow()            #cursor.updateRow(row)            sets.add(id)            sets2.add(id2)del cursor#打开结果加入图层arcpy.env.addOutputsToMap=True  #合并图层arcpy.Merge_management([E, prob], prob2)#arcpy.env.addOutputsToMap=False delete = False#删if delete:    arcpy.Delete_management(B)    arcpy.Delete_management(C)    arcpy.Delete_management(D)    arcpy.Delete_management(E)    arcpy.Delete_management(G)    arcpy.Delete_management(prob)

④.强大如ArcGIS也是有检查不出来的自相交,因为不管是拓扑、Shp、MDB或者是GDB都是有容差的,小于这个容差的自相交都是无法检测到的,所以呢小编在这里推荐使用PostGIS将Shp文件导入Postgresql数据库中,从表里提出自相交的多边形,然后删除原表中的自相交图形,修复自相交图形,把修复完的数据恢复到原来的表中,最后通过PostGIS插件导出Shp!⑤.使用FME软件来处理,用转换器GeometryOGCValidator过滤出自相交的要素,利用SelfIntersector转换器将面自相交的要素进行处理,在通过GeometryFilter转换器把有效图形,这个过程中要注意的是参数一定要选择Valid,因为我们要检查的是图形的有效性!规则十:必须为单一部分规则解释:此规则说的是同一个图层中的线要素不能具有一个以上的构成部分,此规则认为任何具有超过一个构成部分的线要素都是错误的修改方法:①.方法同上面所有的第一个修改方法。②.推荐最简单粗暴的方法,编辑器下拉菜单合并!③.使用延伸线工具!④.使用多部件到单部件工具!规则十一:不能相交或内部接触规则解释:此规则说的是一个图层内的线要素必须在其端点处与同一图层中的其他线要素接触。此规则认为任何要素存在叠置与相交点都是错误的。修改方法:①.方法同上面所有的第一个修改方法。②.使用组合工具解决,编辑器下拉菜单合并——拆分多部件要素——在折点处分割线③.使用融合工具,以指定的属性融合。规则十二:端点必须被其他要素覆盖规则解释:此规则说的是一个图层内线要素的端点必须被另一个端点覆盖,此规则认为任何未被任何点要素覆盖的端点都是错误的。修改方法:①.方法同上面所有的第一个修改方法。②.使用整合工具进行修改。③.使用整形与追踪功能联合进行修改,在这里说一下这个追踪啊,一定右键设置一下追踪选项(根据项目的要求来),设置一下偏移量,追踪特定所选要素等!规则十三:不能与其他要素相交规则解释:此规则说的是一个图层内线要素不能与另一个图层中的线要素发生相交或者叠置,此规则认为第一个图层中的线要素若和第二个图层中的线要素发生相交或者叠置都是错误的。这个规则与规则四很相似,规则四允许相交但是不允许重叠!修改方法:①.方法同上面所有的第一个修改方法。②.使用打断相交线功能③.使用FME模块处理(会Arcpy也可以)规则十四:不能与其他要素相交或内部接触规则解释:此规则说的是一个图层内线要素必须与另一条线在其端点处接触,此规则认为第一个图层的任何线段与第二个图层的线段发生相交或者叠置都是错误的。嘿嘿,这个功能小编还没有使用过,所以就不在这儿瞎撇了,若大家有其他好的修改方法,请告知小编这菜鸟,共同学习学习

规则十五:必须位于内部

规则解释:此规则说的是一个图层线要素必须包含在另一个图层的面要素内,此规则认为若第一个线要素图层中未被第二个面要素图层所包含的任何线都是错误的。

修改方法:①.方法同上面所有的第一个修改方法。

②.组合工具修改,融合(面要素)——裁剪(面裁线)——导出新数据

这次的文章写了大概有五个小时??小编感觉死了十万个脑细胞。我感觉这个文章应该能满足催更的小伙伴们了吧!除了规则十四小编没有用过以外,其余的规则小编都把修改方法写了出来(都是我们基层社畜工具人可以看懂且可以直接上手操作使用的)!

闲话就说到这里,喜欢这期内容的就给小编点点赞,点点关注,转发转发,让小编也涨涨粉丝数

欢迎规范转载!可以直接加我微信,我给你设置白名单!

这次不给大家分享工作用的东西拉,给大家分享《速度与激情》全系列的电影!,可以闲暇之余解解乏(摸摸鱼?)

因为网盘的规则限制,不能直接分享链接,如果喜欢这个系列的朋友可以关注我公众号,点击菜单栏的联系作者,加我好友!

arcgis悬挂点修改_ArcGis拓扑的那些事儿(拓扑应用过程三)相关推荐

  1. arcgis几何修复有作用吗_ArcGis拓扑的那些事儿(拓扑应用过程二)

    上一篇呢我写了拓扑完整的建立过程,这篇我讲一下拓扑面要素的修改方法(这次使用的数据就不给大家共享啦).下一篇小编会讲关于线要素拓扑的具体方法与注意事项!希望大家持续关注! 这里呢,在多说一下这个拓扑中 ...

  2. ArcGIS之修改图层要素名称

    由于ArcGIS创建渔网并导出中心质点经纬度这篇文章篇幅较长,所以将这一小知识点单独拿出来,目的主要是为了讲解下ArcGIS如何修改图层要素名称: 1. 导入shp格式的矢量地图 接着选址研究问题,我 ...

  3. OpenCASCADE绘制测试线束:拓扑命令之复杂拓扑

    OpenCASCADE绘制测试线束:拓扑命令之复杂拓扑 复杂拓扑 offsetshape, offsetcompshape featprism, featdprism, featrevol, feat ...

  4. OpenCASCADE绘制测试线束:拓扑命令之基本拓扑

    OpenCASCADE绘制测试线束:拓扑命令之基本拓扑 基本拓扑 isos, discretisation orientation, complement, invert, normals, rang ...

  5. 拓扑排序及逆拓扑排序

    拓扑排序其实就是对有向无环图的顶点的一种排序,每个顶点出现且只出现一次. 对一个AOV网进行拓扑排序的方法: 1.从AOV网中选择一个入度为0的顶点并输出: 2.从网中删除该顶点和所有以它为起点的有向 ...

  6. 拓扑概念和GIS拓扑函数

    拓扑 所谓"拓扑"就是把实体抽象成与其大小.形状无关的"点",而把连接实体的线路抽象成"线",进而以图的形式来表示这些点与线之间关系的方法, ...

  7. 《WCF技术内幕》翻译15:第1部分_第3章_消息交换模式、拓扑与编排:消息拓扑、消息编排和本章小结...

    消息拓扑 消息拓扑描述的是在一个或多个发送者和接受者之间消息如何发送的.消息拓扑可以描述简单的应用-应用的连接关系,但是它同样可以描述复杂的应用-企业的连接.在后续文章里,面向服务的应用的作用会显现出 ...

  8. arcgis更改字段名_ArcGIS怎么修改属性表字段名称

    1.打开ArcMap,选择"Add Data",加入刚才修改了字段的属性表: 2.选择"Editor"->"start editing" ...

  9. 了解 ArcGIS 编辑器,从标准、高级到拓扑,从此不求人

    前言:你会画完全垂直的线段吗?你可以一键将两个不规则的要素紧密贴合在一起吗?你会制作剪切.整饰.跟踪的快捷键吗?你知道如何自定义快捷键吗?你熟悉高级编辑吗?你会用拓扑编辑功能吗?看这里,这里都有答案! ...

最新文章

  1. PHP中的字符串 — 表示方法
  2. java try catch嵌套_try catch里面try catch嵌套
  3. python用表达式解密密文_基于Python解密仿射密码
  4. (转载)Qt中使用cout输出的方法
  5. 数据结构之外部排序:置换-选择排序
  6. SQL Server 本地语言版本
  7. 信息学奥赛一本通(1135:配对碱基链)
  8. Linux云自动化运维第三课
  9. python从入门到精通-Python从入门到精通
  10. Linux 使用 shell 脚本处理字符串
  11. 【算法学习】【图像增强】【Retinex】White Patch Retinex
  12. 将Banner美观的放置于博客首页上
  13. 单片机原理与接口c语言版周国运答案,单片机原理与应用(C语言版)(周国运)习题答案.doc...
  14. FSViewer 一款功能强大的看图软件
  15. 2020十大高薪资专业和十大高薪资岗位---(之我给程序员丢人了)
  16. C#,VB.NET如何将Word转换为PDF和Text
  17. Windows 2016 服务器安全配置
  18. HCIE——园区网架构
  19. 海光国产CPU芯片和服务器,海光CPU芯片 一文看懂国产CPU!“造不如买”时代终
  20. 理论物理极础8:哈密顿力学和时间平移不变性

热门文章

  1. 2.3 《计算机组成原理》之浮点数的表示(基本格式、规格化[左规右规]、表示范围、IEEE754标准详解)
  2. Oracle 原理:序列
  3. springboot后台怎么获取前端传过来的excel_开源商城系统包含后台管理和手机端
  4. linux根文件系统创建过程
  5. C/C++ / 函数调用规则汇总
  6. 文件系统_Docker文件系统实战
  7. Android 11 修改libcore Cipher AS测试
  8. 斐波那契数列python递归 0、1、1、2、3_python: 递归和递推方法求斐波那契数列
  9. maccms V10后门
  10. maven中jar下载失败