解析插值法在等值线绘制中的应用(精选2篇)
解析插值法在等值线绘制中的应用 篇1
1 Surfer简介
Surfer是美国Gold Soft Ware公司开发的产品, 从1985年至今已发展到11.0版本, 该软件不但能较好处理显示二维数据, 且对三维数据也有不错的处理效果, 专用于制作等高线、等值线等。绘制的图像可通过屏幕、打印机等方式输出, 使用方便, 精准度较高, 技术难度不高, 易掌握, 目前在气象部门应用较为广泛。Surfer主要提供了以下几大功能。
1.1 插值功能
Surfer 11.0提供了12种插值算法, 在气象业务的等值线绘制中用得较多的是自然邻点、最近邻点以及克里格插值三角网法等算法。根据其提供的算法, 可以快速地对气象二维、三维数据处理, 最终生成为连续的数据图形。
1.2 绘图功能
Surfer 11.0有多种绘图功能, 目前用户使用的主要有等值线、等高线、张贴图、影像图、三维立体网格图、向量图等, 同时提供了多种图形的输出格式, 甚至可以输出shape应用于GIS, 需要注意的是, 在绘制等值线时, 当用户指定按自身要求的区域输出时, 该区域以外的部分应用bln文件白化 (blank) 作图, 从而变成空白区域。
1.3 Scripter程序
Surfer 11.0通过CS Scripter脚本语言来进行编程, 通过它可以方便地控制Surfer的绘制。同时一些编程语言也能够很好地调用Surfer 11.0中Active自动化所提供的编程接口。通过Surfer绘制各类图形的流程大致如图1所示。
2 VB.NET与Surfer接口
关于生成Surfer图形的一些相关步骤和准备工作, 网上有较多的案例, 本文就不一一论述, 主要讨论与.NET结合的编程问题。Surfer 11.0中提供的Automation对象提供负责通用的接口, 由编程语言调用, 从而嵌入到用户开发的系统中去。.NET中对Surfer的调用, 是通过在相关项目的解决方案中的引用里面添加COM组件进行调用的。下面通过实例的方式简单介绍.NET中调用Surfer对象的几个重点步骤。
2.1 生成对象
Dim TZSurfer As New Surfer.Application
Dim zdz Plot As Surfer.IPlot Document
zdz Plot=TZSurfer.Documents.Add (1)
2.2 格点化数据
Dim str DAT, str GRD, str BLN, str OUTGRD as string
str DAT="E:TZzdzzdz.dat"
str GRD="E:TZzdzzdz.grd"
str BLN="E:TZzdzzdz.bln"
str OUTGRD="E:TZzdzzdz Out.grd"
Surfer App.Grid Data (Data File:=str DAT, x Col:=1, y Col:=2, z Col:=3, Algorithm:=Surfer.Srf Grid Algorithm.srf Kriging, Dup Method=2, Num Cols:=340, Num Rows:=500, y Min:=33.0325, y Max:=33.1, x Min:=119.64, x Max:=120.538888, Show Report:=False, Out Grid:="str GRD")
Surfer App.Grid Blank (In Grid:=str GRD, Blank File:=str BLN, Out Grid:=str OUTGRD)
该段代码表示进行克里格网格化插值。其中Data File表示执行的数据文件名, Algorithm表示网格化采用的方法, Dup Method表示消除重复点的方法, 采用2是消除所有重复点。Num Cols和Num Rows代表了多少行、列, 表示的是网格中的格点数量, 同时代表了空白区域的大小。x Min至y Max则表示网格化区域, Show Repod确定是否输出报告, Out Grid表示输出Grid格式文件zdz Out.grd。
2.3 数据白化
通过Surfe提供的Blank组件, 去掉底图以外的格点数据, 通过软件的进一步处理, 最终去掉边界的格点值。
Dim tz Map Frame As Surfer.IMap Frame
Dim str GRD as string
str GRD="E:TZzdzzdzout.grd"
tz Map Frame=plot.Shapes.Add Contour Map (str GRD)
2.4 等值线绘制
将站点数据资料格点化后, 通过调用COM组件的Contour功能绘制出等值线。一般先根据系统默认等值线的间隔绘制, 再根据需要逐步调整间隔, 绘制的同时可决定对等值线进行填充。最后通过调用COM组件的overlay合并同一坐标的多个图形, 从而达到底图与等值线的融合。
Dim tzMap As Surfer.IContourMap ()
Dim strCLR as string
str CLR="E:TZzdzzdz.clr"
tz Map=contourmapframe.Overlays.Item (1)
tz Map.Smooth Contours=4
tz Map.Fill Contours=True
tz Map.Fill Foreground Color Map.Load File (str CLR)
tz Map.Levels.Auto Generate (Min Level:=0, Max Level:=20, Interval:=3) '设置标尺的最大和最小值, 已经间隔
tz Map.Apply Fill To Levels (First Index:=1, Number To Set:=22, Number To Skip:=4)
tz Map.Show Color Scale=True
tz Map.Color Scale.Opacity=100'设置颜色标尺的透明度 ()
tz Map.Color Scale.Height=4'
其中, 需要注意Levels.Load File () 和Apply Fill To Levels () 这2个函数相对于以前的版本有变化, Levels.Load File () 主要用来加载*.clr格式的文件 (Surfer 8.0及以前的版本是*.lvl文件) , Apply Fill To Levels () 用来填充到整个图层。Smooth Contours表示的是平滑图片等级, Min Level, Max Level, Interval, 表示设置标尺的最大和最小值, 以及间隔。
2.5 添加等值线背景
Dim tz Map Frame As Surfer.IMap Frame ()
Dim tz Base Map As Surfer.IBase Map ()
tz Map Frame=plot.Shapes.Add Base Map (str BLN)
tz Base Map=tz Map Frame.Overlays.Item (1)
Dim tz Zdz Frame As Surfer.IMap Frame
tz Zdz Frame=plot.Shapes.Add Post Map (Data File Name:="str BLN")
2.6 导出图面
Surfer可通过Export方法导出矢量图和位图。但需要注意的是, 若选择位图输出时, 用户可自定义其大小, 对于填充的图片, 因压缩算法不一样, 尽量不要选择JPG格式, GIF、PNG以及BMP格式效果较好。若选输出矢量图时, 则不能改变其大小, 还是按原图尺寸输出, EMF格式的图片效果较好。
主要代码如下:
Dim str GIF as string
str GIF="E:TZzdzBMPTZzdz.bmp"
plot.Export (File Name:=str GIF, Options:="Width=1024, Height=960")
3 在业务中的应用
3.1 平台架构
泰州自动气象站业务系统采用B/S架构, 使用ASP.NET结合SQL数据库进行开发。通过网页提供给用户进行在线的实况数据检索、查询、统计等。并根据检索的数据在线生成等值线等。Surfer11.0的Active接口为在Web环境下的应用提供了可能。
3.2 Web中利用Surfer组件绘制等值线
当业务人员通过浏览器打开自动站查询系统, 根据相关的选择时间、要素、站点, 服务器端检索出数据, 然后根据Surfer数据的要求, 格点化数据, 以纯文本格式文件保存, 以24 h降水量文件格式举例如下:
图2、3为生成的降水色斑图以及温度色斑图:
生成图片时引入Ajax (Asynchronous Java Script and XML) 技术, 解决了因刷新图片时的页面闪烁问题。
4 结语
通过.NET结合Surfer 11.0软件开发的等值线绘制系统, 将基于C/S架构的Surfer软件拓展应用到B/S架构, 用户通过IE在线生成色斑图、等值线图, 拓展了自动站数据的应用范围, 更好满足了气象业务的需求[3,4]。
摘要:等值线已经广泛地应用于气象领域。本文介绍了利用Surfer11.0的主要功能以及对应的.net应用程序的接口, 将.net的软件开发能力和Surfer的绘图功能相结合, 实现了基于B/S架构的泰州地区的自动站数据的在线绘图。
关键词:Surfer,.net,自动成图
参考文献
[1]梁亮.Surfer软件在气象主分量分析中的应用[J].浙江气象, 2005 (3) :29-33.
[2]李雄.利用Surfer软件包绘制气候图[J].广西气象, 1997, 18 (4) :57-58.
[3]连志鸾.Surfer二次开发实现加密雨量图自动显示与输出[J].气象科技, 2006, 34 (2) :220-224.
解析插值法在等值线绘制中的应用 篇2
[关键词]气象要素;等值线
[中图分类号]P415.1+2 [文献标识码]A [文章编号]1672-5158(2013)06-0403-01
1 引言
随着人们的生活水平的不断提高,公众对气象的关注度和服务水平的要求也越来越高,而我们气象部门提供给公众的气象产品中不少以图形的方式展示给用户,其中气象实时要素的等值线分布图便是重要的产品之一。等值线图是用布满一定区域内的若干条等值线表示某个地理现象的数量分布状况。它是研究地理事物变化和发展的一个重要手段。由于等值线上注有数值,而且数值间隔是相等的,因此可以根据等值线的数值大小、排列方向、形状变化、疏密程度等,反映出该地理事物变化的急缓、递变的方向及分布特点。我们利用成熟的surfer绘图软件制作不同区域的温度、降水等气象要素的等值线图。等值线图能够让使用者方便直观地了解到某个区域的温度、降水等情况。
2 SURFER绘图软件介绍
Suffer是一款以画三维图的软件。它内置有比较全面的空间插值算法,主要包括反距离加权插值法、克里金插值法、最小曲率、改进谢别德法、自然邻点插值法、最近邻点插值法、多元回归法、径向基函数法、线性插值三角网法、移动平均法、局部多项式法。具有的强大插值功能和绘制图件能力,可以轻松制作基面图、数据点位图、分类数据图、等值线图、线框图、地形地貌图、趋势图、矢量图以及三维表面图等;同时,它还提供各种流行图形图像文件格式的输入输出接口以及各大GIS软件文件格式的输入输出接口,大大方便了文件和数据的交流和交换;提供新版的脚本编辑引擎,自动化功能得到极大加强。
3 绘制等值线图
在Suffer软件中分别用GridSh能和base map功能打开区域气象要素数据文件和区域背景地图文件,即可绘制出气象要素等值线图。我们所做的软件界面是在c#.net台上进行的制作,我们利用suffer绘制地图也是在c#.net调用suffer软件,这样我们在就可以在执行我们编写的程序中看到suffer绘制出来的地图以及气象要素的等值线图。在c#.net的代码中,我们绘制地图以及等值线图的操作代码都是写在函数中的。
3.1 用suffer绘制边界地图
在c#中,调用suffer软件的调用代码为:
Surfer.Application app=new Suffer.AppEcation();
在绘制边界地图时,我们的地图边界文件是存储在bouTldary.bin文件中的,存储样式为106.119,30.535,表示一个边界点的经度和纬度,boundary.bln文件中每一行且只能有一个这种样式的经度和纬度值。
其绘制出来的网格地图如图1所示。
3.2 用surfer绘制等值线
我们在绘制等值线之前,通过在c#.net中编写代码设定我们要绘制的等值线的要求,如等值线区域的颜色、要连接的后台数据库、统计方式以及需要查询的气象要素的时间段等。完成对各参数的设定后,我们将输出各个气象要素的等值线图。一般情况下,我们对气象要素的统计方式有最大、最小、合计、平均等。
我们以求某段时间内的最高气温为例,此时我统计方式就是求这段间内气象的最大值。通过surfer绘制出来的图形如图2如示。
同样的道理,当我们要查看一定时间范围内的降水量的区域分布等值线图,其统计方式是求这段时间内的合计值,其输出图形如图3所示。
3.3 标注站点信息
我们在显示等值线的同时,要显示我们每个自动站的位置及相应的气象要素数值,如气温、降水量等,如上面绘制出的等值线图所示,这可以用post map和classed post map来完成。
4 结束语