一种基于结点排序的等深线生成方法及装置与流程

文档序号:11865984阅读:469来源:国知局
一种基于结点排序的等深线生成方法及装置与流程

本发明涉及一种基于结点排序的等深线生成方法及装置,属于海图制图技术领域。



背景技术:

等深线是指从理论深度基准面起算的海底深度相等的各点的连线,即通过同值水深点的曲线。在海图上,等深线与水深相配合,能直观、形象地反映海底地形,是三维海底在二维平面的一种表示方式。等深线研究在制图综合领域也有着重要的意义,其是海地地貌表达的关键因素之一。随着海底测量设备和技术不断发展与进步,采集到的海底地形数据量越来越大,如何快速、准确地生成大数据量海底地形的等深线,成为当前急需解决的问题之一。

等深线是具有深度属性的一种等值线,其生成方法与常规等值线生成方法类似。通常的等值线生成算法有格网追踪和三角网追踪,其过程主要有:1)遍历格网或三角网寻找到等值线追踪起点;2)从起点开始对相邻格网或三角网进行追踪直至生成闭合或者非闭合的完整等深线。当前等值线生成都是基于等值线追踪的算法,这些算法在等深线自动生成作业中已得到了较好的应用,但随着数据量的急剧增加,以有算法的生产效率问题逐渐凸显,迫切需要发展高效的、适应海量数据的等深线生产算法。



技术实现要素:

本发明的目的是提供一种基于结点排序的等深线生成方法及装置,以解决目前等深线在生成过程中由于采用常规等值线生成方法导致效率低的问题。

本发明为解决上述技术问题而提供一种基于结点排序的等深线生成方法,该生成方法包括以下步骤:

1)根据水深数据构建水深Delaunay三角网;

2)遍历每个三角单元并提取等深线段,将提取的等深线段与已生成的等深线段根据位置关系进行排序,并生成某深度值等深线结点链表;

3)根据排序结果将等深线结点链表中的等深点按顺序连接,所连接得到的线即为等深线。

为消除等深线生成的不确定性因素,在构建水深Delaunay三角网前对水深数据进行预处理。

步骤2)中等深线结点链表的生成过程如下:将提取的等深线段的首尾结点存储到相应ID链表中,根据链表之间的关系对ID链表进行合并,合并后的结果即为等深线结点链表,该链表中存储的结点顺序即为最终的等深点排序结果。

链表之间关系的具体类型通过表两ID链表的首尾元素值进行判断。

所述步骤2)的具体实现过程如下:

A.输入一条等深线段的结点ID链表List_segi,若存在等深线段链表集合List_lines为空,则将List_segi加入到List_lines,并执行步骤D,若不为空,则执行步骤B;

B.将List_segi与List_lines中所有的结点ID链表List_segj逐一进行比较,判断链表之间的关系断,若两个结点ID链表相接,则将List_segi加入到List_lines,并执行步骤D,否则将List_segi按照顺序或者倒序的排序插入到List_segj中,插入前将插入位置的重复元素删除;

C.继续将List_segi与List_lines中未比较的结点ID链表进行比较,若List_segi与List_segk为相接的关系,则执行步骤D,否则将List_segk按照顺序或者倒序的排序插入到List_segj中,插入前将插入位置的重复元素删除,插入后将List_segk删除,执行步骤D;

D.继续遍历三角网,输入下一段等深线段的结点ID链表。

如果链表首尾的结点ID相同则该结点序列组成的等深线是闭合曲线;如果链表首尾的结点ID不相同则该结点序列组成的等深线是非闭合曲线。

本发明还提供了一种基于结点排序的等深线生成装置,该生成装置包括Delaunay三角网构建模块、等深线结点链表生成模块和等深线确定模块,

所述Delaunay三角网构建模块用于根据水深数据构建水深Delaunay三角网;

所述等深线结点链表生成模块用于遍历每个三角单元并提取等深线段,将提取的等深线段与已生成的等深线段根据位置关系进行排序,并生成某深度值等深线结点链表;

所述等深线确定模块用于根据排序结果将等深线结点链表中的等深点按顺序连接,所连接得到的线即为等深线。

为消除等深线生成的不确定性因素,该装置该包括预处理模块,用于在构建水深Delaunay三角网前对水深数据进行预处理。

等深线结点链表生成模块生成等深线结点链表的过程如下:将提取的等深线段的首尾结点存储到相应ID链表中,根据链表之间的关系对ID链表进行合并,合并后的结果即为等深线结点链表,该链表中存储的结点顺序即为最终的等深点排序结果。

链表之间关系的具体类型通过表两ID链表的首尾元素值进行判断。

本发明的有益效果是:本发明首先根据水深数据构建水深Delaunay三角网;然后遍历每个三角单元并提取等深线段,将提取的等深线段与已生成的等深线段根据位置关系进行排序,并生成某深度值等深线结点链表;最后根据排序结果将等深线结点链表中的等深点按顺序连接,所连接得到的线即为等深线。本发明通过判断链表间的关系对链表进行合并,最终生成某一深度值对应的链表,该链表中存储的结点顺序即为最终的等深点排序结果。本发明所提取的等深线不仅能够正确表达海底地形,并且具有较高的效率。

