APP下载

基于C#的气象预警短信编辑工具

2019-08-21农明哲廖胜石李华实计凤妮

农家致富顾问·下半月 2019年5期
关键词:编程

农明哲 廖胜石 李华实 计凤妮

摘 要 利用C#提供的窗体工具、字符串编辑及其他计算功能编写了可制作本地特色气象预警信号短信的崇左预警短信编辑工具。该工具能根据本地预设的RTF格式短信模板的要求,调用广西区气象数据库或CIMISS中的逐小时雨量、风速、能见度等气象要素数据并进行统计,为制作内容丰富的短信提供了数据基础。本工具的读稿功能可辅助审核短信内容,具有一定的客观性,有效排查错别字,提高气象预警短信发布的准确率,可推广到各基层台站应用。

关键词 c#编程;预警信号模板;气象灾害预警短信;文本检查

2018年7月20日起广西各级气象部门正式启用广西突发事件预警信息发布系统(下文简称省突)编写预警信号通知单和全网发布短信,不再使用广西天气预报服务集约化业务系统制作预警通知单。省突新版气象预警短信需要通过人工编写较复杂的140字短信,虽然有预设一些参考模板,但实际操作较为复杂,在对短信内容的编辑提炼时较容易错漏,耗时耗力,另外,省突没有读取相关气象要素并统计后插入到新版气象预警短信内容中的功能,尚需人工统计,未能达到快速准确制作与解除气象预警短信的要求。为提高应对突发天气事件时与各相关部门间的协作联动效率,提高气象灾害预警能力,本研究致力于开发一套新版气象预警短信发布与解除的制作工具,可及时准确、方便快捷地制作预警信号通知,可实现机器统计自动气象要素数据,并插入气象预警短信中的功能,减轻业务人员负担,避免人工手动统计、输入气象要素的出错。

在本研究中,考虑到预警短信制作的精简性、稳定性、通用性,将以C#编程为主,充分利用其窗体设计、调用SQL语言、引用动态链接库等功能,制作了能调用本地短信模板的预警短信编辑工具。该工具界面整洁,可以迅速导入本地自定义预警模版,在短信模板基础上插入调用气象要素数据,利用C#读取区局数据库逐小时气象要素数据或CIMISS提供的逐小时气象要素数据,并进行整理、统计运算,最后将统计结果插入到新生成的预警短信中。本工具有机器读稿功能,可通过计算机扬声器播放短信内容,辅助审核短信,有利于发现错别字。

1 崇左市预警短信编辑工具介绍

崇左预警短信编辑工具的操作方法简单直观,编辑时按序号从上到下、从左到右依次选择、修改,分别为①发布短信时间、②预警信号种类、③预警信号模板类型、④发布状态、⑤预警级别、⑥地点、⑦数据源、⑧生成短信。当到第八项点击“⑧生成短信”按钮即可按选项在本地程序文件夹中选取事先编辑好的RTF(Rich Text Format,多信息文本格式)格式预警短信模板(*.rtf,可用Word或WPS编辑保存),在本窗体最下方富文本框(RichTextBox)中显示富文本内容,并可再框中实时编辑文字内容。同时,若该预警模包含数据申请代码,则另外弹出一新的、优先级最高的“变量一览”弹窗,可核验数据或选择新的数据查询范围重新生成短信。关掉“变量一览”弹窗才可以回到主窗体继续编辑短信。值得注意的是,本工具需要提前在本地设置好rtf短信模板,事先修改好文字的内容、字号和颜色,达到提醒效果。

相对于许多网页和本地化工具使用的文本框(TextBox),富文本框提供了简单的编辑字体、字号、颜色等功能,有效将文字显示内容表现得丰富醒目。编辑文字完成以后,当把该富文本框的内容复制粘贴到省突短信文本框时,操作系统会自动转码,即去除字号参差不齐、颜色不一的特征,转为网页规定的统一字号、字体、颜色(通常为黑色),并将文字表达内容正确粘贴到框中。

在本地短信模板文件夹中,在相应的预警种类文件夹新建一RTF文件,根据程序要求,该文件名命名规则为:发布状态(发布,解除,继续发布,更新)+预警类型(暴雨,雷电,大雾等)+级别(红色,橙色,黄色,蓝色)+备注(前括号+备注内容+后括号)+文件后缀名(.rtf)”。该RTF短信模板内容需要如下编辑。“#…#”代表本工具识别的参数,可用参数已经在程序中设计好,一一对应着相关的统计运算。合理使用参数可以灵活应用气象数据,符合所需,提高短信编辑的效率。

2 调用小时数据

为方便统计,在预警短信中使用的数据是由逐小时气象要素数据统计得出的。由于统计雨量相对于统计其他气象要素数据需要计算累积量,计算方法特殊,下文以统计累积雨量的方法解释统计思路。

