数据质检修复及辅助数据融合工具研究

寇千万,吾亦独往。

一人一骑,神枪嘶鸣……

我在,无恙。

图片

        其实做数据处理,又何尝不是独自面对动辄上百万条记录的数据,就算鼠标点到冒烟,在抽丝剥茧,理顺逻辑关系的过程中,亦敌不过数据质检不合格的一顿顿板子……

        就这样,在人群中,我带着一些更加人性化的工具,凑上前来……

图片

一、需求背景

        基础调查成果、监测成果、专项调查成果以及应急监测成果等地理信息数据在推动数字经济高质量发展中具有基础性先行性作用,在推进数字城市建设进程和建设质量的提升有着积极意义,但其构建的业务众多,其内容、标准、方式等往往有较大差异,成果也难以有效集成共享。建立统一、全面、准确地自然资源数据底板,对于智慧决策、精准治理和智能审批等领域将大有作为。

        地理信息数据的获取方式中,典型要素自动提取、重点地物变化监测、物联网等自动化信息处理技术的发展和应用丰富了传统测绘地理信息数据的获取。在数据的获取、提取、加工处理过程中,数据质量控制和有效的数据处理手段将影响着数据信息的准确性和时效性。

        本课题旨在研究出系列数据质检修复工具、数据辅助处理工具,完善数据融合工作流,解决在矢量数据生产过程中出现的生产效率低、生产成果质量缺少检验手段、实际作业成果与业务需求不相符等问题,对提高数据融合的效率和提高数据生产的质量有着重要的意义。

        本研究的结果已通过大量(省级)的数据进行验证和完善,能适应较为复杂的数据情况,有效的解决了以往项目中数据治理方面未解决的难题。

二、 功能特色 

        本研究的成果,丰富了ArcGIS Pro中点、线或面要素的拓扑规则和修复功能列表中没有的内容,如“线层、面层打折修复”、“狭长面修复”等;优化了部分拓扑修复功能,如“线要素悬挂点修复”、“建筑物轮廓简化(冗余点移除,凸出和凹陷修复以及特征边重组等)”等;增加了部分数据处理工具,如“任意多边形中心线(连接线)提取”、“线要素修复(重叠、缠绕、平滑等)”等。

        在数据融合的技术路线中,能有效辅助要素分层提取、要素分层合并、属性规整、图形几何处理以及质量检查等数据处理内容。

        工具集在ArcGIS Pro的python工程环境的基础上进行开发。积累和封装了大量的类和函数,对于后续一些功能的拓展和研发,提供了很多的接口。

        实现的功能部分已封装为python工具箱,工具箱成果“数据融合”,包含数据融合工具集和数据质检工具集,如下图所示:

图片

图片

三、 工具功能介绍 

3.1 按要素范围或要素属性值分割输入要素集

        数据管理部门、数据管理系统或作业人员,通常需要对要素类集合按要素范围、按要素类属性值对其进行分割,达到数据下发,数据审批抽取及数据分块作业的目的。

        按要素范围或要素属性值分割输入要素集工具,用于解决一个或多个图层数据,允许一定的缓冲距离,按指定要素范围,或要素属性唯一值,对输入要素类集合进行分割提取。

        支持的功能:

        (1)对输入的要素类集合,按分割要素类的属性唯一值,对输入要素进行分割提取,输出gdb。gdb名称为属性值,gdb内的图层名与输入要素保持一致;

        (2)对输入的要素类集合,按分割要素的范围,对输入要素进行分割提取,输出gdb,gdb名称为分割要素名称,gdb内的图层名与输入要素保持一致;

        (3)支持缓冲距离(米)提取。

        工具执行界面如图下图所示:

图片

        工具运行结果展示如下图:

图片

