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

合集下载

等值线绘制简易算法

等值线绘制简易算法
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. **等值线算法**:接下来,您需要实现一个算法来生成等值线。

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

  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.。

相关文档
最新文档