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

合集下载

等值线绘制简易算法

等值线绘制简易算法
p l d PontNp ub i No e i 5 c
实 际 上 等值 线 生 成 只需 两 个 步 骤 : 一 步 寻找 第 等 值点 , 即寻找 属性 值相 同 的点 的坐标 ; 二步 将等 第
{ rtr p ;} g t{ eu nn 5
st{ p . = (p . + n2 X)/ ;n5 Y e n5X n 1X p. 2 p .
Au 2 2 g. 01
等 值 线 绘 制 简 易算 法
王 学 潮
( 廊坊 市生产 力促 进 中心 ,河北 廊坊 0 5 0 ) 6 0 1 摘 要 :本文首先介 绍了等值线的相关知识 ,然后重点 讨论 了一种 不需要 抽象数 学理论 和复杂数 学模 型做支 撑
的等值线追 踪方 法和相关数据存储结构 ,最后简单讨论 了基 于 GD 的等值线平滑技巧 。实践表 明该 算法具有 较 I 高 的运行效 率。
第 2 第 4期 2卷 21 0 2年 8月
北华航天工业学 院学报
J u n lo rh C i a I si t fAe o p c g n e i g o r a f No t h n n t u e o r s a e En i e r t n
Vo . 122 NO. 4

作者简介 :王学潮( 9 7 , , 17 一)男 汉族 , 河北廊 坊大城 县人 , 从事 计算机应用研究 。
21 —
北华航天工业学院学报 n 4. p X,n 4. ; D Y)
第2 2卷
大 ” 边或 A “ 一小 ” 边 上 , 用 插 值 公 式 将 F ) D( 大 ) 使 点 插入 到三 角形 的边上 。

() 3 网格类 ( i)代 表绘 图 区域 网格 化后 的每 Gr : d

等值线图的制作流程(2)

等值线图的制作流程(2)

3374760
404100
3375006
404100
3375006
精选课件
3
处理导出到 txt文档
导出:选择数据复制,粘贴到文本文件 保存为SourceData.txt,如图
精选课件
4
2. 投影变换
准备投影变换参数: 投影前WGS84坐标 获取参考GPS参数设置 地图的投影坐标 请查看地图参数:地图的说明,
投影变换 4
用户投影参数
成都
湖南
精选课件
9
投影变换 5
结果投影参数
成都
湖南
精选课件
10
投影变换 6
设置分隔符
第五步 设置点图元参 数
第四步 设置分隔符 第六步 设置X,Y
精选课件
11
投影变换 7
设置分隔符号
精选课件
12
投影变换 8
设置分隔符号为Tab键,去掉空格选择
精选课件
13
投影变换 9
等值线图的制作流程
精选课件
1
等值线图的制作流程
步骤 1. 属性数据文本文件生成 2. 投影变换生成含坐标和属性的点文件 3. DTM高程提取 4. GRD网格化 5. 等值线图生成 6. 色阶设计 7. 图形裁减
精选课件
2
1. 获得数据 Excel格式
纬度
经度
403916
3374471
404096
18
投影变换 14
保存点文件 查看转换文件
精选课件
19
应用投点文件
加入文件到工程文件 打开底图的工程文件 在左边的工程空白区点右键,再从菜单中选择添
加项目
精选课件
20

等值线算法

等值线算法

等值线算法
等值线算法是一种常用的地图制图方法,它通过将地图上的各个点按照相同的数值进行分类,然后将这些点连接起来,形成一条条等值线,从而展示出地图上的地形、气候、人口等信息。

这种算法在地理信息系统、气象学、地质学等领域都有广泛的应用。

等值线算法的基本原理是将地图上的各个点按照相同的数值进行分类,然后将这些点连接起来,形成一条条等值线。

这些等值线可以表示出地图上的各种信息,比如高度、温度、降雨量等。

等值线的密集程度可以反映出地形的陡峭程度,密集的等值线表示地形陡峭,而稀疏的等值线则表示地形平缓。

等值线算法的应用非常广泛。

在地理信息系统中,等值线可以用来展示地形、水文、土地利用等信息,帮助人们更好地了解地理环境。

在气象学中,等值线可以用来展示气压、温度、降雨量等信息,帮助人们预测天气变化。

在地质学中,等值线可以用来展示地层、矿产等信息,帮助人们寻找矿藏和研究地质构造。

等值线算法的实现需要借助计算机技术。

首先需要将地图上的各个点进行采样,得到它们的数值。

然后将这些数值进行分类,确定等值线的间隔。

接着,根据等值线的间隔,将地图上的各个点连接起来,形成一条条等值线。

最后,将等值线绘制在地图上,就可以展示出地图上的各种信息了。

等值线算法是一种非常实用的地图制图方法,它可以帮助人们更好地了解地理环境、预测天气变化、寻找矿藏等。

随着计算机技术的不断发展,等值线算法的应用范围也会越来越广泛。

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

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

一种快速的等值线生成算法作者:董肇伟卢海达倪广元王剑秦来源:《科技资讯》 2014年第10期董肇伟1 卢海达2 倪广元3 王剑秦1(1.中国农业大学信息与电气工程学院北京 100083;2.长庆油田第二采油厂甘肃庆阳 745100;3.北京中恒永信科技有限公司北京 100083)摘要:本文提出了一种新的等值点位于网格点时,对等值点的调整方法;在分析已有等值线追踪算法的基础上,提出了一种基于TIN网格的快速等值线追踪算法,实验表明该算法具有较高的执行效率。

关键词:等值线等值点 TIN网格中图分类号:TP391.41 文献标识码:A文章编号:1672-3791(2014)04(a)-0033-02等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图件之一,被广泛应用于石油勘探、矿物开采、气象预报等众多领域。

等值线的绘制是指从大量采样数据中提取出具有相同值的点的信息,并生成形态完整、位置精确的等值线的过程,包括等值线网格化、等值线追踪、等值线光滑、等值线填充与标注几个处理步骤[1]。

其中等值线网格化是对网格边进行线性插值,进而求出等值点的过程。

等值线的追踪则是利用等值线网格化产生的等值点数据,将其中相同等值点进行连接的过程。

等值线追踪的传统方法是,在网格单元边上选取一个等值点,寻找邻近的等值点,顺次连接成线,直到等值点回到起始点或位于工区边界,完成单条等值线的追踪,并以此为基础遍历所有的等值点。

在追踪过程中,等值线分为闭合与非闭合两种情形,需要先追踪开曲线,再追踪闭曲线,否则不能确保结果正确。

特定的搜索顺序提高了处理过程的复杂性,增加了网格单元的重复搜索次数,致使效率低下。

针对此类问题,很多学者提出了在不规则三角网(TIN网格)下的改进方法,成建梅[2]等提出为三角形三边分别赋予不同的权值,以方便确定三角形单元内等值点的位置。

但是这只是对局部的改进,未涉及等值线追踪过程的优化。

黄维科[3]等基于三角形单元内等值线段容易确定的事实,提出了使用“焊接法”将相同的等值点连接从而生成整条等值线的方法。

java 生成等值线 datainterval 算法

java 生成等值线 datainterval 算法

java 生成等值线datainterval 算法摘要::1.等值线概念介绍2.Java生成等值线的数据间隔算法原理3.具体实现步骤4.算法优缺点分析5.应用场景及实战案例正文:一、等值线概念介绍等值线(Contour line)是一种地图上的线条,表示地形高度、温度、压力等物理量在不同区域的变化。