3.2 国家基本比例尺地形图分幅计算

        为了便于测绘、制作、管理和使用地图数据,必须按适当的面积将广大地区的测绘成果数据划分成适宜的若干部分,并将每个部分进行系统编号。这项工作称为地图的分幅和编号。

        分幅可分为两大类:梯形分幅(又称“经纬线分幅”)和矩形分幅(包括正方形分幅)。梯形分幅是按经线和纬线来划分图幅,左、右以经线为界,上、下以纬线为界,图形近似梯形。在大范围的测图中,考虑地球是一个球面,只有按上述方法分幅才能保证所有图幅可以紧密结合而又不产生重叠和遗漏。梯形分幅常用于基本比例尺地图。

        作业生产过程中,根据图层数据范围生成指定基本比例尺下图幅号,能快速完成对于已归档数据的查找、比对、分割提取以及元数据信息的补充。

        国家基本比例尺地形图分幅计算工具,用于计算和生成输入要素范围内的国家基本比例尺地图的编号和分幅图形。

        支持的功能:

        (1)输入经纬度,计算指定的国家基本比例尺图幅号(模块提供接口);

        (2)根据国家基本比例尺下的标准图幅号计算当前图幅左上角坐标(支持经纬度坐标值和投影坐标值)(模块提供接口);

        (3)根据输入要素类四至范围,生成基本比例尺图幅面,属性值为图幅号;

        工具执行界面如下图所示:

图片

        工具运行结果展示如下图:

图片

3.3 算线要素连通性分组值

        对于需要构建网络的线要素图层,一般采取检查悬挂点,或按距离缓冲线后融合面,用来判断整个网络数据是否是一个完整的网络。两种检测方法,检查悬挂点的方式工作量过大且修复完成悬挂点后仍然可能不能构网(如端点搭在要素边上)。使用线缓冲融合面的方式,缓冲距离过大,会忽略掉悬挂点距离过近的情况,缓冲距离过小,又得不到想要的融合效果。且数据量大时,可能不能输出结果。线要素网络连通性,从线要素起始端点之间的联系出发,按起始端点之间的纽带关系,找出一张张的网络。

        计算线要素连通性分组值工具,计算线要素图层中的网络连通性,同一网络中的线要素将被赋予相同的值。

        支持的功能:

        (1)根据线要素的起始端点的连通性,对线要素就行分组。

        工具执行界面如下图所示:

图片

        使用分组字段值进行唯一值渲染,通过不同颜色能快速找出网络间不连通的地方。工具运行结果展示如下图:

图片

3.4 狭长面修复

        在数据编辑,数据空间分析过程中,往往会出现一些“狭长”的多边形。狭长的界定,使用形状指数(紧凑度)进行定义。

        用多边形的周长与面积的比值,来度量多边形的紧凑度。圆的周长面积比在所有的集合图形中是最小的。面积是缺陷特征的一个度量。面积只与缺陷的边界有关,而与其内部的灰度级的变化无关。

        缺陷的周长在区别具有简单和复杂形状的物体是特别有用,一个形状简单的物体用较短的周长来包围他所占有的面积。周长与面积比是用来描述缺陷性状的参数,当形状为圆时,周长与面积比最小,越呈长条状,周长与面积比越大。

        狭长面修复工具,用于修复多边形(可以只修复有孔洞的多边形)满足“狭长”阈值的要素。

        支持的功能:

        (1)修复多边形(可以只修复有孔洞的多边形)满足“狭长”阈值的部分;

        (2)修复多边形时,对发生改动的多边形进行输出,可用于定位和记录。

        工具执行界面如下图所示:

图片

        工具执行结果示意如下图:

图片

图片

3.5  建筑物轮廓简化

        建筑物轮廓的简化,包括两方面的内容。一是简化接近平角的直边上多余的节点。二是面要素修复或重组,主要是对存在不合理凹陷,不合理突出的部分进行修复,在保持建筑物的规则形态的基础上,按照特征边的定义检测直角化建筑物的特征边,将特征边组合并抽象出几种局部结构,建立重组规则。最后通过判别特征边组合的空间关系,选择合适的结构重组规则来化简建筑物。

图片

图片

        支持的功能:

        (1)居民地要素去除冗余点;

        (2)不合理突出修复,不合理凹陷修复;

        (3)对满足特征边定义的组合进行边重构。

        工具执行界面如下图所示:

图片

        修复突出和凹陷效果:

图片

        基于特征边重组:

图片

3.6  线层、面层打折修复

        线要素、面要素打折,是数据生产过程中常见的问题。打折问题对于制图和其他分析操作,可能会得不到预期的效果。而打折问题并没有现成的工具去发现或修复。

        线层、面层打折修复工具,用于线、面存在打折的地方,对打折线、打折面进行修复。

        支持的功能:

        (1)线存在打折的地方,对打折线进行修复,支持多部件,并输出被修复的详情;

        (2)面打折的地方,对打折面进行修复,支持多部件,孔洞,并输出被修复的详情。

        工具执行界面如下图所示:

