胡若艷 劉鵬程 邵冰潔 陳倩倩 吳孟春 溫州市氣象局
隨著溫州氣象局氣象業(yè)務(wù)的不斷發(fā)展,溫州地區(qū)在去年對(duì)各市縣的電視天氣預(yù)報(bào)節(jié)目進(jìn)行“集約化”,溫州氣象局氣象影視中心除了制作本市的天氣預(yù)報(bào)節(jié)目外還需承擔(dān)制作八個(gè)市縣的天氣預(yù)報(bào)影視節(jié)目。市本級(jí)天氣預(yù)報(bào)影視中的城市天氣預(yù)報(bào)欄目主要是市本級(jí)和本地區(qū)的八個(gè)市縣天氣預(yù)報(bào),而八個(gè)市縣天氣預(yù)報(bào)節(jié)目中相應(yīng)欄目則是鄉(xiāng)鎮(zhèn)預(yù)報(bào),縣鄉(xiāng)鎮(zhèn)數(shù)量多,有的縣則提供了近30 個(gè)鄉(xiāng)鎮(zhèn)的天氣預(yù)報(bào),其中的城市和鄉(xiāng)鎮(zhèn)預(yù)報(bào)需要錄入明后兩天的天氣現(xiàn)象和溫度,而溫州各市縣加上鄉(xiāng)鎮(zhèn)共有一百多個(gè)站點(diǎn),所以每天要將這些城市天氣預(yù)報(bào)和鄉(xiāng)鎮(zhèn)預(yù)報(bào)準(zhǔn)確無(wú)誤地錄制完成,那么工作量和壓力都相當(dāng)大。目前氣象影視節(jié)目制作系統(tǒng)主要由大洋氣象播出系統(tǒng)和D-Cube-Edit 非線(xiàn)性制作系統(tǒng)來(lái)組成。城市和鄉(xiāng)鎮(zhèn)天氣預(yù)報(bào)需要由大洋氣象播出系統(tǒng)制作,平時(shí)主要通過(guò)人工錄入生成非線(xiàn)性制作系統(tǒng)所需要的天氣圖標(biāo)和溫度。為了更好提高業(yè)務(wù)人員的工作效率和無(wú)誤的信息錄入,則需要開(kāi)發(fā)一套輔助軟件將城市和鄉(xiāng)鎮(zhèn)天氣預(yù)報(bào)報(bào)文自動(dòng)轉(zhuǎn)換為氣象播出系統(tǒng)的數(shù)據(jù)格式,就可準(zhǔn)確而快速的導(dǎo)入到氣象播出系統(tǒng)中。
大洋氣象預(yù)報(bào)播出系統(tǒng)是大洋公司在D3-Edit 的基礎(chǔ)上開(kāi)發(fā)的一套應(yīng)用軟件系統(tǒng),主要功能是對(duì)城市和鄉(xiāng)鎮(zhèn)氣象預(yù)報(bào)進(jìn)行編輯。系統(tǒng)支持氣象標(biāo)準(zhǔn)的氣象電碼,同是還支持氣象預(yù)報(bào)文本格式。也就是說(shuō)我們可以將城市和天氣預(yù)報(bào)數(shù)據(jù)轉(zhuǎn)為這兩種格式中的一種,就可以解決城市與鄉(xiāng)鎮(zhèn)預(yù)報(bào)數(shù)據(jù)的快速而又準(zhǔn)確的導(dǎo)入和生成了。
(1)系統(tǒng)支持的數(shù)據(jù)格式有2 種,一種是標(biāo)準(zhǔn)的天氣代碼格式,由若干個(gè)五位數(shù)字組成,每組數(shù)字可由配置文件來(lái)定義,可代表著城市鄉(xiāng)鎮(zhèn)名、天氣現(xiàn)象及溫度;另一種是氣象文本格式;本文以氣象文本格式為例。系統(tǒng)的氣象文本格式(rpt 為文件后綴名)如下:
[標(biāo)題]
[日期時(shí)間],
[云圖]
[城市]
羅陽(yáng),,小雨,多云,19,27,,多云,晴,14,25
洲嶺,,小雨,多云,19,27,,多云,晴,14,25
司前,,小雨,多云,21,29,,多云,晴,16,27
……
配置文件主要是對(duì)氣象現(xiàn)象和天氣圖標(biāo)以及溫度的進(jìn)行對(duì)應(yīng)和匹配以及字幕模板文件的定義,從而保證了從氣象電碼或天氣文本到影視節(jié)目中氣象畫(huà)面的自動(dòng)又準(zhǔn)確的轉(zhuǎn)換。
城市與鄉(xiāng)鎮(zhèn)預(yù)報(bào)是由氣象臺(tái)制作,其內(nèi)容主要是鄉(xiāng)鎮(zhèn)名、明天天氣現(xiàn)象、明天溫度、后天天氣現(xiàn)象及后天天氣溫度組成;為了統(tǒng)一報(bào)文格式,也為了方便讀取,各要素之間用逗號(hào)隔開(kāi),溫度用數(shù)字體現(xiàn),由最低溫度和最高溫度組成,中間用“-”隔開(kāi);
羅陽(yáng),小雨,多云,19-27,多云,晴,14-25
洲嶺,小雨,多云,19-27,多云,晴,14-25
司前,小雨,多云,21-29,多云,晴,16-27
……
開(kāi)發(fā)語(yǔ)言為C#,C#(C Sharp)是一種強(qiáng)大的、面向?qū)ο蟮某绦蜷_(kāi)發(fā)語(yǔ)言,是專(zhuān)為 .NET 開(kāi)發(fā)而設(shè)計(jì)出的語(yǔ)言[2]。
(1) 開(kāi)發(fā)思路
讀取報(bào)文的每一行,在每一行中按分隔符號(hào)“,”將各要素放入數(shù)組中,再取出相應(yīng)的要素,再將溫度按分隔符號(hào)“-”取出最低溫度和最高溫度;再將各要素按氣象預(yù)報(bào)播出系統(tǒng)的氣象文本格式生成rpt 文件;
(2)C#的部分代碼如下:
string listfilename = Application.StartupPath + "\20190517.txt";
string[] alliness = File.ReadAllLines(listfilename, Encoding.Default);
string head = "[ 標(biāo) 題]" + Environment.NewLine + string.Empty + Environment.NewLine
+ "[日期時(shí)間]"+ 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);//生成氣象文本文件
在氣象預(yù)報(bào)播出系統(tǒng)中將生成的氣象文本文件引入后,就可以看到如圖1 的頁(yè)簽,也就可以生成非線(xiàn)性系統(tǒng)中對(duì)應(yīng)畫(huà)面的工程文件了。
在氣象影視節(jié)目“集約化”后,溫州城市及鄉(xiāng)鎮(zhèn)有100 多個(gè),按以前的手工錄入加核對(duì)將近一個(gè)小時(shí),而自鄉(xiāng)鎮(zhèn)預(yù)報(bào)自動(dòng)處理轉(zhuǎn)換為氣象文本文件的軟件應(yīng)用后,不用5 分鐘就準(zhǔn)確無(wú)誤的導(dǎo)入數(shù)據(jù),一方面可以大大減少了由于人工輸入帶來(lái)的低效率、數(shù)據(jù)錯(cuò)誤以及格式錯(cuò)誤等問(wèn)題[3],另一方面也優(yōu)化了氣象影視制作業(yè)務(wù)流程,提升了氣象影視制作的整體工作效率和節(jié)目質(zhì)量。