在地理信息系统(GIS)和气象学等领域具有广泛应用。

在Java编程语言中,生成等值线图可以帮助分析和展示数据分布规律,提高数据可视化的效果。

二、Java生成等值线的数据间隔算法原理1.数据准备:首先,需要收集一组数值数据,如地形高程、温度等。

这些数据通常存储在Excel、CSV或JSON等文件格式中。

2.数据预处理:对原始数据进行插值、平滑等操作,以提高等值线生成的质量。

插值方法有多种,如线性插值、二次插值、三次插值等。

在Java中,可以使用开源库如GIS有利器如GeoTools、OpenGeoSuite等进行数据处理。

3.确定数据间隔:设置数据间隔(Data Interval)是生成等值线的关键。

数据间隔决定了等值线图的精细程度。

一般情况下,数据间隔越小,等值线图越精细,但计算量也越大。

在Java中,可以通过计算数据范围和目标分辨率来确定数据间隔。

4.生成等值线:根据确定的数据间隔,使用插值算法计算等值线数据。

将计算出的等值线数据存储在文件中,如Shapefile、GeoJSON等。

5.绘制等值线图:使用Java绘图库,如JavaFX、Swift等,将生成的等值线数据可视化。

可以设置地图投影、颜色方案等参数,提高地图的可读性。

三、具体实现步骤1.导入相关库:导入Java GIS开源库,如GeoTools、OpenGeoSuite 等。

2.读取数据:读取原始数据文件,如Excel、CSV等。

3.数据预处理:使用插值算法对数据进行处理。

4.计算数据间隔:根据需求设置数据间隔。

5.生成等值线数据:使用插值算法计算等值线数据。

等值线生成方法发展历程

等值线生成方法发展历程

等值线生成方法发展历程等值线是地理信息系统(GIS)、气象学、地质学等领域中常用的一种图形表达方式,它能够直观地展示出空间数据的分布特征。

随着计算机技术的飞速发展,等值线生成方法也在不断演进。

本文将为您详细介绍等值线生成方法的发展历程。

一、手工绘制阶段在计算机技术尚未普及之前,人们主要依靠手工方法绘制等值线。

这一阶段的主要方法有:1.费马原理法:通过在数据点上画切线,找出曲率半径最小的点,连接相邻的切线交点,从而生成等值线。

2.插值法:在已知数据点之间进行插值,得到未知点的数值,然后根据这些数值绘制等值线。

3.方格网法:将研究区域划分为方格网,计算每个方格内的平均值,然后根据方格网的等值线绘制等值线图。

二、计算机辅助绘制阶段随着计算机技术的发展,人们开始利用计算机辅助绘制等值线。

这一阶段的主要方法有:1.直接法:将离散数据点输入计算机,通过插值方法生成等值线。

2.间接法:首先生成一系列规则网格点,然后在这些点上进行插值,最后生成等值线。

3.等高线追踪法:在已知数据点之间进行等高线追踪,生成等值线。

三、基于网格的等值线生成方法随着GIS技术的普及,基于网格的等值线生成方法逐渐成为主流。

这一阶段的主要方法有:1.网格插值法:对规则网格点进行插值,得到等值线。

2.等值线追踪法:在网格点上直接进行等值线追踪。

3.Marching Squares算法:通过对网格单元的编码,查找等值线经过的网格单元,从而生成等值线。

4.虚拟等值线法:在网格点上进行虚拟等值线追踪,生成等值线。

四、基于不规则三角网的等值线生成方法针对复杂地形,基于不规则三角网的等值线生成方法应运而生。

这一阶段的主要方法有:1.Delaunay三角网:首先生成不规则三角网,然后在三角网上进行等值线追踪。

2.Alpha Shapes算法:通过对三角网进行Alpha剪裁,生成等值线。

3.三角网插值法:在三角网内进行插值,得到等值线。

五、基于图形硬件加速的等值线生成方法近年来,随着图形硬件性能的提升,基于图形硬件加速的等值线生成方法逐渐受到关注。

最近学习mapgis掌握了几种mapgis等值线生成方法

最近学习mapgis掌握了几种mapgis等值线生成方法