图片

        工具运行结果展示如下图:

图片

        面图层修复输出:

图片

3.7 面间线悬挂点修复

        线面间线悬挂点修复工具,用于解决线要素端点需要搭接在面轮廓上,或线要素端点需与面内线端点连接的问题。对于水系线线层与水系面层之间的拓扑问题,将非常有用。

图片

        支持的功能:

        (1)水系线与水系面悬挂修复;

        (2)在搜索范围内,当面外悬挂点至周边面的最近距离小于悬挂点至面上悬挂点最近距离时,线要素的悬挂点将直接延长至其与周边面最邻近点,反之同理(但延长线不能穿过面,否则。仍然延长至周边面最临近点)。

        工具执行界面如下图所示:

图片

        工具运行结果示意如下图:

图片

3.8 线要素悬挂点修复

        悬挂点修复工具用于解决,在指定距离查找范围内,将有可能修复的悬挂点给予修复。这部分悬挂点表现为:

        (1)悬挂点附近有其他悬挂点,通过连接两个悬挂点解决悬挂问题;

图片

        (2)悬挂点附近无其他悬挂点,但有临近线要素;

        a)悬挂点与临近线要素间,存在一个合适的节点,可连接悬挂点与此节点,解决悬挂问题;

图片

        b)悬挂点与临近线要素间,找不到一个合适的节点,可延长此悬挂点至临近线合适位置,解决悬挂问题;

图片

    c)悬挂点超出临近线,可在线相交处截断线解决悬挂问题;此时不适宜采取移动此悬挂点至临近线合适的位置来解决悬挂问题,因为伸出的部分可能较长。但伸出的部分的长度超过搜索距离时,对此悬挂点不做任何处理。 

图片

        合适点:线节点与悬挂点最为接近;悬挂点与该节点连接后,以连接点为中心,与之连接的线之间构成的夹角不小于指定角度(默认30°);且连接后,不能与邻近线存在立交(跨越)的情况。

        线要素悬挂点修复工具,用于解决线要素悬挂点修复。

        支持的功能:

        (1)悬挂点附近有其他悬挂点,通过连接两个悬挂点解决悬挂问题;

        (2)悬挂点附近无其他悬挂点,但有临近线要素;

         a)悬挂点与临近线要素间,存在一个合适的节点,可连接悬挂点与此节点,解决悬挂问题;

        b)悬挂点与临近线要素间,不存在一个合适的节点,可延长此悬挂点至临近线合适位置,解决悬挂问题。

        (3)悬挂点超出临近线,可移动此悬挂点至临近线合适的位置或删除悬挂点解决悬挂问题。

        工具执行界面如下图所示:

图片

        工具运行结果示意如下图:

图片

        当然,工具能处理的效果非常好,而悬挂点一般比较离散, 截图不好表达,举一个示例:对dwg数据提取的道路线做修复处理,如下图所示:

图片

3.9 素类文本属性值规范化处理

        要素类文本字段属性值,在多种场景下需要对属性值规范化处理。

        (1) 全角转半角;

        (2) 半角转全角;

        (3) 值替换;

        (4) 异常字符剔除;

                a) 删除英文标点符号;

                b) 删除中文标点符号;

                c) 删除英文;

                d) 删除中文;

                e) 删除数字;

                f) 删除空格。

        要素类文本属性值规范化处理工具,用于处理输入要素文本字段值中,存在的全角半角、空格、数字、中文、中文标点、英文、英文标点以及值替换等文本规范化需求。

        支持功能:

        (1)全角、半角互转;

        (2)值替换;

         支持“*”查找,如“*ABC”,“*ABC*”和“ABC*”,“*”代表任意值。

        (3)异常字符剔除。

        (4)支持要素类多个文本字段,功能中多个文本规范化方法同时处理;

        工具执行界面如下图所示:

图片

        工具运行结果展示如下图:

图片

