首页 > 范文大全 > 正文

气象报文转换程序设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇气象报文转换程序设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:从本单位实际工作需要出发,利用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 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定义站名、天气现象、风力和风向等几个函数,这些函数其实就是气象报文的编码规则。例如,以下代码编写的函数“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小时预报。

在程序设计中,以文字格式报文为目标,先提取数字编码格式报文的24小时预报,翻译编写在相应文件,再提取48~168小时预报进行翻译编写。

2.4 解码翻译过程中对文件内容的错误检查

数字编码格式的报文文件内容,字段固定,再加上预报内容繁多,编发报文时间仓促,预报员稍有不慎,就容易发生错报现象。而解码翻译后的文字格式报文,天气现象、风向风速都一目了然,错误内容更容易被发现。图3为转换前后两种报文对比,由图可知,24小时预报中,13站风向风速为东南风1~2级,只有崇礼为东南风1~2级转西北风4~5级,“转西北风4~5级”就有可能是失误编发,而不是实际预报。数字编码格式报文中,错误比较隐蔽,而在转换后的文字格式报文中却能一目了然。

3 程序设计流程

气象报文转换程序在实际业务工作中不断完善,过程繁琐,思路却清晰明了。图4为报文转换程序设计流程图。

4 小结

随着科学技术的进步和计算机技术的迅猛发展 ,实际业务工作越来越规范化和数字化,气象预报报文的数字编码化,使报文的上传和发送更为准确快捷。气象报文转换程序的使用,使数字编码格式报文准确翻译为文字格式,在实际业务工作中使用更方便。

参考文献

[1] 马月枝.气象报文编发监控报警系统设计[J].气象环境与科学,2009,32(1):91-93.

[2] 高华云.不规范报文格式引发信息处理负效应[J].气象科技,2006,34(增刊):59-60.