最近学习mapgis掌握了几种mapgis等值线生成方法,简述如下:法一:先在excel里面处理数据表头如上图存为csv格式然后改文件后缀名为det(如Ag.det)打开mapgis—空间分析—DTM分析进入DTM编辑文件—打开三角剖分文件(打开Ag.detTin模型—快速生成三角剖分然后Tin模型—追踪剖分等值线在选择界面选择自己需要的选项需要注意的是1、点击注记参数—注记格式里面可以加前缀名(就是等值线标注)频度是加入标注的稀疏程度。

2、分区的时候是数值以前的值,故第一区用白色,最高值要留下。

此方法的缺点是,每次只能处理一个数据,需要多个det文件,且凸包线不能充满整个矩阵。

法二:将excel另存为txt格式(如拉屋化探数据.txt)打开mapgis—实用服务—投影变换进入投影变换投影变换—用户投影变换(打开拉屋化探数据.txt)注意用户起始数据选择按指定分隔符点击设置分割符分隔符选Tab以及空格属性所在名称所在行必须选数据类型需要选数值选双精度,文本用字符串确定后设置点图元参数不需要投影后直接生成数据另存点文件(如拉屋化探数据.wt)然后进入DTM编辑打开拉屋化探数据.wt然后选处理点线—1、高程点/线三角化(或者2、高程点/线栅格化)生成1、det未见或者2、grd文件若是1、则接下来的步骤如法一若为2、接下来的步骤在法散讨论此办法麻烦但附加功能多,编辑方便,但由于破解mapgis关系,偶尔会出问题法三:将excel另存为txt格式(如拉屋化探数据.txt)直接进入DTM编辑选Grd模型—离散数据网格化(打开拉屋化探数据.txt)X、Y、Z值都是可选的,文件换名可以选为自己需要的(如拉屋化探数据.Grd),网格化方法不变,但是点选择进入(经试验距离幂指数选4比较好,其他的不用变)确定后打开三角剖分(拉屋化探数据.Grd)选Grd模型—平面等值线图绘制就可以绘制了分区的时候是数值以前的值,故第一区用白色,最高值要留下。

java 生成等值线 datainterval 算法

java 生成等值线 datainterval 算法

在Java中生成等值线(contouring)通常涉及到数值分析和图形渲染。

`DataInterval`类可能是您用来表示数据区间的类,它通常会包含一些方法来处理和计算数据点之间的差异。

以下是一个简化的例子,展示了如何使用Java来生成等值线:1. **定义数据区间**:首先,您需要定义一个数据区间,这个区间包含了您想要等值化的数据。

```javapublic class DataInterval {private double[] data; // 数据点private int n; // 数据点的数量public DataInterval(double[] data) {this.data = data;this.n = data.length;}// 计算数据区间的均值public double calculateMean() {double sum = 0;for (double d : data) {sum += d;}return sum / n;}// 计算数据区间的标准差public double calculateStandardDeviation() {double mean = calculateMean();double sumSquared = 0;for (double d : data) {sumSquared += Math.pow(d - mean, 2);}return Math.sqrt(sumSquared / n);}// 获取数据点public double[] getData() {return data;}// 设置数据点public void setData(double[] data) {this.data = data;this.n = data.length;}}```2. **等值线算法**:接下来,您需要实现一个算法来生成等值线。

这通常涉及到找到数据点之间的等值点,并连接这些点来形成线。

等值线等值面的生成

等值线等值面的生成

• 如图所示,(x0, y0) 为“-”,(x0, y1) 为“+”,则交点为
xt x0 Ft F00 yt y0 F F ( y1 y0 ) 01 00 y0 ( F01 Ft ) y1 ( Ft F00 ) F01 F00
网格序列法
• 如何从中选择一种正确的连接方式呢?这可从单元内的双线性插 值函数分析入手。由于在单元边上采用了线性插值,由此单元面 上函数值的变化是双线性的,
F ( x , y ) a a x a y a xy 0 1 2 3
• 即等值线在单元内不是直线段而是双曲线。二义性连接可通过求 该双曲线两条渐近线交点处的函数值来判定,这是因为渐近线的 交点总是与其中一对顶点落入同一区域内 ,如渐近线交点为 “+”,则取图5a的连接方式;如为“-”,则取图5b的连接方 式。即在图5a中,表示单元中部为“+”,在图5b中,表示单元 中部为“-”。在实际计算中,为简化计算,往往采用单元对角 线交点代替渐近线交点的计算。
一 Cuberille方法(立方体方法)
网格序列法
• (1) 将网格点分为“IN”和“OUT”两种状态,表示该点在等值线 内,或在等值线外。如果 Fij≤Ft ,则顶点 (xi, yj) 为“ IN” ,记为 “-”;如果Fij﹥Ft,则顶点(xi, yj)为“OUT”,记为“+”。 • (2) 如果单元四个顶点全为“+”,或全为“-”,则网格单元 与值为Ft的等值线无交点,否则 • (3) 对于两个顶点分别为“+”、“-”的单元边,可用线性插 值计算等值线在这条边上的交点。
第 3章
二维标量场等值线的生成
二维标量场可看成是定义于某一个面上的二维标量函 数F=F(x, y),所谓等值线是由所有点(xi, yi)构成,其中F(xi, yi) =Ft(为一给定值),将这些点按一定顺序连接起来就 组成了函数值为Ft的等值线。对于二维标量场,其数据往 往是分布在规则网格点上的,常用的等值线抽取方法有网 格序列法和单元剖分法。

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

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

一种基于TIN的等值线快速生成算法赵景昌;白润才;刘光伟;刘威【摘要】基于TIN生成等值线图是利用有限的离散空间信息恢复地质属性和地学变量空间分布状态的重要手段之一,其时间效率主要取决于起始等值边查找与等值线追踪。

通过构建以TIN三角面片单元为节点的红黑树,将起始等值边查找的时间复杂度由O(M ´ N )提高到O(lb N );基于散列与半边数据结构重建TIN拓扑,根据TIN中“边—面”拓扑关系,在等值点内插计算的同时完成等值线追踪。

实验及应用表明,算法时间效率高,生成的等值线精度可靠,可满足大数据量条件下等值线快速生成的需要,具有广泛的实际应用价值。

%Generating isogram based on TIN is one of the important means to recover the geological properties and vari-ables distribution with the finite discrete spatial information. Its time efficiency mainly depends on the initial edge with isoline point checking and isolines tracking. By building the red-black tree with triangular facets units as TIN node, the time com-plexity of the initial edge ch ecking is improved from O(M ´ N ) to O(lb N );TIN topology is reconstructed based on hash and half-edge data structure. Accordingto“side-face”topology, isolines tracking is synchronously completed with the isoline points interpolation. Experiments and practical application show that the algorithm is stable, the precision of the isolines generation is reliable, and the algorithm can meet the needs to quickly generate isolines with the large amount of data, and has a wide range of practical application value.【期刊名称】《计算机工程与应用》【年(卷),期】2014(000)024【总页数】6页(P10-15)【关键词】不规则三角网(TIN);等值线;红黑树;散列;半边数据结构;拓扑重构【作者】赵景昌;白润才;刘光伟;刘威【作者单位】辽宁工程技术大学矿业学院,辽宁阜新 123000;辽宁工程技术大学矿业学院,辽宁阜新 123000;辽宁工程技术大学矿业学院,辽宁阜新 123000;辽宁工程技术大学理学院,辽宁阜新 123000【正文语种】中文【中图分类】TP391.7在数字矿山建设过程中,应用三维地学模拟(3D Geoscience Modeling,3DGM)技术建立三维矿床地质模型是重要的基础工作之一。

一种堆栈式快速等值线图填充算法

一种堆栈式快速等值线图填充算法

F L ( rt i l t o t c aa t i i, i m to a e e i l e ’t o gc l r a o s b ot g a h scie ’ a d IO f s n a u ) h rce s c t s e d c n h l g t s i s o l ia e t n y sr n l te i l s n i s rt h h p on p o li i l o n
2 1 .6 8 :9 — 9 . 0 0 4 ( )13 1 5
Absr c : I o r ms ma l y n e ai e mp r n oe i h a p i ai n o ce c r s a c ol g oo i x l r t n ecT i t a t s g a p p a s o e r l t i o t t r l n t e p l t f s in e e e r h, i e lg c v a c o e p oa i t .h s o p p r p t fr r n s c a e o d r s a n n lo t m o e e ai g f l g io r ms ma .a i g t e a v n a e o t c S a e u s o wa d o e t k b s d b r e — c n i g ag r h f r g n r t li s g a pT k n h d a tg f s k’ a i n i n a
2 S e y n n t u e o o u e n e h 。。 Y 。 i e e Ac d my 。 ce c s S e y n 1 0 0 Ch n . h n a g I si t f C mp t r a d T c n l g f Ch n s a e t f S in e ・ h n a g 0 4・ i a 1

如何根据离散点自动绘制等值线

如何根据离散点自动绘制等值线

如何根据离散点自动绘制等值线(等高线)之三角形法2001-04-06 16:35 6683人阅读评论(1) 收藏举报算法网格图形c自动绘制等值线的方法从技术方向上看可以分为两大类,插值和曲线拟合.其中曲线拟合总的来说效果不如插值算法经典和应用广泛,效果也较逊色.这里着重介绍插值算法.其中插值算法中,按照方式不同分为离散点客观化和三角网方式.两者区别在于三角网计算主要在生成三角网过程,省去了插值到格点的过程.而客观分析过程则是将离散点分析到格点后再内插到细网格,然后大多利用追踪法生成等值线,也有在这里再使用曲线拟合.1、三角形算法a、首先生成delaunay三角形,这一点在我的帖子"delaunay triangulation之丰衣足食“内有源程序,大家可以参考。

b、随后需要在三角形的边上插补等值点。

要确定某个三角形的边上是否有等值点,需要进行判断和处理。

注意:如果某原始数据点和等值线值相同,将该点改变一个微量。

如果一个三角形三顶点的值相同则各边无等值点。

如果一个三角形的任意边两端点(A、B〕的Z值(Za、Zb)满足满足(Zd-Za)*(Zd-Zb)<0,其中Zd代表等值线的值,则该边必有等值点,其平面位置是Xd=Xa+(Xb-Xa)*(Zd-Za)/(Zd-Za) , Yd=Ya+(Yb-Ya)*(Zd-Za)/(Zb-Za)。

每个三角形上不可能三边都有同值的等值点,另一边上必定有同值的等值点。

c、等值点的追踪。

为了能将内插的等值点顺序追踪排列,绘出等值线,还必须找出相互重叠的环形网内所计算的等值点间的平面位置关系。

因每个环形网都是由多个三角形组成的,我们先简单分析一下单个三角形中存在等值点的情况。

由于不必考虑等值线穿过端点,如果一个三角形的边上存在等值点的话,只可能在某两条边上存在等值点,而不可能三条边上同时都有。

也就是说,只要三角形一边上存在等值点,则其余的两条边中必有一边存在等值点。

多种软件联合实现等值线快速绘制的制图模式

多种软件联合实现等值线快速绘制的制图模式
赵豫, 张慧利, 武秀江
( 河南省地球物理工程勘察院, 河南 郑州 4 5 0 0 5 3 )
摘 要:针对地震解释成图的特点, 提出了一种多种软件联合绘制等值线的制图模式, 它包括用 E x c e l 取数据、 用 S u r f e r 网格化模型自动绘制等值线、 用A u t o C A D修改等值线和用 M a p G I S 处理成图 4个步骤。应用该制图模式减少 计算工作量, 避免人为误差, 实现了高精度高效率地勾绘有构造的等值线。通过实例对比线性内插的三角网法、 距 离倒数乘方法、 最小曲率法、 径向基本函数法和克立金法这 5种网格化法的特点, 说明克里金网格化模型绘制等值 线的效果最佳, 以及 A u t o C A D比 M a p G I S 在编辑修改等值线图形时的优异之处。 关键词: E x c e l ; S u r f e r ; 网格化模型; A u t o C A D ; M a p G I S ; 等值线; 制图模式 中图分类号:P 6 3 1 ; T P 3 1 文献标识码:A 文章编号: 1 0 0 0- 8 9 1 8 ( 2 0 0 9 ) 0 4- 0 4 7 2- 0 5
1 绘制等值线的制图模式
煤田地震勘探的成果图件有各地层的等 t 0时 间图和等深度构造图等, 其中煤层底板等值线图是 最重要的成果图件, 现在以制作煤层底板等值线图 为例将这个制图模式详细说明如下。 1 . 1 用 E x c e l 获取三维数据 E x c e l 具有强大的公式计算功能和 V B A编程功 能, 内置了丰富的函数, 如数学与三角函数、 统计函 数、 逻辑函数等, 可以进行各种数据计算和统计。针 对地震解释的数据计算创建一些含有公式的表格来 获取数据, 例如时—深转换表格、 地层倾角计算表、 空间校正表、 速度计算表格等, 在这些表格中桩号、 时间、 速度、 深度和坐标等各自有固定的列和相应的 公式。随着地震、 地质、 钻孔等资料掌握的丰富全 面, 需要增加或调整数据时, 只需对个别数据作修改 即可得到结果, 不需重复输入公式, 非常灵活实用。 实际工作中有些计算比较复杂或专业, 用E x c e l

一种基于格网法快速生成等值线的算法

一种基于格网法快速生成等值线的算法

的 海量 性 , 以提 高效 率为 目的 , 出了一种 新 的等 高 线 追踪 算 法 。 算 法将 等 高线 追踪 算法 分 为逐 个格 网 内 内插 等 高点 和 提 该
等 高线提 取 两个 阶 段 , 一 个阶 段 的 处理 明 显 减 少 了插 值 过 程 中格 网 边上 等 值 点 的 比较 次 数 , 第 改善 了算 法 的效 率 , 并通 过 试 验 生 成等 高线 证 明这 种 算 法具 有 可操 作 性 和 实用性 。
t tpr v s ቤተ መጻሕፍቲ ባይዱ sag it sfai l d prcia. s e o e ti or hm i esbe a a tc l n 1
Ke r s Co t u ; a k n ; y wo d : n o r Tr c i g DEM ; i Gr d
0 引言
C H EN u —g n LI Ka—m i X e o g, U i n ( lg fIfr t n Sinea dTeh oo yCe tlS uh Unv rt, hn  ̄aHu a 4 0 8 Chn ) Col eo omao c c n c n lg , nr o t iesy C agh , nn 10 3, ia e n i e a i
关 键 词 : 高线 ; 踪 ; 字 高程 ; 网模 型 等 追 数 格 中 图分 类 号 : 2 1T 3 1 1 0 4 ;P 9 . 4 文 献 标识 码 : A
An Al o ihm f Dr wi Co t ur f o i d DEM g rt o a ng n o r m Gr
的形状 ,而且 还 能较 精确 地 求 出图上 任 意点 的高 程 。 对 同一 地 区 不 同 的信 息 资料 或 经 过 各种 处 理 后 的结 果 , 高度 、 度 、 度 和应力 等 的分 布情 况 以及 其 相 如 强 温 关性 和 变化 的趋 势 , 可通 过绘 制相 应 的等 值 线 图简 单 而直观 地进 行综 合分 析 。因此 , 地形模 拟 、 文模 型 在 水 建 立 、 路铁 路 勘 测 规 划 、 公 自然 资源 管 理 等 地 学 领 域 都 得到 了广 泛的 应用 , 并显 示 出了许多优 越性 。

绘制等值线(等高线)方法

绘制等值线(等高线)方法

如何根据离散点自动绘制等值线(等高线)之三角形法自动绘制等值线的方法从技术方向上看可以分为两大类,插值和曲线拟合.其中曲线拟合总的来说效果不如插值算法经典和应用广泛,效果也较逊色.这里着重介绍插值算法.其中插值算法中,按照方式不同分为离散点客观化和三角网方式.两者区别在于三角网计算主要在生成三角网过程,省去了插值到格点的过程.而客观分析过程则是将离散点分析到格点后再内插到细网格,然后大多利用追踪法生成等值线,也有在这里再使用曲线拟合.1、三角形算法a、首先生成delaunay三角形,这一点在我的帖子"delaunay triangulation之丰衣足食“内有源程序,大家可以参考。

b、随后需要在三角形的边上插补等值点。

要确定某个三角形的边上是否有等值点,需要进行判断和处理。

注意:如果某原始数据点和等值线值相同,将该点改变一个微量。

如果一个三角形三顶点的值相同则各边无等值点。

如果一个三角形的任意边两端点(A、B〕的Z值(Za、Zb)满足满足(Zd-Za)*(Zd-Zb)<0,其中Zd代表等值线的值,则该边必有等值点,其平面位置是Xd=Xa+(Xb-Xa)*(Zd-Za)/(Zd-Za) , Yd=Ya+(Yb-Ya)*(Zd-Za)/(Zb-Za)。

每个三角形上不可能三边都有同值的等值点,另一边上必定有同值的等值点。

c、等值点的追踪。

为了能将内插的等值点顺序追踪排列,绘出等值线,还必须找出相互重叠的环形网内所计算的等值点间的平面位置关系。

因每个环形网都是由多个三角形组成的,我们先简单分析一下单个三角形中存在等值点的情况。

由于不必考虑等值线穿过端点,如果一个三角形的边上存在等值点的话,只可能在某两条边上存在等值点,而不可能三条边上同时都有。

也就是说,只要三角形一边上存在等值点,则其余的两条边中必有一边存在等值点。

根据上面的约定,我们再研究等值线穿过任一环形网中两条及两条以上相邻的径边时,可能出现的几种情形:① 等值线不通过环形网的界边。

等值线算法

等值线算法

等值线算法:1.根据给定点生成三角形网格(具体见三角形网格生成算法),假设标量场在三角形的内部及边上满足线性分布关系。

2.根据标量场的最大值和最小值以及等值线的条数(可以设置一个缺省值比如30,用户可以改变该值),均匀划分出一系列的等值线的给定值。

3.对每一个给定值,对所有三角形单元搜索一遍。

如果这个给定值位于某三角形单元的三个顶点处的标量值的最大值和最小值之间,则必定在三角形的边上存在着两个点,这两个点的标量值等于给定值。

把这两个点连接起来就得到等值线的一部分(参见图1)。

将所有三角形单元按上述方法搜索一遍,就画出了等值线。

4.上述算法画出的等值线不够光滑,采用适当的光滑算法比如样条插值就得到光滑的等值线。

流线图算法:1.根据给定点生成三角形网格,假设矢量场在三角形的内部及边上满足线性分布关系。

2.用户可选择流线的起始点(seed)。

可以逐点选择,也可以选择一条线段,再对线段等分得到起始点。

3.起始点可能不在给定点中,这时要搜索起始点位于哪个单元(具体见搜索算法)。

通过插值可得到起始点处的矢量。

选择合适的时间步长,具体数值可以使得在该时间步长内沿矢量场方向走过的距离约等于当地网格的尺寸。

运动到下一位置后,再搜索该点位于哪个单元,插值可得到该点处的矢量,如此循环,直到点运动到边界以外或达到最大的步数(可以设成一个较大的数值如1000)。

三角形网格生成算法(Delaunay方法):参见所附论文。

搜索算法: 搜索某个点位于哪个单元将区域分为若干子矩形区域(比如50×50),先扫描所有单元,将单元按区域归类。

对于给定点,先根据区域的坐标范围判断该点位于哪个区域。

然后扫描该区域所有单元,判断该点位于哪个单元。

判断一个点是否在一个三角形内部的方法(参见图2):将该点与三角形的每条边分别相连,得到三个三角形,计算这三个三角形的面积,如果面积之和等于原三角形的面积,则该点在三角形内。

这三个三角形的面积和原三角形之比,就是该点的插值函数。

等值线绘制算法

等值线绘制算法

1.等值线绘制的过程分为三个步骤,离散数据网格化、等值线生成
以及等值线图的填充。

项目中的数学模型将离散数据进行了网格化,本模块需要提供等值线的生成和等值线几何体的绘制。

2.等值线的生成方法。

规则化的网格数据提供了每一个网格点上的
坐标和浓度值,基本思路是从区域边界开始,利用线性插值逐网格跟踪等值线得到等值线在其所穿过的网格边上等值点的坐标,保存这些坐标并根据一定的方位判别法对这些等值点进行排序,为下一步绘制几何体做准备。

3.等值线几何体的绘制。

一个网格内的等值线确定为直线,不需要
进行平滑处理。

首先对上一步骤中得到的各条等值线按照其起点的位置进行排序,排序的顺序与等值线追踪的顺序一致,即区域左、上、右、下、内部等值线,内部等值线按照横坐标递增排序,这样排好序的等值线按照起点坐标左、上、右、下、内部的顺序保存起来。

整个算法的基本描述如下:
1) 按起点纵坐标从下至上的顺序对起点在左边界上的等值线排序;
2) 按起点横坐标从左至右的顺序对起点在上边界上的等值线排序;
3) 按起点纵坐标从上至下的顺序对起点在右边界上的等值线排序;
4) 按起点横坐标从右至左的顺序对起点在下边界上的等值线排序;
5) 按起点横坐标从左至右的顺序对内部封闭的等值线排序;
6) 填充第三种等值线与网格下边界或左边界以及起点和终点所在的边界所围的区域。