3.10 线线段修复

        工具将曲线线段(贝塞尔、圆弧和椭圆弧)替换为线段。

        当然,你也可以使用“增密”工具,通过指定“增密方法”为“偏移”,实现对曲线线段替换为线段。工具直接修改源要素图层,没有其他输出。

        换句话说,它做的很好,但你不知道他都做了什么?

        如果,我需要对曲线线段替换为线段的过程中,仅需要替换曲线部分(贝塞尔、圆弧和椭圆弧),并将替换的结果输出到指定目录,还能将被替换的曲线线段输出,用于查找定位,那么本文介绍的“曲线线段修复”工具,值得拥有。

        更为重要的是,在你对线数据进行其他功能开发时,你不可能提前对数据做一次“增密”处理,这会破坏源数据,且有大动干戈的嫌疑,你了解了如何替换曲线为线段的实现过程,对你进行二次开发,将起到非常大的帮助。

        工具执行界面如下图所示:

图片

        在“输出路径”下,输出与输入同名的要素类,并将被转换为折线的曲线部分输出,图层名为“curve_repair”。

        对线要素(多部件)的曲线部分进行增密处理,不破坏原有要素类的其他属性,如字段属性,属性域关系等。

        工具运行结果展示如下图:

图片

3.11 方形矩形图幅分幅计算

        矩形分幅是按平面直角坐标系的横纵坐标线来划分的,图幅的上、下以坐标横轴为界,左、右以坐标纵轴为界。对于工程方面需要的局部地区的大比例尺地形图、平面图和中小比例尺挂图和地图集,常用矩形分幅。

        正方形分幅和矩形分幅的图幅规格如下:

图片

        此外,在某些应用场景下,图幅的长宽是需要自定义的。

        正方形矩形图幅分幅计算工具,用于计算和生成输入要素范围内的标准图幅大小或自定义图幅大小的编号和分幅图形。

        支持的功能:

        (1)根据图层四至范围,按指定基本比例尺,分幅形状,生成分幅图幅,属性值为自定义编号;

        (2)根据图层四至范围,按自定义图幅长度和图幅宽度,成分幅图幅,属性值为自定义编号。

        工具执行界面如下图所示:

图片

        工具运行结果展示如下图:

图片

3.12 指定路径下同名图层合并

        当我们接收作业员提交的数据,或作业单位提交的成果数据时,很多情况下,获取的数据是按区域、按属性值分割开的数据库。

        这些数据内容,需要按图层名合并成一个完整地理数据库。但可能存在以下问题:

        (1)数据格式不一致(mdb、gdb、shp);

        (2)图层名称不相同;

        (3)同名图层属性结构项,字段类型不一致;

        (4)数据存放在多级目录结构下等。

        为此,一个用于将指定目录下,将不同数据格式,同名图层名称的数据合并为一个图层就显得尤为重要。

        该工具在合并过程中,应具有一些其他功能,如对数据进行几何修复、空值处理、图层属性字段自适应等。

        指定路径下同名图层合并工具,递归指定文件夹目录,对所有要素类进行检索,将同名要素类进行合并处理。

        支持的功能:

        (1)对指定目录下的要素类,按同名图层(忽略图层名大小写)进行合并。合并的过程中,对字段类型、几何错误以及空值进行处理。

        (2)支持严格模式和非严格模式;严格模式下,默认所有同名图层字段属性项相同;非严格模式下,会对同名(忽略图层名大小写)图层的字段(忽略大小写)进行分析,优化和拓展字段属性项,以确保数据合并能正确执行;

        (3)“非严格模式”,将解决影响数据合并规则的因子:

            a) 忽略字段名存在大小写,合并或追加时会自动解决;如:feature,Feature;

            b) 忽略图层名存在大小写;如:LCRA,Lcra ;           

            c) 同名字段类型不一致;如:string,date ;             

            d) 同名字段长度不一致;

            e) 同名字段精度不一致;

            f) 同名字段是否必填不一致; 

            g) 同名字段是否包含空值不一致;

        (4)“严格模式”,此时,会忽略图层名称大小写问题。但同名图层下的字段属性,需保持一致,否则可能出现数据合并失败。

        (5)在输出目录下,输出数据合并日志文本。

        工具执行界面如下图所示:

图片

