APP下载

基于Delaunay三角网的等值线生成

2017-03-16雷欢胡惠菱

科技创新与应用 2017年5期

雷欢 胡惠菱

摘 要:在地质、气象、环境等相关领域,等值线使用广泛。文章基于Delaunay三角网等值线生成算法,在ArcMap中将离散点的文文章件转化成Shapefile点数据文件,使用ArcGIS Engine读取离散点生成三角网,利用等值点的插值、追踪等技术寻找等值点并绘制等值线。

关键词:等值线;Delaunay三角网;GIS

1 概述

近年来,随着计算机技术的快速发展,等值线和等值面的应用广泛,在气象领域,降水等值线可表示某区域的降水情况;测绘领域,等高线可表示区域的地形地貌情况。等值线在国民生产和建设中发挥着越来越重要的作用。

在三维空间,数据采集点在空间上的分布往往呈离散形式。利用有限的离散空间信息尽量恢复地学变量的分布状态,以研究在空间上的变化规律和分布特征,最常用、最普遍的方法就是绘制空间变量的等值线图[1]。

2 设计思路

在ArcMap中将离散点的文文章件转化成Shapefile点数据文件,使用ArcGIS Engine读取离散点,得到离散点的坐标和高程值。对离散点进行插值,生成Delaunay三角网,基于Delaunay三角网使用追踪等技术寻找等值点并绘制等值线。

2.1 Delaunay三角网的构建

Delaunay三角网的经典生成算法有三种:分治算法,逐点插入法,三角形生长法[2]。三种算法各有优劣,分治算法效率高,递归运算较多,占用内存大;逐点插入法容易实现,效率较低;三角形生长法占用内存少,效率较低。文章采用逐点插入法生成Delaunay三角网。

2.2 等值点的计算

三角形三个顶点的值分别为p1,p2,p3,等值线的值为H,三角网生成后,需要在三角网上插补等值点。如果三角形的三个顶点的值p1,p2,p3都不相等,其中有一个顶点的值等于当前等值线的值,例如p1=H,若该三角形还存在另一个等值点,则另一个等值点位于顶点p1所对应的三角形的边上,确定三角形等值点所在的边后,利用线性内插方法就可以求出等值点的坐标,其数学计算公式如图1所示。

2.3 等值线的追踪

基于Delaunay三角网追踪等值线的主要过程包括:线头的寻找、等值点的追踪、寻找结束标志等。线头的寻找主要包括寻找开曲线线头及寻找闭曲线线头。寻找开曲线、闭曲线的线头后,需要找到某等值线的全部等值点,这就是等指点的追踪。线尾的寻找同样包括开曲线和闭曲线线尾的寻找。

3 等值线生成的实现

使用ArcMap通过Add XY Data方法,加载原始离散点文本数据,并保存为Shapefile文件,使用ArcGIS Engine组件式开发,基于上述等值线生成算法,由离散点坐标生成Delaunay三角网,最后确定等值线的值对三角网进行插值计算,找到等值点,将等值点连接起来就可以形成等值线。

3.1 数据预处理

原始离散数据文件中记录了点号,坐标,属性值,即(ID、X、Y、Z)。在ArcMap中通过Add XY Data方法,将离散点文本中的数据在Arcmap中以点的形式显示,将这些点导出为shp格式的文件,完成离散点文文章件转化为shp格式的文件,shp文件属性表中记录着点号,坐标,属性值。将原始离散数据转换成shp格式,便于在Map控件里读取并显示点的信息。

3.2 读取shp文件

在VS环境下,引入MapControl(ArcGIS Engine地图控件),编写代码实现shp文件的读取并显示。

3.3 离散点坐标生成三角网

根据三角网特征,由记录在数组里的坐标X、Y,采用逐点插入法,得到三角网数组Triangle并生成Delaunay三角网。逐点插入法的思想是:根据离散点的信息构建一个三角网之后,逐个插入离散点,根据三角网的性质,调整现有的三角网,直至生成包括所有离散点的三角网。生成三角网结果如图2所示。

根据给定的等间距,读取存储点的数组,求出等值线条数及每条等值线的数值。对每条等值线,在三角网里内插等值点,并追踪绘制出等值线。生成等值线结果如图3所示。

4 结束语

文章基于Delaunay三角网生成等值线算法,设计并用程序實现了由离散点数据生成Delaunay三角网,再利用三角网生成等值线的流程。在ArcMap中将离散点的文文章件转化成Shapefile点数据文件,使用ArcGIS Engine读取离散点生成三角网,利用等值点的插值、追踪等技术寻找等值点并绘制等值线。存在得到的等值线没有进行平滑处理、基于三角网进行等值点内插时,只是在三角网内部插值,没有考虑外插情况等不足,将在后面进一步的完善。

参考文献

[1]姜志伟,王山东,王伶俐,等.基于格网和方向法索引的Delaunay三角网生成算法[J].测绘工程,2014.

[2]迟文学,吴信才,于海洋,等.张力样条函数在雨量等值线光滑中的应用研究[J].水文,2007.