当前位置: > 论文中心 > 计算机论文 >

一种快速的等值线生成算法

时间:2014-11-11 12:33 点击:
摘 要:本文提出了一种新的等值点位于网格点时,对等值点的调整方法;在分析已有等值线追踪算法的基础上,提出了一种基于TIN网格的快速等值线追踪算法,实验表明该算法具有较高的执行效率。 关键词:等值线 等值点 TIN网格 中图分类号:TP391.41 文献标识码
  摘 要:本文提出了一种新的等值点位于网格点时,对等值点的调整方法;在分析已有等值线追踪算法的基础上,提出了一种基于TIN网格的快速等值线追踪算法,实验表明该算法具有较高的执行效率。

  关键词:等值线 等值点 TIN网格

  中图分类号:TP391.41 文献标识码:A 文章编号:1672-3791(2014)04(a)-0033-02

  等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图件之一,被广泛应用于石油勘探、矿物开采、气象预报等众多领域。等值线的绘制是指从大量采样数据中提取出具有相同值的点的信息,并生成形态完整、位置精确的等值线的过程,包括等值线网格化、等值线追踪、等值线光滑、等值线填充与标注几个处理步骤[1]。其中等值线网格化是对网格边进行线性插值,进而求出等值点的过程。等值线的追踪则是利用等值线网格化产生的等值点数据,将其中相同等值点进行连接的过程。等值线追踪的传统方法是,在网格单元边上选取一个等值点,寻找邻近的等值点,顺次连接成线,直到等值点回到起始点或位于工区边界,完成单条等值线的追踪,并以此为基础遍历所有的等值点。在追踪过程中,等值线分为闭合与非闭合两种情形,需要先追踪开曲线,再追踪闭曲线,否则不能确保结果正确。特定的搜索顺序提高了处理过程的复杂性,增加了网格单元的重复搜索次数,致使效率低下。

  针对此类问题,很多学者提出了在不规则三角网(TIN网格)下的改进方法,成建梅[2]等提出为三角形三边分别赋予不同的权值,以方便确定三角形单元内等值点的位置。但是这只是对局部的改进,未涉及等值线追踪过程的优化。黄维科[3]等基于三角形单元内等值线段容易确定的事实,提出了使用“焊接法”将相同的等值点连接从而生成整条等值线的方法。但是在搜索等值线段间的共同等值点时,需要对已确定的等值线段进行遍历,执行效率提高幅度有限;并且使用的是简单的坐标值判别法,容易因机器误差引起错误结果。

  1 改进的等值线生成算法

  现在常用的用于生成等值线的网格有矩形网格、TIN网格等。综合考虑,本文选用TIN网格。生成等值线的主要步骤中,等值线的网格化处理与等值线的追踪是基础与关键,直接影响等值线的准确度和生成速度。接下来将针对TIN网格,介绍对这两个过程的改进。

  1.1 等值线网格化处理方法

  在TIN网格中,等值线网格化处理的作用就是在网格边上计算出各等值点,为之后的等值线追踪提供基础数据。以三角形单元为单位,遍历整个TIN网格,判断三角形棱边上有无等值点[4],使用公式:

  其中z为等值线的高程,zi,zj是对应三角形顶点的高程。若存在,则等值点的坐标为:

  1.2 等值线追踪算法

  本文采用的追踪思想即是:从一个等值点出发,沿任意方向搜索等值点,直到回到起点或者到达边界;再从起点开始沿反向搜索未经过的点。最终生成一条等值线。

  为了提高搜索效率,注意到在经过网格化处理后,可以保证每条三角形棱边至多有一个等值点,而与该等值点相连的等值点至多有两个。所以在以三角形单元为单位遍历TIN网格时,给每一棱边指定唯一的序号,若找出等值点,则记录与之相连的等值点所处的棱边。接下来以棱边为基本单元追踪等值线,这样的好处是便于构造顺序存储结构,进而使用随机存取机制,加快追踪速度。

  序号的引入将问题转化为简单的数值匹配,避免了常规算法中使用的方位信息。同时可以忽略常规等值线追踪算法中的特定追踪顺序,对于拓扑复杂TIN网格,不考虑三角形棱边是否位于边界上可以大大简化处理的复杂度。

  2 算法实现

  2.1 数据结构

  程序要兼顾按索引查找时的快捷和等值点插入的便利,故选择混合存储结构。具体实现如下。

  等值点的数据结构见表1。

  三角单元棱边的数据结构见表2。

  其中访问标记指示是否追踪过该边,初始时置为False。等值点1是位于该边上的等值点。等值点2指针指向当前等值线上的另一个端点(队尾)。邻接边1,2上的等值点与该边上的相连。

   论文榜(www.zglwb.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导代理,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


栏目列表
联系方式
推荐内容
 
QQ在线咨询
投稿辅导热线:
189-6119-6312
微信号咨询:
18961196312