3.13 位于面外部分的中心线修复

        道路、河流和类似的线性结构通常由复杂的多边形表示。在多种应用场景下,需要提取面的中心线,用作单线表达或标注放置。

        在数据融合过程中,由于数据来源不同,面要素图层和结构线图层往往不能很好的套合,会出现中心线不在面要素内的情况,这种情况在数据生产中是不允许的。

        ArcGIS Pro中提供了一个工具Polygon To Centerline,用于提取面要素的中心线。此工具适用于狭长面中心线的提取,支持添加连接要素;但添加连接要素后,也不能完全使得中心线的端点与连接线的端点重合(尤其是当两个连接点较近而又不在多边形径向方向时)。而对于已经存在中心线要素图层,又只需要对部分区域进行更新,更新的重心是解决面要素的中心线不完全在面要素内的情况时,“位于面外部分的中心线修复工具”弥补了这种应用场景。

图片

        位于面外部分的中心线修复工具,用于修复面中心线存在位于面外的情况。对于水系线结构线需要完全位于水系面内的情况,将非常有用。

        工具实现了:

        (1)解决中心线不能连接到边界指定点和边界的问题;

        (2)按多边形的骨架线方向(凸壳直径)生成中心线,创新点为:在构建凸多边形前,使用多边形每条边的中点,构建新的面替代原始多边形,如此,最后得到的径向点,一定是原始多边形的边的中点;解决了当多边形出现明显凸出时所带来的中心线端点位于尖端的问题;

        (3)当多边形上有多个连接点时,会解决所有连接点的正确连接。

        工具执行界面如下图所示:

图片

        工具能很好的解决中心线不在面内的问题,尤其是当中心线来来回回穿插面时。

        工具运行结果展示如下图:

图片

3.14 分线

        我们知道,在arcgis Pro中,有一个工具“细分面”,用于将面要素分为若干等面积区域或部分。

        问题来了,能对线要素进行等距或等份分割吗?还真有!在修改要素窗格中,划分会将所选的折线要素以指定距离、多个相等距离、可变距离或总长度的百分比划分为两个或多个要素。

        但是,这玩意只能一条一条线的进行划分,一句话,很好用,但我不满意……

图片

        划分线工具,对图层内的线,按等距或等分的方式,对其进行分割。

         工具支持的功能:

        (1)支持按等份额对线进行分割,分割起始位置可以是线的起点或线的终止点;

        (2)支持按等间距对线进行分割,分割起始位置可以时线的起始点或线的终止点;

        (3)在“输出路径”下,输出与输入同名的要素类。

        工具执行界面如下图所示:

图片

        工具运行结果展示如下图:

图片

3.15 重叠修复

        对于线要素图层中,数据接边区域,或多源数据融合中,经常出现线重叠的情况。他们一般表现为线段的末端重叠,或交叉缠绕线部分重叠。

图片

        通常的做法是,对线图层做拓扑检查,找出“重叠”部分,使用拓扑批量修复工具“创建新要素”,对重叠部分创建要素,然后删除重复项实现重叠部分的几何修复。

        但是,问题来了……,下图中的重叠部分,是保留给ID为59的折线呢?还是保留给ID为59的折线?有或者是保留给ID为56的折线呢?如果用新建拓扑的方式解决重叠线,那么保留的结果将是随机的。

图片

        有问题?就会有答案。

        工具执行界面如下图所示:

图片

        工具运行结果展示如下图,“重叠线”部分,将按线段的走向综合判断,选择最佳的保留方案:

图片

3.16 中心线提取

        我们知道,提取中心线在很多场景中都需要。好消息是ArcGIS Pro中便提供了这样的桌面工具,工具帮助文档部分截图如下:

