一种地形图的固定等高距检测方法、系统及装置与流程

未命名 07-23 阅读:99 评论:0
1.本发明涉及测绘地理信息数据处理
技术领域
:,更具体的说是涉及一种地形图的固定等高距检测方法、系统及装置。
背景技术
::2.对于dxf格式的基本比例尺地形图数据来说,其中会包含大量的等高线。等高线是地形图中不可或缺的要素数据,可以非常形象的表示出地形地貌特点。根据相关标准规定,本比例尺地形图中相邻两条等高线之间的等高距为特定值,而且必须相同。3.等高线对于民生、科研等领域具有极其重要的意义。等高线数据精度符合一定标准后,就达到了涉密的标准。根据相关规定:包含优于20米(含)等高距的等高线,密级为秘密级。4.在生产、传输、使用、存储可能会包含敏感等高线数据的单位和部门中,有必要对这些等高线数据进行密级识别,按照对应级别的保密要求来对数据进行管理,防止出现敏感数据泄密事件。5.当前对dxf格式的等高线进行密级检测,主要是通过人工来检测地形图的属性信息。或者利用autocad打开dxf文件,找到图中不同的等高线,分别通过list命令查看该条等高线的高程值,通过人工来判断等高距。6.但是,通过人工辨别的方式依赖第三方软件,不但操作复杂,而且对包含等高线多的地形图来说,容易出现差错,造成密级误判。而且这种方式也无法进行批量处理,执行效率比较低。如果将高密级等高线判定为低密级,则可能会造成敏感数据泄密风险;如果将低密级等高线判定为高密级,则可能会影响数据的合理使用。技术实现要素:7.针对现有技术中存在的问题,本发明的目的在于提供一种地形图的固定等高距检测方法、系统及装置,能够精准识别dxf格式的基本比例尺地形图中所有等高线和对应的高程值,并通过汇总后判断是否存在固定等高距,有效提高了地形图数据的检测效率。8.本发明为实现上述目的,通过以下技术方案实现:一种地形图的固定等高距检测方法,包括:打开待检测的dxf格式的基本比例尺的地形图;在地形图中获取每条等高线的坐标信息和高程值,将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中;根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组;在每个分组中,根据每条等高线的高程值计算出每个分组的等高距;根据每个分组的等高距确定所述地形图的固定等高距。9.进一步,所述在地形图中获取每条等高线的坐标信息和高程值,包括:针对每条等高线,识别等高线的父类型和子类型;如果等高线的父类型是lwpolyline,并且子类型是acdbpolyline,则通过读取其lwpolyline类型中的组码38对应的数据,获取等高线的高程值并保存到变量z中;通过读取其lwpolyline类型中的组码90对应的数据,获取等高线包含的顶点个数保存到变量count中;通过读取其lwpolyline类型中组码10对应的数据,获取等高线每个顶点的x坐标,通过读取其lwpolyline类型中组码20对应的数据,获取等高线每个顶点的y坐标,将每个顶点的x、y坐标保存到变量point中;否则,则识别下一条等高线。10.进一步,所述将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中,包括:当等高线的变量count的值大于0,变量z的值大于0,且变量point为非空时,则将此等高线的变量point和变量z组合成结构数据,作为等高线的检测信息添加到链表line_list中。11.进一步,所述根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组,包括如下步骤:步骤1:判断链表line_list是否为空;若是,则跳转到步骤5;若否,则执行下一步;步骤2:将链表line_list中第一组等高线的检测信息移除,保存到变量line中;步骤3:判断当前是否存在分组;若否,则将line添加到第一个分组中,并跳转到步骤1;若是,则执行下一步;步骤4:循环对每个分组进行遍历,若变量line中记录的等高线包围或者被包围于当前组中某条等高线时,则将变量line添加到当前组中,否则新建一个分组,将变量line添加到一个新分组中,添加完成后跳转到步骤1;步骤5:退出分组。12.进一步,所述在每个分组中,根据每条等高线的高程值计算出每个分组的等高距,包括:在每个分组中,读取每条等高线的变量z,以获取本分组中所有的高程值;将所有的高程值由大到小进行排序;计算相邻两个高程值的差值;判断是否所有差值均相等;若是,则此差值即为本分组的等高距;若否,则检测失败。13.进一步,所述根据每个分组的等高距确定所述地形图的固定等高距,包括:判断是否每个分组的等高距均相等;若是,则此等高距即为地形图的固定等高距;若否,则地形图不存在固件等高距,检测失败。14.相应的,本发明还公开了一种地形图的固定等高距检测系统,包括:地形图识别单元,用于打开待检测的dxf格式的基本比例尺的地形图;数据采集单元,用于在地形图中获取每条等高线的坐标信息和高程值,将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中;数据分组单元,用于根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组;计算单元,在每个分组中,根据每条等高线的高程值计算出每个分组的等高距;判定单元,用于根据每个分组的等高距确定所述地形图的固定等高距。15.相应的,本发明还公开了一种地形图的固定等高距检测装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上文任一项所述地形图的固定等高距检测方法的步骤。16.对比现有技术,本发明有益效果在于:本发明提供了一种地形图的固定等高距检测方法、系统及装置,通过遍历dxf文件中所有表示等高线数据的acdbpolyline,保存等高线所有顶点x、y坐标和高程z值。当文件读完后,对缓存的等高线信息根据坐标区域进行分组,使得每个分组中都是描述同一区域、不同高度的等高线数据。对于每个分组,根据高程z值大小进行排序,计算每相邻两个高程z值的差,得出本组等高距。再得出所有分组的等高距后,进行汇总判断:如果每个分组的等高距有且只有一个,并且全部分组的等高距都相等时,则dxf文件中存在固定等高距,否则不存在。17.本发明不依赖第三方软件,可以精准识别到dxf格式中所有等高线和对应的高程值汇总判断是否存在固定等高距,不容易出错,支持跨平台,方便批量处理,执行效率高。本发明可以有效提高对dxf格式地形图数据的质量检测、密级识别工作的效率,同时有效提高准确性。18.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。附图说明19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。20.图1是本发明具体实施方式的方法流程图。21.图2是本发明具体实施方式的等高线的检测信息分组方法流程图。22.图3是本发明具体实施方式的系统结构图。具体实施方式23.为了使本
技术领域
:的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。24.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的
技术领域
:的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。25.下面对本发明中出现的关键术语进行解释。26.1、等高线、等高距:等高线是指将国家基本比例尺地形图中海拔高度相等的相邻的点,两两相连所形成的一条曲线。由若干高度不同的等高线组合在一起,对地形地势进行描述。两条等高线之间的高度差,即为这两条等高线之间的等高距。根据国家基本比例尺地形图制图规范,要求一幅地形图中的等高距为特定值,不同比例尺的地形图要求的等高距不同。27.2、dxf格式:dxf格式是一种开放的矢量数据格式,是autocad软件产生和使用的一种绘图交换格式,通常以ascii编码存储了所有要素数据,方便和其它应用程序进行数据交互。28.dxf格式中由不同数值编号,来描述了下一行存储数据的类型、值、名称等信息。这些不同的数值编号统称为组码,独占一行保存。组码下面紧接一行数据,存储了实际的类型、值和名称等数据。如果将不同的组码视为key,组码对应的数据视为value,则可以将dxf格式简单理解成包含若干key——value数据对的文件,key、value分别各占一行来保存。29.在dxf格式中,将不同数据分别存储在不同段中,分别是header段、classes段、tables段、blocks段、entities段、objects段和thumbnailimage段。30.在解析dxf文件时,需要按行读取组码,根据组码的具体值(可参考autocad官网公布的dxf格式说明)对下一行的数据进行解析,循环读取直到文件结束。31.2、多段线:多段线lwpolyline是dxf格式地形图中所使用的一种实体类型,是由线和圆弧构成,是由不同的点连接起来所形成的任意形状的曲线,存储在entities段中。dxf格式的国家基本比例尺地形图中的等高线,由多段线实体进行描述。32.3、高程值:高程是指在地形图中表示海拔高度的数值。高程值z是指在dxf格式地形图中,用z值来描述所对应的高程值。33.如图1所示,本发明公开了一种地形图的固定等高距检测方法,包括如下步骤:s1:打开待检测的dxf格式的基本比例尺的地形图。34.在具体实施方式中,打开待检测的dxf格式的基本比例尺的地形图时,如果打开失败,则检测失败,直接退出。如果打开成功则继续下一步。35.s2:在地形图中获取每条等高线的坐标信息和高程值,根将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中。36.针对每条等高线,首先,识别是否等高线的父类型是lwpolyline,并且子类型是acdbpolyline。若否,则识别下一条等高线,直至所有等高线均已识别完毕,则转到s3。若是,则通过读取其lwpolyline类型中的组码38对应的数据,获取等高线的高程值并保存到变量z中;通过读取其lwpolyline类型中的组码90对应的数据,获取等高线包含的顶点个数保存到变量count中;通过读取其lwpolyline类型中组码10对应的数据,获取等高线每个顶点的x坐标,通过读取其lwpolyline类型中组码20对应的数据,获取等高线每个顶点的y坐标,将每个顶点的x、y坐标保存到变量point中。37.此时,需要确认当采集的等高线信息为有效信息,在对采集的信息进行处理。即当等高线的变量count的值大于0,变量z的值大于0,且变量point为非空时,则将此等高线的变量point和变量z组合成数据结构,作为等高线的检测信息添加到链表line_list中。38.需要特别说明的,本步骤中,数据的获取过程基于lwpolyline实体类型组码,lwpolyline实体类型中对应的部分组码含义如下表所示:lwpolyline实体类型的组码含义对照表s3:根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组。39.本步骤的目的在于根据等高线描述的区域对地形图中所有的等高线按照区域进行分组。可按照以下思想实现等高线的分组:针对地形图dxf文件中任意给定的两条等高线a和b,当a中所有顶点坐标连接成的曲线,可以将b中所有坐标都包围起来时(即b中所有坐标都在曲线区域内部),则表示a和b是共同描述某个区域上不同高程的两条等高线,可以称为a包含b,b包含于a。即等高线a、b属于同一分组。40.如果没有其它等高线可以将b中坐标包围起来时,等高线a、b就是描述不同区域两条等高线,即等高线a、b分属不同的分组。41.基于上述思想,在具体实施方式中,如图2所示,等高线的检测信息分组方法包括如下步骤:步骤1:判断链表line_list是否为空;若是,则跳转到步骤5;若否,则执行下一步。42.步骤2:将链表line_list中第一组等高线的检测信息移除,保存到变量line中。43.步骤3:判断当前是否存在分组;若否,则将line添加到第一个分组中,并跳转到步骤1;若是,则执行下一步。44.作为示例的,在本方法中,可在进行分组之前定义n个分组链表,并将分组链表依次命名为分组链表1、分组链表2……分组链表n,每个分组链表用于存储本组内每条等高线的检测信息。45.因此,如果当前n个分组链表均为空链表,则可确定当前还未有等高线的检测信息写入分组链表中,当前不存在分组。在后续的等高线分组过程中,如果确定等高线属于一个已存在的分组,则将等高线写入相应的分组链表中;如果确定等高线不属于当前的已存在的分组,则将等高线的检测信息写入首个空分组链表中。46.步骤4:循环对每个分组进行遍历,若变量line中记录的等高线包围或者被包围于当前组中某条等高线时,则将变量line添加到当前组中,否则新建一个分组,将变量line添加到一个新分组中,添加完成后跳转到步骤1。47.作为示例的,在本步骤中,可利用射线法判断变量line中记录的等高线包围或者被包围于当前组中某条等高线。射线法长用于判断一个点是否在多边形内部。48.具体来说,设变量line中记录的等高线的检查信息为a,当前组中某条等高线的检查信息为b。无论是a还是b,当其中的等高线顶点坐标显示在电子图纸上时,均可视为一个完全封闭的多边形。49.首先,依次提取a中的每一个等高线顶点坐标,并通过射线法判断该等高线顶点是否在根据b构建的多边形内部。如果a中的每一个等高线顶点均在根据b构建的多边形内部,则可确定a记录的等高线包围于b记录的等高线。否则,依次提取b中的每一个等高线顶点坐标,并通过射线法判断该等高线顶点是否在根据a构建的多边形内部。如果b中的每一个等高线顶点均在根据a构建的多边形内部,则可确定a记录的等高线包围b记录的等高线。50.可见,利用本领域常用的射线法即可准确判断出变量line中记录的等高线包围或者被包围于当前组中某条等高线。51.步骤5:退出分组。52.s4:在每个分组中,根据每条等高线的高程值计算出每个分组的等高距。53.在具体实施方式中,在每个分组中,首先读取每条等高线的变量z,以获取本分组中所有的高程值。然后将所有的高程值由大到小进行排序。此时,计算相邻两个高程值的差值。最后,判断是否所有差值均相等;若是,则此差值即为本分组的等高距;若否,则检测失败。54.s5:根据每个分组的等高距确定所述地形图的固定等高距。55.在具体实施方式中,判断是否每个分组的等高距均相等;若是,则此等高距即为地形图的固定等高距;若否,则地形图不存在固件等高距,检测失败。56.相应的,如图3所示,本发明还公开了一种地形图的固定等高距检测系统,包括:地形图识别单元1、数据采集单元2、数据分组单元3、计算单元4和判定单元5。57.地形图识别单元1,用于打开待检测的dxf格式的基本比例尺的地形图。58.数据采集单元2,用于在地形图中获取每条等高线的坐标信息和高程值,将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中。59.数据分组单元3,用于根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组。60.计算单元4,在每个分组中,根据每条等高线的高程值计算出每个分组的等高距。61.判定单元5,用于根据每个分组的等高距确定所述地形图的固定等高距。62.相应的,本发明还公开了一种地形图的固定等高距检测装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上文任一项所述地形图的固定等高距检测方法的步骤。63.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。64.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。65.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。66.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。67.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。68.结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本技术所限定的范围。当前第1页12当前第1页12
技术特征:
1.一种地形图的固定等高距检测方法,其特征在于,包括:打开待检测的dxf格式的基本比例尺的地形图;在地形图中获取每条等高线的坐标信息和高程值,将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中;根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组;在每个分组中,根据每条等高线的高程值计算出每个分组的等高距;根据每个分组的等高距确定所述地形图的固定等高距。2.根据权利要求1所述的地形图的固定等高距检测方法,其特征在于,所述在地形图中获取每条等高线的坐标信息和高程值,包括:针对每条等高线,识别等高线的父类型和子类型;如果等高线的父类型是lwpolyline,并且子类型是acdbpolyline,则通过读取其lwpolyline类型中的组码38对应的数据,获取等高线的高程值并保存到变量z中;通过读取其lwpolyline类型中的组码90对应的数据,获取等高线包含的顶点个数保存到变量count中;通过读取其lwpolyline类型中组码10对应的数据,获取等高线每个顶点的x坐标,通过读取其lwpolyline类型中组码20对应的数据,获取等高线每个顶点的y坐标,将每个顶点的x、y坐标保存到变量point中;否则,则识别下一条等高线。3.根据权利要求2所述的地形图的固定等高距检测方法,其特征在于,所述将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中,包括:当等高线的变量count的值大于0,变量z的值大于0,且变量point为非空时,则将此等高线的变量point和变量z组合成结构数据,作为等高线的检测信息添加到链表line_list中。4.根据权利要求3所述的地形图的固定等高距检测方法,其特征在于,所述根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组,包括如下步骤:步骤1:判断链表line_list是否为空;若是,则跳转到步骤5;若否,则执行下一步;步骤2:将链表line_list中第一组等高线的检测信息移除,保存到变量line中;步骤3:判断当前是否存在分组;若否,则将line添加到第一个分组中,并跳转到步骤1;若是,则执行下一步;步骤4:循环对每个分组进行遍历,若变量line中记录的等高线包围或者被包围于当前组中某条等高线时,则将变量line添加到当前组中,否则新建一个分组,将变量line添加到一个新分组中,添加完成后跳转到步骤1;步骤5:退出分组。5.根据权利要求4所述的地形图的固定等高距检测方法,其特征在于,所述在每个分组中,根据每条等高线的高程值计算出每个分组的等高距,包括:在每个分组中,读取每条等高线的变量z,以获取本分组中所有的高程值;将所有的高程值由大到小进行排序;计算相邻两个高程值的差值;判断是否所有差值均相等;
若是,则此差值即为本分组的等高距;若否,则检测失败。6.根据权利要求5所述的地形图的固定等高距检测方法,其特征在于,所述根据每个分组的等高距确定所述地形图的固定等高距,包括:判断是否每个分组的等高距均相等;若是,则此等高距即为地形图的固定等高距;若否,则地形图不存在固件等高距,检测失败。7.一种地形图的固定等高距检测系统,其特征在于,包括:地形图识别单元,用于打开待检测的dxf格式的基本比例尺的地形图;数据采集单元,用于在地形图中获取每条等高线的坐标信息和高程值,将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中;数据分组单元,用于根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组;计算单元,在每个分组中,根据每条等高线的高程值计算出每个分组的等高距;判定单元,用于根据每个分组的等高距确定所述地形图的固定等高距。8.一种地形图的固定等高距检测装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述地形图的固定等高距检测方法的步骤。

技术总结
本发明提出的一种地形图的固定等高距检测方法、系统及装置,属于测绘地理信息数据处理技术领域,所述方法包括:打开待检测的dxf格式的基本比例尺的地形图;在地形图中获取每条等高线的坐标信息和高程值,将坐标信息和高程值进行组合后生成每条等高线的检测信息,并将每条等高线的检测信息添加到链表中;根据等高线的坐标信息所描述的区域,对链表中的等高线的检测信息进行分组;根据每条等高线的高程值计算出每个分组的等高距;根据每个分组的等高距确定所述地形图的固定等高距。本发明能够精准识别dxf格式的基本比例尺地形图中所有等高线和对应的高程值,并通过汇总后判断是否存在固定等高距,有效提高了地形图数据的检测效率。率。率。


技术研发人员:李显程 张雷 李本学
受保护的技术使用者:中孚信息股份有限公司
技术研发日:2023.06.15
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