对最后一条等值线, 则还需填充与网格上边界或右边界所围的区域;
7) 填充第二种等值线与起点和终点所在的边界以及这二边界相交的顶点所围的区域;
8) 填充第一种等值线与起点和终点所在的边界的顶点所围的区域;
9) 填充内部封闭等值线所围的区域.。

[新版]等值线算法

[新版]等值线算法

等值线算法:1.根据给定点生成三角形网格(具体见三角形网格生成算法),假设标量场在三角形的内部及边上满足线性分布关系。

2.根据标量场的最大值和最小值以及等值线的条数(可以设置一个缺省值比如30,用户可以改变该值),均匀划分出一系列的等值线的给定值。

3.对每一个给定值,对所有三角形单元搜索一遍。

如果这个给定值位于某三角形单元的三个顶点处的标量值的最大值和最小值之间,则必定在三角形的边上存在着两个点,这两个点的标量值等于给定值。

把这两个点连接起来就得到等值线的一部分(参见图1)。

将所有三角形单元按上述方法搜索一遍,就画出了等值线。

4.上述算法画出的等值线不够光滑,采用适当的光滑算法比如样条插值就得到光滑的等值线。

流线图算法:1.根据给定点生成三角形网格,假设矢量场在三角形的内部及边上满足线性分布关系。