图片

        "Polygon To Centerline"(或类似的工具)通常用于地理信息系统(GIS)应用中,以从多边形要素中提取中心线。这种工具在多个应用场景中都非常有用,以下是一些可能的应用场景:

         1)水文网络分析:在水文学中,"Polygon To Centerline"工具可用于从河流、河道、湖泊等水体多边形要素中提取中心线。这对于进行水文网络分析、洪水模拟和水资源管理非常有用。中心线提取可以帮助确定河流的流向、长度、分布等信息。

        2)道路和铁路规划:在城市规划和交通规划中,该工具可以用来从道路和铁路的多边形要素中提取中心线。这有助于分析交通流量、规划道路和轨道建设,以及进行交通仿真。

        3)地图制图:在制图和地理信息系统中,中心线提取可用于改进地图的外观和可读性。通过将多边形要素转化为中心线,可以减少地图上的复杂性,使地图更加清晰。

         4)环境模拟:在环境科学和生态学中,该工具可以用于从不同类型的地理多边形要素(如森林、湿地、农田等)中提取中心线,以模拟环境过程和生态系统的变化。

        5)地理边界分析:在行政区划、土地利用规划和地理边界管理中,中心线提取有助于识别和管理不同区域的边界,以支持区域规划和管理。

        6)地形分析:在地理地形分析中,中心线提取可用于从地形多边形中提取河流、山脉、山脊等地形特征的中心线,以进行地形分析和模拟。

        7)农业规划:在农业领域,该工具可以用于提取田块的中心线,以帮助规划灌溉、种植和收获等农业活动。

        8)城市规划:在城市规划中,中心线提取可用于分析城市街道、建筑物和公共设施的布局,以支持城市规划和改进城市基础设施。

        总之,"Polygon To Centerline"工具的应用场景广泛,适用于各种GIS和地理空间分析项目,以提取多边形要素的中心线,从而支持不同领域的决策和分析。

就这?……

图片

        通过测试和对比可知,现在主流的面中心线提取工具或开源的面提取算法,仍存在一些缺陷

        1)主流GIS产品中的面中心线提取工具,对狭长面(如蜿蜒狭长的河流)提取效果较好,但对其他非狭长的面提取效果不佳;

        2)GIS产品工具支持“连接要素”,使得提取的中心线和连接线能正确连接,但实际上,表现并不如意;比如多个面的连接处,或连接点非常临近事,便不能使得中心线和连接线正确连接;

        3)开源的面中心线提取算法,不能解决连接点的问题,且离直接使用要素类图层提取中心线还需要进一步开发,再者,提取的中心线表现离ArcGIS中的Polygon To Centerline提取结果,仍然有不小的差距;

综合上述,小编给出了解决方案,“面中心线提取”工具。

        1)对面要素提取中心线,面要素形状可以是任意多边形,能很好的处理狭长多边形,非狭长多边形,有孔洞多边形。

        2)当面要素有其他连接要素图层,如点、线、面图层,将按照输入面要素与与之相交的其他要素的公共点(边中点)进行有效连接;

        3)对提取的中心线进行了平滑处理;

工具执行界面如下图所示:

图片

        ArcGIS Pro提取的滇池中心线结果如下图:

图片

“面中心线提取”工具提取的滇池中心线结果如下图:

图片

3.17 点处打断线

        实际上,当初写这个工具的时候,是无可奈何的。因为arcgis Pro中已经有一个工具“在点处分割线”,它的功能是根据交叉点或与点要素的邻近性分割线要素。它 有一个可选参数“搜索半径”,将用于通过线与点要素的接近程度来分割线的距离。 输入线搜索距离范围内的点将用于在线段上距点最近的位置处分割线。

        如果未指定此参数,将使用最近的一个点分割线要素。 如果已指定了半径,将使用此半径内的所有点来分割线。

图片

        它已如此优秀,我何故踌躇……

        直到那时那刻,我有百万级的线要素,十万级的点要素,需要在点或点附近打断线,它努力了三天,我等待了三天,一直没有结果……

        我知道,我等不到它了,我始终得往前走,痛苦的决定,就这么定下了……

图片

        工具打开界面如下图所示:

图片

        它功能上除了 与“在点处分割线”工具相同外,支持原地修改,即不用输出新的要素类,直接更改到源要素图层,这对于经常数据编辑的小伙伴可能更加贴心。并且,140W+线要素和10W+点要素,花了40分钟,这个时间,我愿意等待……

3.18 绕线检查和修复

        声明一下,“缠绕线”这个名称,是小编胡诌的,实际上,缠绕线就是线相交,只是这种相交,她们不断纠缠,不舍不离,为了形象的表述这种情况,小编取名“缠绕线”。

        清秀版缠绕示意:

图片

         糟心版缠绕示意:

图片

        上个重量级图对比看一下:

图片

他若一生爱你

不必动容