首先设计好站点信息列表,为之后气象要素统计提供筛选、统计范围依据。站号信息以文本(.txt)格式保存在本地。根据市县气象台实际应用经验,主要的站点信息要素有5列,分别是县名、乡镇名、短信用名(村屯名、单位名、景点名等)、站号、站点级别。由于站点信息数据量远远小于气象要素的数据量,考虑该工具的扩展性与推广性可以适当增加其他信息,例如可以根据实际需求添加省名、经纬度、海拔高度等信息要素。值得注意的是,“站点级别”可划分为:①国家站②旧气象站③乡镇区域站④村区域站⑤其他区域站(工厂、农场、景点等)。建议在程序中使用数据表(DataTable),导入站点信息,充分发挥DataTable的排序、筛选、统计等作用。

其次,设计调用气象数据的数据表(结构体或数组),目的是减少资源占用,提高统计效率。气象要素数据表可设计为如下五列:①时间(长整数),②站号(字符串),③乡镇名(字符串),④具体地点(字符串),⑤气象要素值(浮点数)。其中,“气象要素值”的列名可在程序设计中根据统计结果改变,例如载入雨量数据时,第五列名改为“r1”代表前1小时累积雨量,统计3小时的累积雨量后再改为“r3”代表前3小时累积雨量。

该工具在气象内网获取逐小时气象要素数据有两种方式,①通过SQL语言访问广西区自动站气象数据库;②访问MUSIC接口(Meteorological Unified Service Interface Community,气象数据统一服务接口)。根据实际应用经验发现,使用常规的非并行运算方法从广西区气象数据库获取大量数据比基于CIMISS的MUSIC接口快,但广西区气象数据库在每小时整点或半点前后几分钟会暂停数据查询服务以保证最新气象数据收录成功。因此本工具默认使用广西区气象数据库,当遇到错误时会自动转而访问MUSIC接口;也可以在生成短信或查询数据前手动选择数据源为CIMISS。另外,MUSIC接口的優势是网站提供了许多数据调用示例作参考。

在获取小时气象要素数据的同时要进行适当地排序,再将获取到的临时数据表依次对准站号、时间后将有效气象要素数据放入预先设计好的整齐空数据表中,接着妥善做好缺测处理,对逐小时、逐站气象要素进行统计。最后将统计结果大小再排序,可获得①气象要素极大(小)值及其所在地点;②气象素值最大的三个地名、及其要素范围;③平均数。最后将已经复制到富文本框中的短信模板内容的参数替换为所需的气象要素数据,得出带有气象要素统计数据的短信初稿。

3 朗读功能

本机朗读功能是审核文字内容的一种客观的方式,通过聆听计算机扬声器按短信内容播放的语音,相对于单人独自阅读审核可更有效发现文字内容中的错误。另外,按预警发布流程,大部分气象预警短信内容会通过气象大喇叭渠道播放给公众,使用本工具提前试听检查播放内容可预防错漏。操作面板上,本工具根据富文本框中的内容进行朗读,并可以实时调整语音速度、音量,满足不同用户习惯。该功能的C#编程需引用微软推出的语音技术接口SAPI(The Microsoft Speech API),主要调用其speechLib.dll即可令程序实现扬声器朗读富文本框中的短信稿件内容。

4 小结

预警短信编辑工具充分利用C#字段函数、窗体控件、本地文件导入等功能,界面清晰简单,运行稳定。它在导入事先设计好的短信模板的基础功能上,发挥富文本在短信编辑中的使用优势,以醒目的字体、字号、颜色标记文本中的重点内容,可降低人工编写短信内容时出现错误的几率。朗读短信的功能可让用户从客观的角度审核短信内容,有效排查错别字。本工具大大提高气象预警短信发布的准确率和效率,可推广到各基层台站应用。

参考文献:

[1] 陆小玉,李佳颖,梁维亮.近年广西气象灾害预警信号质量评估[J].气象研究与应用,2018,39(4):80-82.

[2] 李岩,周文志,唐熠.桂林11月深秋极端天气分析与专业气象服务对策[J].气象研究与应用,2016,37 (01):52-55

第一作者简介:农明哲(1991-)男,壮族,广西马山人,大学本科,助理工程师,主要从事中短期天气预报、短临预警工作。

猜你喜欢

编程
无屏幕编程,不只是一种儿童编程工具
玩游戏学编程,Blockly Games上手玩
用Scratch解这道高考题
《数控车床加工工艺与编程》教案设计
纺织机上诞生的编程
“少儿编程”亟需市场规范
学编程是急不来的
少儿编程的喜与忧
88元抢5节直播编程课,轻松入门超越同龄人
编程屋完成数百元万天使轮融资