怀化市CIMISS资料查询统计系统的设计与实现
2021-05-15王文闻王光明黄祯珍黄梦妮毛承敏
王文闻,王光明,黄祯珍,黄梦妮,毛承敏
(湖南省怀化市气象局,湖南 怀化 418000)
0 引言
全国综合气象信息共享系统(China Integrated Meteorological Information Sharing System,简称CIMISS)集气象数据收集、加工处理、存储管理和共享服务于一体,主要包括数据收集与分发、数据加工处理、数据存储管理、数据共享服务、业务监控、计算机与存储、网络与安全等7个技术系统[1],系统建设的目标是实现规范的气象数据业务流程和各类气象数据的统一、规范、高效管理[2],为气象业务和相关科研用户快捷便利地获取气象数据提供使用环境[3-5]。
目前,CIMISS系统已经在湖南省气象部门业务化运行,数据集约化和一体化管理保证了数据的准确性,具备为业务单位提供数据应用服务的能力[6]。由于湖南省中小尺度天气资料应用系统停用,造成地市级气象台站预报人员从上级获取实时或历史气象资料的途径基本中断,极大地影响了本台的预报质量,虽有网页版湖南省气象业务内网平台[7]作为补充,但仍有许多CIMISS核心库[8]中的气象数据不能获取(如历史资料)。因此,地市级气象台站有必要开发建立一个基于CIMISS系统并适应于本地的气象数据服务产品、预报预测、数据监测等综合信息系统,实现各类信息的汇集和共享,为本地气象服务提供更有力的业务支撑。
1 系统概述
基于CIMISS数据,系统采用C/S架构,以Visual Studio 2010开发平台为依托,C#编程语言为核心,数据以SQL Server 2005为基础,图形以SharpMap为重点进行联合编程,获取资料(实时、历史)存于本地数据库,然后进行统计分析,形成表格、文字、曲线图、色斑图等可视化产品。系统分为接口、统计分析、产品输出等3个模块,流程如图1。
图1 系统流程图Fig.1 System flowchart
2 数据接口与数据存储
2.1 数据获取与接口
气象数据统一服务接口(MUSIC:Meteorological UnifiedService Interface Community)为用户访问CIMISS提供了全国统一、标准、丰富的数据访问服务和应用编程接口(API)[9],系统采用客户端调用
方式获取数据,通过API方式查询,得到内存对象结果集(retArray2D),将结果集通过遍历算法导出到数据表dataT中。关键代码如下:
DataQueryClient client = new DataQueryClient();
string interfaceId = "getSurfEleInRegionByTimeRange";//访问接口
Dictionary
string item = "Station_Id_d,TEM,TEM_Max,TEM_Min";//检索要素
param.Add("dataCode", "SURF_CHN_MUL_HOR_N"); //资料代码
param.Add("timeRange", "(20150903020000","20150903080000)");//检索时间
param.Add("adminCodes", "430000");//检索行政区
param.Add("elements", item);
RetArray2D retArray2D = new RetArray2D();
client.initResources();//初始化接口服务连接资源
int rst = client.callAPI_to_array2D("用户ID","用户密码",interfaceId,param,retArray2D);
DataTable dataT = new DataTable();//定义数据表
string[] s = item.ToString().Split(new char[] { ',' });
for(int i = 0; i < retArray2D.data.Length; i++) //向数据表添加数据
{
dataT.Rows.Add();
for(int j = 0; j < s.Length;j++)
dataT.Rows[i][j] = retArray2D.data[i][j].ToString();
}
通过上述方法获取所需的CIMISS数据录入数据库,具体资料和访问接口见表1。
表1 资料名称与数据接口Tab.1 Data name and data interface
2.2 数据入库
系统开启后,利用C#的多线程并行处理技术以及CIMISS系统提供的MUSIC接口,自动进入后台数据入库方式获取所需业务数据,经加工处理后自动传输到怀化市AWS年库和气候资料数据库中,实现数据采集、传输、存储和管理等功能。
数据录入程序对分钟、逐小时和日值数据处理时,分别间隔2 min、5 min、1 440 min从CIMISS系统中自动对数据进行读取,以便实现数据的及时入库(也可手动获取)。
3 统计分析
3.1 实时雨量统计
①时段降雨量分析:对当前时间最近几天或几小时湖南境内所有站点累计雨量进行统计,内容为:时间段、最大累计量、出现地点、量级站点数、最大小时雨量及出现地点和时间;同时将怀化市境内的雨量与全省比较,也进行相应项目的统计(图2)。
②分钟降雨量监测:以当前时间为准,自动检测怀化市及周边地区逐60、120、180 min所有站点降雨量;如果境内某个或某几个站点累计雨量达到短时强降水标准[10](配置文件中可修改),则发送语音预警,提醒预报员是否要对公众发布暴雨预警信号;如周边地区有站点的雨量达标,则提醒预报员加强本地区强降雨的监测。
语音预警的技术实现方法:在系统根目录下预录一个“语音预警.wav”文件(内容自定),当检测到某站累计雨量达到短时强降水标准时,自动调用private void play()函数进行语音播放(有音响连接),关键代码如下:
private void play()
{
SoundPlayer player = new SoundPlayer();
player.SoundLocation = Application.StartupPath + "语音预警.wav";
player.Load();
player.Play();
}
图2 某时间内雨量统计Fig.2 Rainfall statistics at any time segment
3.2 气候资料统计
3.2.1 降雨对比分析 ①雨量分析:当年任意时段降雨量与历史同期的任意年的气候平均雨量(一般为30 a)比较(图3),显示主要项目有:当年的总雨量、历年同期平均雨量以及距平百分率。
图3 2019-04-01—2019-05-08降雨量与历年同期对比分析Fig.3 Comparative analysis of accumulated rainfall from 1 April 2019 to 8 May 2019 with the past years
②极值统计:统计历年同期相应时段内的日最大降雨量及出现日期,最多(最少)降雨量及对应年份,平均雨日、最多(最少)雨日和出现年份。
3.2.2 气温对比分析 ①平均气温分析:当年任意时段平均气温与历史同期的任意年的气候平均气温(一般为30 a)比较(图略),主要内容为当年的平均气温、历年同期平均气温以及二者之差值。
②极值统计:统计历年同期相应时段内各站日最高(低)气温及出现日期。
3.2.3 气候值分析 降雨和气温的对比分析是基于当年前期实况的分析,而要了解当年后期任意时段的气候值,修改图3时间段即可得到降雨、气温的气候平均值以及相应时段的极值和出现日期。
4 产品输出
通过收集资料,统计分析后,形成表格、文字、曲线图、色斑图(国标色)等可视化产品。
4.1 表格文字产品
各模块表格中的数据,通过双击均可导出至Excel表中,或者是粘贴到文本中均可。
4.2 曲线图、色斑图产品
①实时资料:左键(右键)单击某模块表格中的数据(单站整点资料有115个数据),均可生成国标色气象要素色斑图(某站某要素趋势图),见图4、图5;右键点击图4站点(小红圈)也可显示图5;同时对图4可任意放大、缩小,显隐站名、要素值、色斑、地图等漫游操作。
图4 2019年05月9日15时湖南气温分布Fig.4 The temperature distribution in Hunan at 15∶00 BT 9 May 2017
图5 过去24 h高温趋势Fig.5 The trend of highest temperature in the past 24 hours
②气候资料:对某时间段的降雨量(气温)、距平和距平百分率(图6)均可形成直观、形象的色斑图;同时也可形成该时间段全市(某站)的降雨量、平均气温与历年同期相比较的曲线图(类似图5,此时横坐标为年份),从该图上可以看到,当年该要素在历年当中所处的位置。
图6 降水量距平百分率(%)Fig.6 Percentage of precipitation anomaly (%)
5 结语
系统投入业务运行后,预报员可快速地获取各类实时直观、形象的服务产品,对提高短期、短时预报质量有一定作用;在气候分析和决策服务方面,提高了决策文件的准确性和时效性、预报人员的工作效率、工作质量和服务质量,使得决策产品更富有说服力,系统具有良好的推广使用价值。系统只需调整获取站点信息时调用MUSIC接口的站点参数和市级地图数据,即可无障碍地推广应用到气象系统其他有相关使用需求单位。