气象报文转换程序设计

龙源期刊网 http://www.qikan.com.cn

气象报文转换程序设计

作者:孙晓霞 刘星燕 孙跃飞 赵庆海 赵海江 来源:《软件》2012年第06期

摘 要:从本单位实际工作需要出发,利用Visual Basic6.0语言进行程序设计,实现对纯数字编码格式的气象报文进行文字格式的翻译转换,使预报报文在实际业务工作中使用更为方便。

关键词:数字编码格式;文字格式;转换程序设计;模块

中图分类号:TP311 文献标志码:A DoI: 10.3969/j.issn.1003-6970.2012.06.024 Meteorological Messages Conversion Process Design

Sun Xiaoxia1, Liu Xingyan1, Sun Yuefei1, Zhao Qinghai2, Zhao Haijiang1

(1. Meteorological Bureau of Zhangjiakou, 075000; 2. Meteorological Station of Heibei,050021) 【Abstract】from the actual needs of work, the programming in the Visual Basic6.0 interface can make weather messages convert from pure digital encoding format to text format, and make forecast messages more convenient for use in actual operations.

【Key words】 digital encoding format; text format; conversion process design 0 引 言

现代气象业务的迅速发展,对预报员提出了越来越高的要求[1]。预报员不仅要做好预报服务,还要面对许多需要上传和下发的气象报文。2008年11月前,张家口市气象局预报报文的发送是基于天气现象的汉语文字形式,下发的预报内容一目了然。11月后,预报报文文件完全以数字编码格式发送,虽然数字化格式便于上传与接收,但实际预报工作中还需要把数字编码格式报文转化为文字形式更为直观实用,将数字化报文解码转化翻译为天气现象汉语格式,在实际业务工作中还是必要的。 1 文件名的处理

预报报文的文件类型均为文本文件。发送时间每天有三次,大约为4:30~5:00、09:30~10:00和15:30~16:00。

文字格式报文文件的命名比较简单,分别为 YYYYMMDD.t05、YYYYMMDD.t11和YYYYMMDD. t17,其中“YYYYMMDD”是8位报文生成时间(北京时),“t 05”、“ t 11”和“t

龙源期刊网 http://www.qikan.com.cn

17”是三个发报时次的标志。例如,2012年1月3日凌晨5点发送的报文文件名为“20120103.t05”。

数字编码格式报文文件的命名相对比较复杂,文件名结构为:“Z_SEVP_C_BFZK_”+14位报文生成时间(世界时)+“_ P_RFFC-SPCC-”+8位报文生成时间(北京时)+“0000”(或“1200”,凌晨和上午发送为“0000”,下午发送为“1200”)+“-”+“07212”(或“16812”,“072”表示预报文件发送72小时预报,“168”表示发送168小时预报,“12”表示12小时一组报文编码),例如“Z_SEVP_C_BFZK_20101215203347_P_RFFCSPCC-201012160000-07212.TXT”文件为2012年12月16日(北京时)凌晨发送的预报报文,报文生成时间为2012年12月15日20时33分47秒(世界时),共发送72小时预报,12小时一组报文编码。图1为数字编码报文文件名每个字段的具体解释。

1.2 程序设计中对文件名的错误检查

在报文转换程序设计中,考虑到数字编码格式报文文件名的复杂性,我们用文件列表控件调用报文文件夹文件,先检查报文的发送日期、时次以及文件名是否正确,再进行转换,如果有误将弹出错误对话框,不予翻译转换。此程序不但保证了要转换原始报文文件的正确选取,还能检查预报员编辑数字格式报文时的文件名是否正确。例如,下午16:00发送报文时,如果打开编辑程序太早,文件名就会生成“*0000-16812.txt” ,而正确文件名应为“*1200-16812.txt”,省气象局和国家气象局接收张家口预报报文状态为“缺报”。图2为文件名出现错误时系统弹出错误对话框,图中正确的文件名应为

“Z_SEVP_C_BFZK_20100930074137_P_RFFCSPCC-201009301200-16812.TXT”。

2 文件内容的编译转换要点

2.1 报文发送多次时,报文文件的正确选取

在数字编码格式报文文件中,有时会有更正报文发送。例如,下午15:40预报报文天气现象为“03”(阵雨),经过讨论会商,重新发送报文,天气现象改为“04”(雷阵雨)。第二份报文,除了报文生成时间不同,天气现象编码不同,在报文文件内容上,须在第二行末尾加上“CCA”作为更正报文标志。在翻译转换报文时,我们首先要考虑选取有“CCA”更正报标志的报文,其次考虑最近生成时间的报文文件。 2.2 用模块定义函数

气象要素识别和解码是按照气象报文编码规则进行气象要素还原的过程[2]。为了方便翻译编译报文,简化程序代码,优化程序设计,用模块Function定义站名、天气现象、风力和风

龙源期刊网 http://www.qikan.com.cn

向等几个函数,这些函数其实就是气象报文的编码规则。例如,以下代码编写的函数“fengxiang”,在程序运行翻译过程中,fengxiang(3)= \东南风”。 Function fengxiang(baowen As Single) As String Select Case baowen Case 0

fengxiang = “无风”Case 1 fengxiang = “东北风”Case 2 fengxiang = “偏东风”Case 3 fengxiang = “东南风”Case 4 fengxiang = “偏南风”Case 5 fengxiang = “西南风”Case 6 fengxiang = “偏西风”Case 7 fengxiang = “西北风”Case 8 fengxiang = “偏北风”Case 9 fengxiang = “旋转风”End Select End Function 2.3 顺序读写文件

张家口共有14个气象站,每站每天需要编写7天预报报文,报文内容虽然繁多,却有固定格式,杂而不乱,在程序翻译编写时,以顺序方式读写文件,不容易错位。

不论是数字格式还是文字格式,每个预报报文文件,都要编写14个气象站3天或者7天预报。数字编码格式报文的编写顺序,是先编写完一个站点的3天或7天预报,再接着编写另一个站点的3天或7天预报。而文字格式的预报报文,是先编写24小时14个站点预报,再编写48小时预报,依次是72~168小时预报。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4