2.用户可选择流线的起始点(seed)。

可以逐点选择,也可以选择一条线段,再对线段等分得到起始点。

3.起始点可能不在给定点中,这时要搜索起始点位于哪个单元(具体见搜索算法)。

通过插值可得到起始点处的矢量。

选择合适的时间步长,具体数值可以使得在该时间步长内沿矢量场方向走过的距离约等于当地网格的尺寸。

运动到下一位置后,再搜索该点位于哪个单元,插值可得到该点处的矢量,如此循环,直到点运动到边界以外或达到最大的步数(可以设成一个较大的数值如1000)。

三角形网格生成算法(Delaunay方法):参见所附论文。

搜索算法: 搜索某个点位于哪个单元将区域分为若干子矩形区域(比如50×50),先扫描所有单元,将单元按区域归类。

对于给定点,先根据区域的坐标范围判断该点位于哪个区域。

然后扫描该区域所有单元,判断该点位于哪个单元。

判断一个点是否在一个三角形内部的方法(参见图2):将该点与三角形的每条边分别相连,得到三个三角形,计算这三个三角形的面积,如果面积之和等于原三角形的面积,则该点在三角形内。

这三个三角形的面积和原三角形之比,就是该点的插值函数。

基于ArcGISServer的等值线快速生成方法

基于ArcGISServer的等值线快速生成方法

