APP下载

基于大洋气象预报播出系统的数据格式的开发和实现

2019-11-30胡若艳刘鹏程邵冰洁陈倩倩吴孟春温州市气象局

数码世界 2019年9期
关键词:气象预报多云天气预报

胡若艳 刘鹏程 邵冰洁 陈倩倩 吴孟春 温州市气象局

1 引言

随着温州气象局气象业务的不断发展,温州地区在去年对各市县的电视天气预报节目进行“集约化”,温州气象局气象影视中心除了制作本市的天气预报节目外还需承担制作八个市县的天气预报影视节目。市本级天气预报影视中的城市天气预报栏目主要是市本级和本地区的八个市县天气预报,而八个市县天气预报节目中相应栏目则是乡镇预报,县乡镇数量多,有的县则提供了近30 个乡镇的天气预报,其中的城市和乡镇预报需要录入明后两天的天气现象和温度,而温州各市县加上乡镇共有一百多个站点,所以每天要将这些城市天气预报和乡镇预报准确无误地录制完成,那么工作量和压力都相当大。目前气象影视节目制作系统主要由大洋气象播出系统和D-Cube-Edit 非线性制作系统来组成。城市和乡镇天气预报需要由大洋气象播出系统制作,平时主要通过人工录入生成非线性制作系统所需要的天气图标和温度。为了更好提高业务人员的工作效率和无误的信息录入,则需要开发一套辅助软件将城市和乡镇天气预报报文自动转换为气象播出系统的数据格式,就可准确而快速的导入到气象播出系统中。

2 大洋气象播出系统

2.1 简介

大洋气象预报播出系统是大洋公司在D3-Edit 的基础上开发的一套应用软件系统,主要功能是对城市和乡镇气象预报进行编辑。系统支持气象标准的气象电码,同是还支持气象预报文本格式。也就是说我们可以将城市和天气预报数据转为这两种格式中的一种,就可以解决城市与乡镇预报数据的快速而又准确的导入和生成了。

2.2 数据格式

(1)系统支持的数据格式有2 种,一种是标准的天气代码格式,由若干个五位数字组成,每组数字可由配置文件来定义,可代表着城市乡镇名、天气现象及温度;另一种是气象文本格式;本文以气象文本格式为例。系统的气象文本格式(rpt 为文件后缀名)如下:

[标题]

[日期时间],

[云图]

[城市]

罗阳,,小雨,多云,19,27,,多云,晴,14,25

洲岭,,小雨,多云,19,27,,多云,晴,14,25

司前,,小雨,多云,21,29,,多云,晴,16,27

……

2.3 文件配置

配置文件主要是对气象现象和天气图标以及温度的进行对应和匹配以及字幕模板文件的定义,从而保证了从气象电码或天气文本到影视节目中气象画面的自动又准确的转换。

3 开发与实现

3.1 城市与乡镇预报格式

城市与乡镇预报是由气象台制作,其内容主要是乡镇名、明天天气现象、明天温度、后天天气现象及后天天气温度组成;为了统一报文格式,也为了方便读取,各要素之间用逗号隔开,温度用数字体现,由最低温度和最高温度组成,中间用“-”隔开;

罗阳,小雨,多云,19-27,多云,晴,14-25

洲岭,小雨,多云,19-27,多云,晴,14-25

司前,小雨,多云,21-29,多云,晴,16-27

……

3.2 实现方法

开发语言为C#,C#(C Sharp)是一种强大的、面向对象的程序开发语言,是专为 .NET 开发而设计出的语言[2]。

(1) 开发思路

读取报文的每一行,在每一行中按分隔符号“,”将各要素放入数组中,再取出相应的要素,再将温度按分隔符号“-”取出最低温度和最高温度;再将各要素按气象预报播出系统的气象文本格式生成rpt 文件;

(2)C#的部分代码如下:

string listfilename = Application.StartupPath + "\20190517.txt";

string[] alliness = File.ReadAllLines(listfilename, Encoding.Default);

string head = "[ 标 题]" + Environment.NewLine + string.Empty + Environment.NewLine

+ "[日期时间]"+ Environment.NewLine + "," + Environment.NewLine

+ "[ 云 图]" + Environment.NewLine + string.Empty + Environment.NewLine

+ "[城市]" + Environment.NewLine;

string rptfile ="ts.rpt";

foreach (string str in alliness)

{

string[] QxItems = str.Split(`,`);

string name = QxItems[0];//站名

string tq11 = QxItems[1];//明天天气1

string tq12 = QxItems[2];//明天天气2

string[] wd1 = QxItems[3].Split(`-`);

string wd1min = wd1[0];//明天最低温度

string wd1max = wd1[1];//明天最高温度

string tq21 = QxItems[4];//后天天气1

string tq22 = QxItems[5];//后天天气2

string[] wd2 = QxItems[6].Split(`-`);

string wd2min = wd2[0];//后天最低温度

string wd2max = wd2[1];//后天最高温度

string line = name + ",,"+ tq11 + "," + tq12 + "," + wd1min + "," + wd1max

+",," + tq21 + "," + tq22 + "," + wd2min + "," + wd2max;

newline = newline + line + Environment.NewLine;

}

richTextBox1.Text = head + newline.Trim();

rich Text Box 1.Save File (rptfile,RichTextBoxStreamType.PlainText);//生成气象文本文件

3.3 文件导入

在气象预报播出系统中将生成的气象文本文件引入后,就可以看到如图1 的页签,也就可以生成非线性系统中对应画面的工程文件了。

4 结束语

在气象影视节目“集约化”后,温州城市及乡镇有100 多个,按以前的手工录入加核对将近一个小时,而自乡镇预报自动处理转换为气象文本文件的软件应用后,不用5 分钟就准确无误的导入数据,一方面可以大大减少了由于人工输入带来的低效率、数据错误以及格式错误等问题[3],另一方面也优化了气象影视制作业务流程,提升了气象影视制作的整体工作效率和节目质量。

猜你喜欢

气象预报多云天气预报
龙江气象预报服务团队助力北京2022冬奥会
向日葵·成长·礼物
广西贵港甘蔗产量气象预报
测不准的天气预报
天气预报的前世今生
家有蝈蝈
何氏“十全大补粥”
中期天气预报
浅析广播气象预报节目主持人的语言特点及角色定位
小小天气预报员