用Surfer绘制区域站等值线图

2014-08-15 00:51房淑波张建磊翟向东
黑龙江气象 2014年2期
关键词:等值线白化绘制

房淑波,张建磊,翟向东,冯 琦

(1.绥化市气象局,黑龙江 绥化 152002;2.中国气象局,北京 100081)

1 引言

区域自动气象站是一种适用于中小尺度天气系统监测的无人自动站。随着气象现代化的发展,区域自动气象站已成为气象综合观测站网的重要组成部分,其数据对提高天气预报水平、气象服务、气象防灾减灾预警等发挥着重要的作用。而其中区域站各要素等值线图对预报、决策人员有着很大帮助。在众多绘图软件中,Surfer最为方便实用,Surfer是一款十分流行的二、三维数据处理和显示软件,在气象业务中得到广泛的应用,其视图功能强大,等值线图绘制是其主要的功能,软件操作使用方便,是平时制作气象数据等值线常用的一款最为方便实用的软件。

2 区域站数据的引用

区域自动气象站主要有风向、风速、气温、降雨量4要素观测。目前黑龙江省的区域气象自动站查询软件是华创公司开发的CAWSAnyWhereServer软件,在实际业务使用中存在数据检索功能单一,不能对任意时段要素绘制等值线图等问题。为充分利用区域自动气象站丰富的气象资料,结合实际业务工作的需要,有必要对区域自动气象站数据库数据的结构和存储方式进行分析,并对其数据的开发与应用进行探讨。

(1)区域站数据库的连接。目前区域站数据存储在各市局服务器中,在客户端可以通过Adodb组件加以连接,provider属性串格式如下:

Provider=SQLOLEDB.1;

Persist Security Info=True;

User ID=用户名;

Password=密码;

Initial Catalog=CAWSAnyWhereServer;

Data Source=221.210.188.66,1443

其中CAWSAnyWhereServer为区域站数据库名,221.210.188.66,1433为数据库服务器地址,端口号。

(2)确认数据表名。建立数据连接后,可以通过select*from sysobjects语句查询库内表的名称,区域站软件更新升级后,改变了数据库结构,每个站点对应数个表,表名格式:H字母开头为该站小时数据,M字母开头为该站分钟数据,后5位是区站号。如果要一次查询多个站点,要一次循环打开多个表。

(3)确认数据结构。可以通过 select name from syscolumns where id in (select id from sysobjects where name='表名')语句查询各表结构,以小时数据表为例,各站表结构是一致的,TT表示观测时间,BA表示小时雨量。

(4)查询任意时段数据。对各站任意时段小时数据合计查询,关键SQL语句见下:

SELECT sum(BA)FROM站小时数据表where(TT>'开始时间')and(TT<=‘结束时间’)。

3 Surfer软件的应用

用Surfer绘图一般要经过以下几个步骤:

(1)绘制底图。底图一般为当地矢量格式,可以从micaps软件相关目录中找到本省地图加以修改,地图文件为文本文件,第一行第一项为地图中点的个数,第二项为0;以下各行为地图数据,由经纬坐标组成。

(2)网格化。网格化前要准备好要素数据文件,数据文件的格式为文本文件,每行最少要有3项数据:经度、纬度、要素值。操作前注意设置网格范围要与底图大小相同。选好网格化方法后生成网格文件。

(3)白化。白化的目的是使超出本地区范围以外的部分不画等值线,白化需要准备白化地图,此地图也是矢量地图,为本地区的轮廓,要求轮廓线连续并封闭,即整个地图是一条首尾相连的连线。将上步生成的网格文件通过白化地图白化操作,生成新的网格文件,文件中本地区以外的部分,Surfer就不会绘制等值线了。

(4)绘制等值线。加载白化后的网格文件,绘制等值线,并给等值线填色等。

(5)叠加。Surfer还提供了张贴图功能,可以将离散站点数据显示在地图上。建立张贴图需要准备文本格式文件,格式为每行最少3项数据:经度、纬度、待显示内容。

4 编制程序

4.1 环境设置

Surfer软件安装后,就可以通过引用它提供的控件编制程序绘制等值线图了,对控件的引用如下:

var SurferApp=new ActiveXObject(“Surfer.Application”);

var doc=SurferApp.Documents.Add(1);

4.2 数据文件的设定

编写Surfer程序,涉及到的数据文件较多,一般有3个文件是固定不变的:地图文件、白化地图文件、站点索引文件,站点索引文件中最少要包含区站号、经度、纬度3个字段内容。动态生成的文件包括:

(1)通过站点索引文件中的区站号索引访问网络数据库,形成的站点要素文件。文件中最少要包含经度、纬度、要素值,该文件的形成需要访问区域站数据库,是整个过程的关键,Surfer用该文件生成网格文件。

语句执行后,将形成的数组保存到站点要素文件中,以待下步执行。

(2)网格化生成的未白化网格文件。网格化是绘制等值线的关键步骤,需要准备上步动态生成的站点要素文件,在Surfer中网格化是通过GridData函数调用的,Grid-Data函数参数较多,其中几个主要参数含义为:

DataFile:气象站点要素文件;xCol,yCol,zCol:坐标及要素值在数据文件中的位置;NumCols,NumRows:插值时的总行数、列数;xMin,xMax,yMin,yMax:大小范围,应该同底图的范围相同;Algorithm:插值方法。NumCols,NumRows参数值越大,等值线越流畅,等值线层边缘越光滑,但速度也越慢。针对不同类型的气象要素,应该选择不同的插值方法。

(3)白化后的网格文件。调用相关方法:SurferApp.GridBlank(未白化网格文件,白化地图文件,白化后网格文件);语句执行后生成的白化后网格文件。之后调用Add-ContourMap语句绘制等值线图层,参数为白化后的网格文件。

(4)用于显示站点要素值的张贴图文件。Surfer张贴图用于显示区域站点名称、站点要素值等,每显示一类要新建一动态文件,所需的文件格式最少为3个字段:经度、纬度、待显示值。经度、纬度从站点索引文件中得到,待显示值则需要访问区域站数据库得到。通过方法AddPostMap,将要素值加到新的张贴图层中。最后叠加各个图层,输出等值线图片。

4.3 数据的筛选

气象要素数据的质量直接影响绘制等值线的效果,因此有必要在绘制等值线前对数据进行质量控制,最简单的筛选是剔除缺测站点,参与绘制等值线的站点要素文件不应该包含缺测站点。

4.4 Web服务程序的编写

可以考虑在服务器端架设Web服务器,在服务器端安装Surfer软件,客户端只需浏览器即调用图形了。如用ASP编程,需要在服务器端降低客户访问Surfer控件的权限,PHP编程则不需要设置。

为提高效率,将输出的图片文件名设为查询时间段,客户端第一次查询某时段后生成图片文件,下次再有访问,程序先检测目录里是否有该时段图片,如有则直接显示图片,省略运算过程。程序还应在客户访问时检查删除早期图片文件,保持固定的图片数目。

猜你喜欢
等值线白化绘制
基于规则预计格网的开采沉陷等值线生成算法*
白化黄喉拟水龟人工培育研究①
最严重白化
超萌小鹿课程表
放学后
等值线“惯性”变化规律的提出及应用
利用DEM的分层设色与明暗等值线组合立体方法研究
白化茶种质资源分类研究
等值线分析系统实际应用之等值线填充
白化和紫化茶种质资源开发进展