基于ArcGIS Server的等值线快速生成方法Research and Application of WebGIS based on fast isoline generating method of ArcGIS Server Abstract: In recent years, with the development of GIS , powerful technical supports and tools supports are provided for geographical spatial analysis and display. Considering the complexity of the existing isoline generating method,a new kind of fast isoline generating method based on ArcGIS Server is proposed to meet the needs of WebGIS . The method mainly relies on the modelbuilder to avoid complicated algorithm programming, generates isoline through Server resources and renders in the client, which makes an improvement in the efficiency and visual beauty aspect .The availability and feasibility of this method was tested in the application of the subsystem regarding the decision making and supporting of the "three prevention" program in Dongguan city, which offered a new idea and option for the development and application of isoline in WebGIS in the future.Key words: ArcGIS Server; Isoline; WebGIS; ModelBuilder摘要: GIS技术的发展为地理对象的空间显示和分析提供了强有力的技术和工具支持.针对现有等值线生成方法较为复杂的问题,提出了一种新的基于ArcGIS Server的等值线快速生成方法,来满足WebGIS的需求.该方法主要依赖于modelbuilder来脱离繁杂算法的编写,调用服务器资源生成等值线,在客户端加以渲染,在效率和美观等方面有所改进.通过在东莞市三防决策支持子系统中的实际应用,验证了方法的可行性,为以后等值线在WebGIS中的研究和应用提出了一种新的思路和选择.关键词:ArcGIS Server;等值线;WebGIS;ModelBuilder1引言等值线是一种形和数的统一,在气象、地质测绘等领域有广泛的应用.利用等值线可以有效地表示各种场的分布,它是成果整理中的一种基本方法.但是生成等值线的算法较为复杂, 现有的等值线生成方法往往不符合具体应用的要求,尤其在WebGIS方面更是如此.本文基于ArcGIS Server提出了一种新的等值线快速生成方法,能够将等值线更加方便快捷美观的展示给用户,更加突出WebGIS的优势.2相关技术分析2.1等值线生成等值线(等雨量线)的生成主要包括以下几个步骤:①数据预处理②等值点的确定③生成等值线.2.1.1数据预处理对未得到采样数据的雨量站点,可根据周围站点雨量值,用反距离加权插值法估算出该点的雨量值.反距离加权(IDW)插值法是最常用的空间内插方法之一.它以距离倒数次方为权值进行插值,因此,估计点的值常用若干临近点的线性加权来拟合[1],见公式(1)所示.在IDW加权法中各观察点影响权重值由公式(2)所示.其中:为影响半径内观察点的数量;为观察点的值;为权函数;是指第i个观察点与估计点的距离.较近的点分配较高的权重,距离远的观测值权重值则下降,输出图像的细节越明显,同时也不平滑.计算时将所有权重的总和等于1.0.2.1.2 等值点的确定等值点的确定往往采用一种基于正交网格单元的等值线算法[2],它通过搜索每个网格、每个棱边来确定等值点.等值点在网格中可能存在的情况如图1所示.对于网格来说,在确定等值点时,始终遵循等值线和各棱边的交点或是4个,或是2个,或者没有.在判断出所有等值点后,就可以确定等值点的坐标.图1 等值点在栅格单元中的分布情况图2 等值线分支2.1.3生成等值线我们要将无序的等值点按照一定的顺序连成线.相同值的等值线可能的若干条分支如图2所示.一种是闭合的(如编号1),所有点位于区域上;一种是开敞的(如编号2),其端点必然落在区域的边界上.算法扫描整个区域,遇到等值点,记录下网格号及所在棱边号,然后继续寻找下一个等值点.当遇到起始点时或者到达区域边界时停止寻找,前者表明等值线是闭合的,后者表示等值线在此方向上的搜索结束,从起始点沿反方向继续寻找,直至到达边界,然后可以将这些点按顺序连接,得到一条等值线[3].2.2 ArcGIS ServerArcGIS Server 是功能强大的基于Web服务器的企业级GIS解决方案.为创建和管理基于服务器的GIS应用提供了一个高效的平台,用于构建集中管理的,支持多用户的,具备高级GIS 功能的企业级应用与服务.在WebGIS地图应用中,ArcGIS Server是通过其提供的地理处理服务来提供GIS特定功能.而地理处理发布,就是通过ModelBuilder来实现的.ModelBuilder 是为建立地理处理流程和脚本提供的可视化的建模方式,为设计和实现地理处理模型提供了一个图形化的建模框架[4].3等值线实现方式传统的意义上的等值线基本是在客户端直接生成等值线展示,而我们要将等值线成功应用到WebGIS中,我们就必须从根本上解决等值线生成的效率美观等问题.3.1传统的等值线实现方式传统的等值线实现方式从某种意义上讲比较繁杂.针对WebGIS的应用一般分为两种:第一种是客户端生成法,主要是客户端获取服务器端GIS地图服务,向服务器端发出请求,在服务器端通过已经编写的复杂的等值线生成算法调用com对象等生成并渲染等值线或者通过调用已存在的控件远程生成等值线,最终都是以地图服务的形式反馈给用户[5~7];第二种是服务端循环法,主要是通过在服务器端直接编写繁杂的等值线生成算法或者调用已存在的控件,定时不断的重复调用算法绘制等值线,当客户端访问服务器端时,直接调用已经生成的等值线展示给用户[8~9].3.2 新的等值线实现方式针对传统实现方式的不足之处,我们提出了一种新的基于ArcGIS Server的等值线快速生成方法,能够满足WebGIS快速美观的需求.我们可以直接在ArcGIS Server基础上,通过其在原有桌面端创建的空间分析的模型,即ModelBuilder创建的,或是通过对话框模式,脚本模式创建的空间分析的模型,犹如发布一个MXD地图文档一样,直接发布为一个地理处理服务,供客户端直接调用.用户在绑定要使用的GIS服务之后,根据SOAP协议来发送请求.如取得地图的请求,服务器在收到该请求后,解析这个请求,执行相应的操作,然后将数据用SOAP协议发回[10].一般对于客户端如果某些数据需要用户为最终的GIS功能,而不是数据本身的时候,就可以使用这种方式来完成.通过新的等值线生成方法,我们摆脱繁杂算法代码的重复编写,不再需要传统的那种不停的消耗服务器资源去生成等值线图层,直接的将需求发送到服务器,由服务器搜集数据,计算生成等值线,并将结果返回客户端,极大的提高了开发应用的效率,同时减少很多网络传输量,有利于提高GIS分析性能的提高.在客户端加以渲染,即可得到更加出众的展示效果.比较上文中提到的几种等值线在WebGIS应用中的实现方式,如表1所示表1 等值线生成方式优缺点比较实现方式优点缺点客户端生成法能够根据客户需求数据绘制编写代码过程复杂,实现速度比较慢,服务器端循环法能够快速展现不能够根据需求绘制,编写代码过程复杂,需要不断地调用服务器资源,加大了服务器的运行负荷,降低了系统的整体性能.新的生成方法脱离繁杂的算法编写过程,根据客户需求数据绘制并快速展现,后期方便渲染需要在服务端创建等值线model,生成算法有待进一步的优化4实现思路东莞市决策支持子系统是东莞市三防决策支持系统的重点构架之一,是一个基于ArcGIS Server的WebGIS系统.在决策支持子系统的雨情专题里,用本文的等值线快速生成方法绘制等值线,步骤如下:通过ArcCatalog将地图.shp文件导入数据库,并增加一个记录某时段测站对应的雨量值的属性字段,再以.mxd的形式在Arcgis Server Manager上进行发布.基于对算法的理解和研究,用Model Builder建立Contour Model,如图3所示.然后将Contour Model模型Arcgis Server Manager上进行发布.图3 Model Builder建立的Contour Model算法设计以下算法用于远程访问调用刚才发布的Contour Model.算法开始获取用户查询时间段;得到各个测站累计降雨量大小;If(降雨量最大值为0或者降雨量不符合生成等值线的基本条件)返回"等值线生成缺少数据"; 根据降雨量大小,计算间隔值;初始化参数数组.初始化第一个参数,将降雨量的属性列名赋给这个参数;初始化第二个参数,将前面生成的间隔值赋给这个参数;初始化第三个参数,用soap的方式获取ArcGIS Server发布地图服务,查询目标区域对应图层的范围要复制给这个参数.初始化第四个参数,将sde目标图层连接路径赋值给这个参数.提交参数;生成并获取结果,转换成要素数组集;return要素数组集;算法结束后期处理服务器对客户端的请求处理后,将结果集发到客户端.这里的结果一般不是客户端直接要求展示的.我们再对获得的数据进行处理,根据客户的需求进行分级渲染,并将分级的数值标示在对应的等值线上,给出图例,最终实现等值线的快速生成.5实验结果输入时间段来选择需要生成等值线的降雨量,点击等值线,即可短时间内生成所需的等值线,并附带图例,如下图4所示.图4 等值线展示经过相同测试平台的试验比较,在WebGIS的系统应用中,客户端生成法绘制出等值线时间在120秒左右(使用控件可以稍微提升效率),服务器端循环法绘制出等值线的时间在6秒左右(不计算其服务器端生成时间),新的生成方法绘制出等值线时间在12秒左右.客户端生成法的效率明显太低,而服务器端循环法虽然时间稍短,但占用服务器资源太大,产生大量冗余,而且不容易渲染,不能根据用户需求绘制.新的生成方法无论在效率上还是美观上都比较符合用户的需求.6结束语通过东莞市决策支持子系统中等值线生成展示的应用,我们可以明显看到快速生成方法可以快速美观的生成等值线,并为WebGIS中进行地理数据高级空间分析提供了更加可行的方法.这将会在服务器端的开发上得到极为广泛的推广,并得到开发者的青睐.但是,我们也应该清楚地认识到,算法的熟悉和研究是必不可少的,关于算法的优化以及各种参数的设置等还有待于我们更进一步的研究.参考文献[1]靳国栋,刘衍聪.距离加权反比插值法和克里金插值法的比较[J]长春工业大学学报,2003年第3期[2]陈和群,彭宣茂.有限元法微机程序与图形处理[M].南京:河海大学出版社,1992 [3] 刘金涛,赵永俊,张柯.基于K-LM控件绘制水文数据等值线[J]水利水电科技进展2006年2月第1期[4]蒋波涛.ArcGIS9.2的地理处理(Geoprocessing)框架介绍.[R]北京:ESRl中国(北京)有限公司,2006年12月[5]兰小机,王剑基于ArcGIS Server 9.2的Tasks研究与应用[J]测绘科学2008年11月第6期[6]霍其润. 基于B/S模式的雨量等值线算法的研究与实现[D] 河海大学2003年[7]刘俊, 李顺新, 陈建勋.基于MapX组件的等雨量线生成算法的研究[J]地理空间信息.2005年10月第5期[8] 傅希德,唐俊,张晓盼,袁晓辉.基于Surfer和ArcGIS Engine的雨量等值线自动生成法[J] 水电能源科学2008年6期[9] 吴坤等.基于VB和Surfer的等值线图批处理可视化[J] 水力发电学报2008年10月第5期[10]许春杰,邹乐君,沈晓华.基于Web Service的WebGIS[J].测绘通报2003年1期[11] 管倩倩, 王飞, 陈丽娜. 利用散乱采样点绘制光滑等值线的误差分析[J].微计算机信息,2006第33期.239-340[12]王旭刚,昂海松.计算机辅助导弹外形设计与三维可视化方法研究[J].微计算机信息,2005,9—3:145—146[13]郭婧,张立朝,王科伟.基于ArcGIS Server构建地理信息服务[J].测绘科学,2007年3期.[14]JEREMY.Publishing and using a geoprocessing model within a map document[EB/OL]./Dev/blogs/arcgisserver/archive/tags/GP/default.aspx 2006 (2006-12-8).[15]Lutz,M.Ontology-based descriptions for semantic discovery and composition of geoprocessing services [J].Geoinformatica,2007,11(1):1-36.。