附图说明

图1是本发明的基于结点排序的等深线生成方法的流程图;

图2-a是等深线段结点链表间无公共点的关系示意图;

图2-b是等深线段结点链表间首尾都共点的关系示意图;

图2-c是等深线段结点链表间同位共点的关系示意图;

图2-d是等深线段结点链表间异位共点的关系示意图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步的说明。

本发明的一种基于结点排序的等深线生成方法的实施例

本发明通过构建水深Delaunay三角网;遍历每个三角单元并提取等深线段,将提取的等深线段与已生成的等深线段根据位置关系进行排序;最后根据排序结果将等深点按顺序连接成等深线。该方法流程如图1所示,具体实施过程如下:

1.对水深数据进行预处理,以解决等深线生成的不确定性问题。

2.构建水深Delaunay三角网。

本实施例采用逐点插入法构建水深Delaunay三角网,其基本步骤如下:

1)首先构建水深点集的凸壳。

2)然后随机排列点集P中的所有点P0,P1,…,Pn-1。

3)建立初始三角网,以凸壳上x值最小的点为出发点,按序与其余点相连,对点集P中的点Pr进行插入操作,所用采用的插入规则如下:

定位包含点Pr的三角形PiPjPk;如果Pr在三角形PiPjPk内部,则连接点Pr和三角形PiPjPk的各个顶点,将其剖分成三个子三角形;如果Pr在三角形PiPjPk的边PiPj上,则连接Pr与共边PiPj的两个三角形的第三个点,剖分形成四个子三角形;用Delaunay三角网的空心圆性质考查新生成的三角形,如不满足,则调换与相邻三角形所组成的四边形中相连的对角线,边交换方法规格化三角剖分。

4)移除包含大三角形任意顶点的所有三角形。

3.遍历每个三角单元并提取等深线段,将提取的等深线段与已生成的等深线段根据位置关系进行排序。

本步骤是将等深线段按其结点ID顺序链表的形式来表达,结点ID链表的首尾元素存储等深线段的首尾结点,通过判断链表间的关系对链表进行合并,最终生成某一深度值对应的链表,该链表中存储的结点顺序即为最终的等深点排序结果。链表之间的关系包括有相离关系和相接关系。创建等深线段链表集合ArrayList line,假设需要生成等深线深度值h,遍历水深三角网中的三角单元,根据等深点确定原则判断三角网格单元边上是否存在等深点(若存在等深点则点数必为2),若存在,则两个等深点组成该三角网格单元的等深线段,将等深线段以按其结点ID顺序链表的形式来表达,创建等深线段结点ID的链表数组List_seg加入到等深线段链表集合ArrayList_lines内进行结点排序,若不存在,继续遍历三角网,直到遍历完成所有三角网格单元。结点排序的过程如下:

A.输入一条等深线段的结点ID链表List_segi,若存在等深线段链表集合List_lines为空,则将List_segi加入到List_lines,并执行步骤D;若不为空,则执行步骤B。

B.将List_segi与List_lines中所有的结点ID链表List_segj逐一进行比较,判断链表之间的关系;若两个结点ID链表,如图2-a所示,链表间无公共点,即为相离关系,则将List_segi加入到List_lines,并执行步骤D;若为如图2-b、图2-c、图2-d所示的相接关系,其中图2-b表示链表首尾都共点,图2-c表示链表同位共点,图2-d表示链表异位共点,则将List_segi按照顺序或者倒序的排序插入到List_segj中,插入前将插入位置的重复元素删除;

C.继续将List_segi与List_lines中未比较的结点ID链表进行比较;若List_segi与List_segk为如图2-a所示的相离关系,则执行步骤D;若为如图2-b、图2-c、2-d所示的相接关系,则将List_segk按照顺序或者倒序的排序插入到List_segj中,插入前将插入位置的重复元素删除,插入后将List_segk删除(一条等深线段最多与两条等深线段分别首尾相接),执行步骤D。

D.继续遍历三角网,输入下一段等深线段的结点ID链表。

4.根据排序结果将等深点按顺序连接成等深线。

遍历完三角网的同时等深线段结点排序结束,得到等深线顺序结点ID链表集合,如果链表首尾的结点ID相同则该结点序列组成的等深线是闭合曲线,如果链表首尾结点的ID不相同,则该结点序列组成的等深线是非闭合曲线,按照结点ID链表集合的顺序连接等深点即可生成深度值为h的等深线。

本发明的一种基于结点排序的等深线生成装置的实施例

本实施例中等深线生成装置包括Delaunay三角网构建模块、等深线结点链表生成模块和等深线确定模块,Delaunay三角网构建模块用于根据水深数据构建水深Delaunay三角网;等深线结点链表生成模块用于遍历每个三角单元并提取等深线段,将提取的等深线段与已生成的等深线段根据位置关系进行排序,并生成某深度值等深线结点链表;等深线确定模块用于根据排序结果将等深线结点链表中的等深点按顺序连接,所连接得到的线即为等深线。各模块的具体实现过程已在方法的实施例中进行了详细说明,这里不再赘述。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1