那只是千般宿缘,回头一眸。

        事实上,处理这种“缠绕线”似的线相交,绝大多数人的就两个选项,二选一,或者重新绘制。因为,在他们眼里,这,就是“孽缘”,看着头疼,梳理起来,难舍难分……

图片

        工具提供的功能,处理两种应用场景,一是找到缠绕线的‘线对’,提取他们共同的中心线作为最后的结果,替换两条缠绕线,二是提取缠绕线的中心线,输出让作业员在一个比对修整,再将修整后的中心线导入,直线对原来缠绕线的替换。无论那种场景,都需要正确解决线网的正确连接。

图片

        其实,说到这里,你应该知道“和事佬”或者“月老”的工作是非常难做的……

        工具打开界面如下图所示:

图片

        此外,工具可用于双线转单线,如大比例尺双线数据提取中心线,制作小比例尺缩编数据。

3.19 要素形状指数(狭长度)计算

        面要素形状指数(狭长度)计算工具,用于计算面要素的“形状指数”,形状指数表示多边形的紧凑度,最小值为1,值越大,多边形越狭长。

        支持的功能:

        (1)计算面的“形状参数”;

        (2)当面存在孔洞或者多部件时,分别计算各个部分的“形状指数”,并取最大值作为该记录下的结果。

        工具打开界面如下图所示:

图片

        工具运行结果展示如下图所示:

图片

3.20 线、面要素极小角查找

        极小角的存在,是影响数据使用和表征数据质量不过关的体现,没有现成的工具用于检测极小角。

        通过限定线、面折线间夹角的大小,输出所有夹角小于该值的位置,有利于快速定位,编辑修改。线、面极小角查找功能,能辅助准确消除极小角质量问题。

        线、面要素极小角查找工具,对输入的线、面要素,找出小于指定角度的夹角或转角位置,并记录该点所在的输入要素ID,该点处的夹角,并输出点。

        支持的功能:

        (1)找出线图层中,折线间、或折线内夹角小于指定值的ID,并在极小角处生成一个点位,用于快速定位(支持多部件);

        (2)找出面图层中,面(孔洞)转角夹角小于指定值的ID,并在小角处生成一个点位,用于快速定位(支持多部件)。

        工具执行界面如下图所示:

图片

        面极小角输出示例如下:

图片

        面极小角输出示例如下:

图片

四、关键技术/关键特色

  • 工具集有效地将质检和修复融合为一体,实现了质检结果的自动修复。工具集扩充了ArcGIS Pro拓扑规则中所没有的一些检查内容,并优化了部分Pro中拓扑结果批量修复的效果。能提高数据融合中,数据属性规整和图形几何处理的准确性和效率。

  • 工具集提供了部分工具,对数据融合中,数据的分发合并,元数据的生产,图形的简化和修复有着极大的帮助,丰富了数据融合的手段。

  • 工具具有通用性,不受限于数据生产规范和质检规则。

  • Python工具箱易于部署,结合工具功能特点,工具界面支持一次性解决不同要素类型(如线、面打折修复,线、面极小角查找等),解决多种工作场景(是否另存修复结果,下拉框选择和自定义参数等,工具界面参数随着输入不同而产生变化),实现多种需求一步到位(如文本属性值规范化处理,多个字段,多种方法一次性输入执行)。

  • 工具集基于ArcGIS Pro python环境开发,设计了多个类和函数,提供了丰富的接口,重写了centerline开源包,并拆解实现了部分常用的功能,如周边分析,路径规划等。这为后续其他功能需求的研发打下了基础。

五、应用展望

        该工具集,能帮助数据生产、数据管理人员解决生产成果质量缺少检验手段、质检结果得不到批量修复的问题。也能在数据融合工作流中辅助数据生产,元数据的制作等。

        随着数据质检修复和辅助数据融合工具的进一步研发,丰富多种应用场景下的工具需求。最终实现数据融合、数据质检、数据修复一站式的解决方案。高效地解决数据融合中数据生产和数据质量问题,降低数据处理难度和重复性工作,提高数据生产效率和成果质量,降低数据生产成本。

六、后续工作计划

        目前工具集中的一些功能还需要完善和拓展, 计划研发中的工具列表如图所示:

图片

        后续会根据需求,补充和拓展数据质检工具集和数据辅助处理工具集中的工具,不断更新和完善该工具集。敬请期待!

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

craybb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值