一种基于格网法快速生成等值线的算法

一种基于格网法快速生成等值线的算法

一种基于格网法快速生成等值线的算法
陈学工;刘凯敏
【期刊名称】《电脑与信息技术》
【年(卷),期】2007(015)003
【摘要】从规则高程格网中提取等高线的算法是机助制图和GIS中非常重要的组成部分.文章针对当前高程格网数据的海量性,以提高效率为目的,提出了一种新的等高线追踪算法.该算法将等高线追踪算法分为逐个格网内内插等高点和等高线提取两个阶段,第一个阶段的处理明显减少了插值过程中格网边上等值点的比较次数,改善了算法的效率,并通过试验生成等高线证明这种算法具有可操作性和实用性.【总页数】4页(P4-6,47)
【作者】陈学工;刘凯敏
【作者单位】中南大学信息科学与工程学院,湖南,长沙,410083;中南大学信息科学与工程学院,湖南,长沙,410083
【正文语种】中文
【中图分类】O241;TP391.41
【相关文献】
1.一种基于格网的快速等值线充填算法 [J], 吴自银;高金耀
2.一种基于等值线法的NURBS曲面与平面的求交算法 [J], 宋宏勋;韩毅;吴初娜
3.一种基于TIN的等值线快速生成算法 [J], 赵景昌;白润才;刘光伟;刘威
4.一种基于网格延展法的等值线生成算法 [J], 陈胜; 黄诗峰; 臧文斌
5.一种基于网格延展法的等值线生成算法 [J], 陈胜; 黄诗峰; 臧文斌
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种快速的等值线生成算法
摘要:本文提出了一种新的等值点位于网格点时,对等值点的调整方法;在分析已有等值线追踪算法的基础上,提出了一种基于TIN 网格的快速等值线追踪算法,实验表明该算法具有较高的执行效率。

关键词:等值线等值点TIN网格
等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图件之一,被广泛应用于石油勘探、矿物开采、气象预报等众多领域。

等值线的绘制是指从大量采样数据中提取出具有相同值的点的信息,并生成形态完整、位置精确的等值线的过程,包括等值线网格化、等值线追踪、等值线光滑、等值线填充与标注几个处理步骤[1]。

其中等值线网格化是对网格边进行线性插值,进而求出等值点的过程。

等值线的追踪则是利用等值线网格化产生的等值点数据,将其中相同等值点进行连接的过程。

等值线追踪的传统方法是,在网格单元边上选取一个等值点,寻找邻近的等值点,顺次连接成线,直到等值点回到起始点或位于工区边界,完成单条等值线的追踪,并以此为基础遍历所有的等值点。

在追踪过程中,等值线分为闭合与非闭合两种情形,需要先追踪开曲线,再追踪闭曲线,否则不能确保结果正确。

特定的搜索顺序提高了处理过程的复杂性,增加了网格单元的重复搜索次数,致使效率低下。

针对此类问题,很多学者提出了在不规则三角网(TIN网格)下的
改进方法,成建梅[2]等提出为三角形三边分别赋予不同的权值,以方便确定三角形单元内等值点的位置。

但是这只是对局部的改进,未涉及等值线追踪过程的优化。

