赵大清,姚正兰
(贵州省遵义市气象局,贵州 遵义 563002)
贵州区域自动气象站数据等值线应用系统简介
赵大清,姚正兰
(贵州省遵义市气象局,贵州 遵义 563002)
该文以绘制贵州省等值线雨量图为例,着重介绍利用Surfer软件绘制区域图和在底图上绘制等值线图的方法,展示用Delphi7.0编程语言调用Surfer8.0的绘图函数,实现Surfer8.0与Delphi7.0之间的API自动化接口,从而实现区域等值线图的程序化输出。
区域图;气象要素;等值线;Delphi;Surfer
结合气象信息在社会发展中的应用和需求,需要对各个时次的数据进行批量的或任意的处理。气象信息只有有效、准确、及时、直观的发布出去,才能更好地应用本系统通过专业数据库软件设计程序(Delphi7.0)[1],结合有 API自动化接口的专业图形绘制软件(Surfer8.0)[2]制作出等值线图形。
Golden Software Surfer(简称Surfer)是一款绘制三维图和等值线图的软件,最大的特色是具有插值功能和填色绘制。用此软件绘制的区域等雨量线图能直接形象地反映出区域雨量的分布。虽然有很多文献对Surfer软件都进行了较为详尽的介绍,但由于其帮助文件大多是英文版,因此在基层台站的应用还待进一步提高。如何制作区域底图,并将区域自动站数据叠加在底图上以及怎样利用delphi7.0编程语言调用Surfer8.0的绘图函数,实现等值线绘图的程序化操作,是本文所要解决的主要问题。
贵州省区域地图通过Surfer8.0绘制,区域自动站点的经纬度资料取自贵州省气象信息中心自动站数据库中台站信息数据表,并作十进制计算以方便在Surfer8.0的绘图时使用。本文以调用贵州省区域内2012年8月1日22时前24 h降水资料为例,介绍该时次贵州省区域自动站等值线图的绘制方法。
首先调用读出贵州省边界经纬度资料,生成闭合无县界的bln文件guizhoubase.bln,其文件格式如下:
其中,X1、Y1是闭合曲线初始点的经纬度数据,Xn、Yn是闭合曲线终点的经纬度数据。X是某一点上的纬度数据,Y是某一点上的经度数据。Length是底图曲线中点坐标的个数,当flag=1时,底图区域内的等高线可以消除,当flag=0时,可以消除底图区域以外的等高线,本例选flag值=0。
同时单独制作出带市县界的bln文件guizhou.bln,便于与guizhoubase.bln文件的图层叠加。
在Surfer8.0中绘制出应用程序所需要的bln文件和shp文件,bln文件将数据文件作经纬度的规范,使其在规定范围内、shp文件添加进市县界使区域更加直观。在应用程序用到这两个文件时,就已经是默认状态,所以不用考虑自己去制作。
bln文件和shp文件格式都是同样:
经纬度资料从省气象信息中心自动站数据库的台站信息数据表取出作核实,制作出详细的数据文件;在设计程序计算时需要用到对应的数据类型和格式。基本设计如下:
应用程序将数据通过下面过程调用处理,并与基本数据结合生成出新的字符串列表,保存给Surfer8.0 调用。
通过过程调用后的数据文件guizhoudata.txt,其格式如下:
Surfer从7.0版本开始增加了Automation技术,提供了程序化制图的扩展空间。如何利用Delphi7.0编程语言调用Surfer绘图函数自动绘制等值线图呢?这里介绍一个简便的基于Surfer 8.0的Delphi7.0代码实现方法。
图1 加载guizhou.bln文件
在绘制区域等雨量线图过程中,闭合区域底图的制作至关重要,闭合就是要求数据要首尾相连,从头到尾围成一闭合的图形。闭合区域底图、闭合分县界底图和自动站站点所采用的经纬度数据一定要取自同一个数据源,两图的制作方法有所不同,所起的作用也是完全不同的。
图3 通过美化后的最终出图
利用Delphi7.0编程语言调用Surfer函数联合编程,实现了雨量图的自动显示和输出,操作简捷,如连接自动雨量站网数据库实现ADO连接数据库自动采集,则可达到实时绘制雨量图的效果。
[1]Surfer 8.0 初学者手册[M]. 原创 Addison,2003,(5)21.
[2]Delphi7.0程序设计基础教程与上机指导[M].北京:清华大学出版社,2002.
TP311.52
B
1003-6598(2012)05-0044-03
2011-09-07
赵大清(1982—),男,助工,主要从事计算机网络管理和雷达应用等工作。
贵州省科学技术厅项目“贵州省交通安全气象风险区划及应用平台研究-以遵义为示范点”(黔科合SY字[2012]3054号)。