作者:徐欢 刘春风 柳宏英 周立伟
摘要《城镇天气预报编报发报系统》以菜单方式进行集中控制,以排班表为主控线索,以文件方式存储各类数据,综合应用了通信技术、计算机网络技术和软件开发技术,采用powerscript语言在powerbuilder7.0开发环境下编制而成,为各级天气预报员提供了编辑和发送短期(24、48、72h)、短时(08~14、14~20、20~08h)和中期天气预报报文的平台。该系统具有系统结构简单、用户界面友好、系统性能稳定、易操作、易维护等特征。在编发报过程中自纠错能力强,有相应提示,有各单行复制、多行复制、列复制与调入上次报文的功能。
关键词城镇天气预报;编报;发报
自2001年9月以来,新疆气象局各州(地)级气象台开始使用中国气象局下发的天气预报编发报程序(云南编报)进行城镇天气预报编报,然后利用各自的发报软件进行发报。由于目前业务项目的增加和业务管理的改变,该软件已不能满足预报工作的实际需要,主要存在以下6个方面问题:①不能对个人评分报文进行控制,即气象台每天必发集体报(d报),可发可不发个人评分报(gd报),导致gd报的评分远远高于d报的评分,以及预报员之间的评分不统一。WWW.133229.CoM②预报评分报文中天气现象的选取存在部分不合理的现象。③不能进行最高气温应高于最低气温的自动判识。④某日是否该发中期预报,需要预报员记忆,不能进行自动判识;天气的起始日应小于等于结束日,且最多只能跨越3d,这些均不能进行自动判识。⑤仅能编制24、48h的预报报文,不能编制72h的预报报文。不能编制短时预报报文。
针对这一现状,新疆气象局于2004年3月在新疆气象局立项,开发研制《城镇天气预报编报发报系统》。该系统研制成功后,由于其操作简便快捷、运行稳定、易维护,在天气预报编、发报方面具有全国通用性,因此于2004年8月在昌吉、克州、和田、巴州、哈密、克拉玛依和吐鲁番等地州市气象台得到推广应用,2004年10月通过新疆气象局验收;2004年12月获得新疆气象局2004年度科学研究与技术开发二等奖。
1总体设计
1.1数据存储方式
首先,城镇天气预报编报、发报操作过程的主要矛盾不是原始报文大量而长期保存及实现快速查询,而是如何能实现快速编报、发报,减少操作步骤,降低误操作率[1]。其次,数据库应用软件在推广应用时难度较大,需要相关知识较多,因此,《城镇天气预报编报发报系统》没有采用数据库方式存储各种数据,而是以文件方式来存储各种数据。
1.2开发环境与语言
作为一门可视化、面向对象的快速开发(rad)工具,powerbuilder已被广大数据库应用开发人员所使用,并获得好评。powerscript语言是powerbuilder为开发人员提供的功能强大的结构化高级编程语言,它使用函数和事件处理程序,非常方便和灵活。因此,《城镇天气预报编报发报系统》选取windows2000为操作平台,powerbuilder7.0为开发环境,powerscript语言为编程语言。
1.3配置文件结构
《城镇天气预报编报发报系统》符合绿色软件标准(不改动注册表),系统运行的所有参数均存放在配置文件中,配置文件由以下8节组成:“站名”节中的区站号为5字节,台站名最多为20字节;“预报员”节中的预报员编号为5字节,预报员名最多为20字节;“重要天气”节中的重要天气编号为1字节;“天空状况”节中的天空状况编号为1字节;“天气现象”节中的天气现象编号为2字节,天气现象序号为2字节;“风向”节中的风向编号为1字节;“风速”节中的风速编号为1字节;“其他”节中的每个项目名都是固定的。
1.4主控线索与采用技术
《城镇天气预报编报发报系统》以下拉菜单方式进行集中控制,各菜单项分别与相应程序模块相关联;以排班表为主控线索,综合应用静态文本框、列表框、下拉列表框、单行编辑框、命令按钮、选项卡、数据窗口(外部数据源)与ftp命令在pb中的调用、微软chm帮助文件的制作与其在pb中的调用等技术编制而成,可在windows 95以上的操作系统上运行。
2技术实现
2.1设计排班表为系统主控线索
为了在程序中实现对个人评分报(gd报)的集中控制,为系统编制了值班安排和发报控制程序模块,设计排班表作为该系统的主控线索,严格按照排班表编、发gd报。用户打开编制个人报窗口时,系统将某日排班表中所有预报员姓名调入该窗口的预报员下拉列表框中,当用户每编制并保存完一位预报员的gd报后,系统就将该预报员从该窗口的预报员下拉列表框中删除,直到将预报员下拉列表框中所有预报员的gd报编制并保存完毕后,才可发送fn报,即“发送fn报”菜单项才可用。
2.2采用选项卡与数据窗口等技术
为了使系统集成度高、操作简便快捷、竭力提高编报速度,系统在编制集体报、个人报和更正报窗口中普遍采用选项卡技术,在所有的编报窗口中采用数据窗口(外部数据源)[3,4]、数据窗口中的下拉列表框[5]等技术,设置单行复制、多行复制和列复制功能,设置调入上次预报的命令按钮,为第1条记录设置默认值。为了使该系统有利于移植和推广,系统采用ftp命令、windows函数在pb中的调用、微软chm帮助文件的制作与其在pb中的调用等技术,编制配制维护、规则维护、密码设置等程序模块。
2.3设置系统提示
系统为所有的程序模块设置执行成功与出错的相应提示,实现对所编报文项目进行原则性差错的自动判识,为每个编报窗口设置报文浏览选项卡和列表框,用于显示编制的各种报文,便于即时核对,以便达到降低在编、发报过程中的误操作率,有效地提高编、发报的速度。
2.4判识中期预报日
在系统中定义一个特殊的全局变量月末日,并在系统启动时进行月末日自动判识。旬末日必须编、发中期预报,非旬末日无须编、发中期预报。上、中旬的旬末日分别为10与20,下旬的旬末日就是月末日。每至旬末日北京时间12时以后,编制集体会商结论报窗口中的中期选项卡方可使用,其余时间均为不可用,这样就使系统具有自动判识中期预报日的功能。
3目录结构与文件
《城镇天气预报编报发报系统》主目录为forecast,包含程序、报文、回执3个子目录。其中报文目录用于存放编制好的报文文件;回执目录用于存放发出报文的回执文件;程序目录用于存放可执行程序、配置文件、文本文件和相应的动态库文件,具体如下:①libjcc.dll、pbdwe70.dll、pbvm70.dll、pbwei70.dll和forecastcode.dll分别为4个pb可执行程序所需的动态库文件和《城镇天气预报编报发报系统》的动态库文件;②forecastcode.exe、ftp.exe 2个可执行程序;③forecastc-ode.chm系统帮助文件;④排班表.ini存放当月排班数据的文件;⑤短期预报.txt存放集体报或更正报的文件,包括中期预报日的中期报内容;⑥短时预报08.txt存放08时短时报文件;⑦短时预报14.txt存放14时短时报文件;⑧短时预报20.txt存放20时短时报文件;⑨forecast.ini配置文件。
4系统功能
《城镇天气预报编报发报系统》可用于编制和发送6、12h短时报;24、48、72h短期fp报、更正fp报、集体fn报(d报)、个人fn报(gd报)和中期报。它由配制维护、规则维护、密码设置、值班安排、排班表、集体报、个人报、短时报、更正报、发送fp报、发送fn报、发送短时报和系统帮助共13个主要功能模块组成。调用配制维护、规则维护、密码设置、值班安排等模块,均需输入系统密码。
(1)配制维护。用于对配置文件的“站名”、“预报员”和“其他”3个节中的参数进行维护。调用该模块,可增加、修改或删除预报员、台站,可修改“其他”节中的参数。
(2)规则维护。用于对配置文件的“重要天气”、“天空状况”、“天气现象”、“风向”和“风速”5个节中的参数进行维护。调用该模块,可增加、修改或删除“重要天气”、“天气现象”两节中的项目,可修改或删除“天空状况”、“风向”和“风速”3节中的项目。该模块极少使用,因为天气预报编报规则极少变动。
(3)密码设置。用于设置或更改系统密码。调用该模块,需输入系统的原先密码。
(4)值班安排。用于制作每月的排班表。每天至少安排1人值班,最多可安排5人值班。因此,在值班安排窗口中,每天预报员1不能为空,预报员2~5均可为空。
(5)排班表。用于查阅每月的排班情况。
(6)集体报。用于编制集体会商结论预报。调用集体报模块时,系统调出编制集体会商结论报窗口。该窗口预报员下拉列表框中仅有一项,是排班表中某日预报员1的内容。为了提高编报速度,该窗口中24、48和72h选项卡的第1条记录均设有默认值;设有复制、粘贴一条记录、多条记录和某一列的功能;设有调入上次命令按钮,其功能是将上次集体会商结论或更正报编码调入该窗口相应选项卡中,预报员可在此基础上进行修改。
(7)个人报。用于编制个人报。调用个人报模块时,系统调出编制个人预报窗口。该窗口预报员下拉列表框中最少有1项,最多有5项,是排班表中某日预报员1~5的全部内容。该窗口其余内容设置与编制集体会商结论报窗口相同。
(8)短时报。用于编制短时报。调用短时报模块时,系统调出编制短时报窗口。该窗口和编制集体会商结论报窗口一样,第一条记录设有默认值,且设有单行复制、多行复制、列复制和调入上次等功能。
(9)更正报。用于编制集体会商更正报,最多可编、发4次更正报。调用更正报模块时,系统调出编制集体会商更正报窗口。该窗口预报员下拉列表框中仅有1项,是排班表中某日预报员1的内容。该窗口其余内容设置与编制集体会商结论报窗口相同。该模块仅在向中央台发更正报时使用。
(10)发送fp报。用于发送fp报。北京时间12时以前可发05时fp报,12时以后可发14时fp报。发送fp报时,系统自动在报文目录中寻找最后编辑并保存的那份fp报(流水号为1~5),将其发出,再将其调回存入回执目录。
(11)发送fn报。用于发送fn报。只有将某日排班表中所有预报员的个人评分报(fn报)编制并保存完毕后,才可发送fn报。北京时间12时以前可发05时fn报,12时以后可发14时fn报。发送fn报时,系统自动在报文目录中寻找最后编辑并保存的那份fn报(流水号为1~7)将其发出,再将其调回存入回执目录。
(12)发送短时报。用于发送短时报。只有将短时报编制完毕后,才可发送短时报。发送短时报时,系统自动在报文目录中寻找当时编辑并保存的那份短时报,将其发出,再将其调回存入回执目录。
(13)系统帮助。用于调用系统帮助文件,是当今较先进的chm文件类型。
5参考文献
[1] 施伯乐,丁宝康,楼荣生.数据库系统导论[m].北京:高等教育出版社,1994.
[2] 何军,曲炜,郭立.powerscript语言、事件与函数大全[m].北京:电子工业出版社,2000.
[3] 王蓉等.powerbuilder7.0应用开发技术祥解[m].北京:电子工业出版社,2000.
[4] 胡存生.powerbuilder7.0高级开发是实例与技巧[m].北京:电子工业出版社,2001.
[5] 刘增进.powerbuilder7.0数据窗口技术祥解[m].北京:电子工业出版社,2000.