黄维科[3]等基于三角形单元内等值线段容易确定的事实,提出了使用“焊接法”将相同的等值点连接从而生成整条等值线的方法。

但是在搜索等值线段间的共同等值点时,需要对已确定的等值线段进行遍历,执行效率提高幅度有限;并且使用的是简单的坐标值判别法,容易因机器误差引起错误结果。

1 改进的等值线生成算法
现在常用的用于生成等值线的网格有矩形网格、TIN网格等。

综合考虑,本文选用TIN网格。

生成等值线的主要步骤中,等值线的网格化处理与等值线的追踪是基础与关键,直接影响等值线的准确度和生成速度。

接下来将针对TIN网格,介绍对这两个过程的改进。

1.1 等值线网格化处理方法
在TIN网格中,等值线网格化处理的作用就是在网格边上计算出各等值点,为之后的等值线追踪提供基础数据。

以三角形单元为单位,遍历整个TIN网格,判断三角形棱边上有无等值点[4],使用公式:
1.2 等值线追踪算法
本文采用的追踪思想即是:从一个等值点出发,沿任意方向搜索等值点,直到回到起点或者到达边界;再从起点开始沿反向搜索未经过的点。

最终生成一条等值线。

为了提高搜索效率,注意到在经过网格化处理后,可以保证每条三角形棱边至多有一个等值点,而与该等值点相连的等值点至多有两个。

所以在以三角形单元为单位遍历TIN网格时,给每一棱边指定唯一的序号,若找出等值点,则记录与之相连的等值点所处的棱边。

接下来以棱边为基本单元追踪等值线,这样的好处是便于构造顺序存储结构,进而使用随机存取机制,加快追踪速度。

序号的引入将问题转化为简单的数值匹配,避免了常规算法中使用的方位信息。

同时可以忽略常规等值线追踪算法中的特定追踪顺序,对于拓扑复杂TIN网格,不考虑三角形棱边是否位于边界上可以大大简化处理的复杂度。

如图3演示了该算法的一般流程,图中矩形代表的是三角单元棱边,圆角矩形代表的是等值点。

其中图3(a)、(b)分别代表了非闭合和闭合两种形式的等值线,图3(c)~(f)展示了对于非闭合等值线的追踪过程:图3(c)表示从序号为1的网格边找起,沿任意方向寻找下一个等值点,并将新找到的等值点加入自己队尾(图3(d))。

图3(e)(f)表示
该方向追踪完成后,回到搜索起点,沿另一方向寻找,并将该等值线链表加入新找到的等值点后面。

图3(g)~(i)则展示了对于闭合等值线的追踪过程:选定任意等值点,沿任意方向寻找,直到回到搜索起点,结束搜索过程。

2 算法实现
2.1 数据结构
程序要兼顾按索引查找时的快捷和等值点插入的便利,故选择混合存储结构。

具体实现如下。

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

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

其中访问标记指示是否追踪过该边,初始时置为False。

等值点1是位于该边上的等值点。

等值点2指针指向当前等值线上的另一个端点(队尾)。

邻接边1,2上的等值点与该边上的相连。

当完成等值线网格化处理后,所有等值点被计算出,三角网格边中的棱边序号、等值点1指针、邻接棱边1与邻接棱边2的序号均被确定。

特别的,当棱边上的等值点为一条非闭合等值线的端点时,它
只有一个有效的邻接棱边。

2.2 算法流程
(1)从TIN网格中顺次读取一个棱边E1。

如果E1上不存在等值点,或访问标记为TRUE,重复步骤(1)。

否则,置访问标记为True,根据邻接边1序号读取棱边Ei,转到步骤(2)。

(2)置Ei的访问标记为True,并将它的等值点移动到前一个等值点的末尾。

若Ei即是E1,完成单条等值线的搜索,转到步骤(1)。

否则,读取Ei上不同于前一棱边的邻接边序号。

若存在,则在读取新的棱边Ei,重复步骤(2)。

若不存在,根据E1的邻接边2序号取出棱边Ej,转到步骤(3)。

(3)置Ej的访问标记为True,将等值线头结点移动到Ej上等值点的末尾。

读取Ej上不同于后一个点所在边的邻接边序号。

若存在,则取出新的棱边Ej,重复步骤(3)。

若不存在,完成单条等值线的搜索,转到步骤(1)。

当所有棱边都在步骤(1)中被读取过后,算法完成。

3 实验结果与分析
笔者将本文提出的改进算法运用到“裂缝性储层精细描述软件”
当中,利用该算法获得层面模型的等值线,并经过平滑、着色处理后,得到如图4所示的效果图。

为进一步测试算法效率,利用图4中的层面,计算传统追踪算法和改进算法的运行时间。

层面模型包含22827个坐标点,出于确保结果有效性的考虑,指定等值线高程值的个数分别为5,10,15,…,60,从而获得12组测试数据。

随着高程值个数的增加,程序会多次调用追踪算法,相当于增多了模型坐标点与等值点的个数。

表3显示了12组实验的结果。

改进算法的时间效率明显有于传统算法。

进一步的,本文对每组测试中改进算法的速度提升率进行统计,采用的公式为:
计算得出的结果如图5所示。

采用改进算法追踪等值线,速度平均提升30%以上。

这是因为由于TIN网格拓扑复杂,追踪等值线时大量时间消耗在对网格的遍历上。

传统算法在计算等值点时需要遍历一遍网格,在进行等值线追踪时,又要遍历两遍:第一遍以位于网格边界的等值点为起点,查找非闭合等值线;第二遍再查找闭合等值线。

而本文提出的改进算法只需要在计算等值点时遍历一遍网格,由于遍历时为三角形单元的棱边设置索引,在追踪等值线时,直接按索引遍历从而避开了TIN网格的复杂性对程序的不良影响。

并且,改进算法中不区分等值线的开闭性,
可以用统一的过程追踪,又减少一次对棱边的遍历。

故改进算法的时间性能大幅优于传统算法。

4 结论
本文基于TIN网格,提出了一种快速的等值线生成算法,该算法改进了等值点位于网格顶点时,对其进行偏移的方法,尽最大限度减小偏移量的不确定性,使结果更贴合原始数据。

之后,针对现有主流追踪算法过程繁琐,实现复杂的弱点,为三角单元棱边设置索引,简化遍历过程,并将闭合和非闭合两种等值线的追踪方法统一,大大简化追踪流程。

在等值线绘图中,采用TIN网格有两大优点:一是等值线连接方式唯一,不会出现矩形网格中的二义性问题;二是TIN 网格使用的是原始数据点,避免了网格拟合带来的误差,尤其在原始数据密集的情况下,能高度还原地形地貌。

本文的工作使得TIN网格下等值线的追踪更加方便快捷,从而可以较好的应用于地质建模领域。

参考文献
[1]王鹏.等值线快速绘图方法研究及系统设计与实现[D].电子科技大学,2011.
[2]成建梅,陈崇希,孙红林.三角网格等值线自动生成方法及程序实现[J].水利学报,1998,10(10):23-26.
[3]黄维科,王弘琪.在AutoCAD中用“焊接法”绘制等高线[J].公路与汽运,2005,1:29.
[4]李瑞雪.球物理等值线构建及属性建立[D].中南大学,2012.
[5]韩丽娜.地质等值线图的生成与绘制[D].西安:西安科技大学,2006.。

相关文档
最新文档