基于网格数据的内蒙古决策气象服务技术研究与实现

2020-03-01 10:16司瑶冰韩经纬李云鹏周恒超
沙漠与绿洲气象 2020年6期
关键词:格点色斑实况

司瑶冰,韩经纬,李云鹏,吴 昊,周恒超

(1.内蒙古自治区生态与农业气象中心,内蒙古 呼和浩特010051;2.内蒙古自治区气象台,内蒙古 呼和浩特010051;3.内蒙古自治区气象干部培训学院,内蒙古 呼和浩特010051;4.成都信息工程大学,四川 成都610000)

决策气象服务工作是气象部门向党政领导和各级政府部门传播重大气象信息的重要窗口之一,长期以来居于我国气象服务工作的首位[1-2]。2013 年内蒙古自治区气象局成立决策气象服务办公室以来,为内蒙古自治区党委、政府和各部门提供了大量综合决策气象服务材料,在自治区农牧业经济生产和防灾减灾中发挥了重要作用。目前根据内蒙古党政领导和部门需求,一份综合决策气象服务材料中主要包括实况监测分析、预报预测和历史统计分析三部分,产品中采用的是站点数据和预报员定性预报。另外,决策气象服务产品制作流程是根据业务人员主观判断后进行任务启动、加工分析和人工发布。随着气象科技发展和信息技术的不断提高,决策气象产品材料从内容到制作无法满足精细化和智能化决策气象服务需求。

2017 年,中国气象局天气预报业务由原来的站点预报发展为5 km 全要素格点预报[3],同期完成降水、气温、风、湿度、能见度和总云量等6 个要素共计15 种网格实况分析产品下发[4]。初步建立了逐1 h滚动更新、实时共享的全国5 km 分辨率0~30 d 和每日两次滚动更新全球10 km 分辨率的0~10 d 无缝隙精细化网格天气预报业务[5]。为此,国家和各省逐步对智能网格产品开展预报效果检验[6]和可视化平台的设计[7-9]。关于智能网格产品的应用与评估方面也做了大量工作[10-12]。2018 年内蒙古自治区气象局建立了基于B/S 结构的决策气象综合服务系统[13],将网格数据融入到决策气象服务系统平台,实现基于智能网格产品从启动制作、数据分析、产品展示、图形下载和产品自动生成,为提高精细化和智能化决策气象服务提供技术支撑。

本文主要介绍基于原有内蒙古决策气象综合服务系统构架,以智能网格预报和中国气象局陆面同化系统融合产品(CLDASV2. 0)实况作为基本数据源,确立决策气象服务启动标准阈值、阈值检测、格点数据可视化、图形产品自动生成和下载以及格点数据统计分析查询等技术方法研究和实现。

1 技术方法与设计

主要技术有NetCDF.jar[14]、Quartz[15]、Java 的MVC(Model-View-Controller,模型—视图—控制器)[16]。

NetCDF 是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata 项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据描述和编码标准,支持多维资料数据结构[17]。目前,NetCDF 广泛应用于大气科学、水文、地球物理等诸多领域[18]。本研究采用NetCDF 实现网格格点气象数据的快速提取。

Quartz 是OpenSymphony 开源组织在Job Scheduling 领域又一个开源项目,支持B/S 架构,利用Quartz 创建简单程序,实现气象格点海量数据的检索和调度。

MVC 是传统Web 应用开发中服务器端广泛使用的软件开发模式[19],具有高内聚、低耦合、可复用、可维护性高等特点,利用Java 的MVC 实现气象要素色斑图和格点图可视化展示。

分4 层设计:数据获取、数据处理、数据检测和数据可视化(图1)。

图1 设计流程图

2 技术实现

2.1 数据获取

采用的主要数据包括智能网格气象预报产品、CLDASV2.0 实况产品、地图数据和地理信息数据。智能网格预报、CLDASV2.0 数据和灾情数据来源于综合气象信息共享系统(China Integrated Meteorological Information Sharing System),CIMISS[20]。预报数据包括中国范围0~3 d 的逐3 h 降水、气温和UV 风场等气象要素预报,空间分辨率为0.05°×0.05°。实况数据为欧亚范围逐1 h 和1 d 的降水、气温、风场、土壤相对湿度、气压和比湿等,空间分辨率为0.0625°×0.0625°。地图数据使用WebGIS 开源瓦片天地图MapBox(https://www.mapbox.com/)[21]。

智能网格预报产品和CLDASV2.0 中的风场、气压和比湿从CIMMIS 定时访问MUSIC 接口提取数据,根据资料推送频率,设定数据采集定时策略,保证数据的实时稳定接入,同时监控采集进程运行状态。

CLDASV2.0 实况产品中经过验证后的降水、气温和土壤相对湿度从内网共享文件夹(\172.18.112.19dqfw awcmacast afpCLDAS) 提取,使用Smb 协议完成服务器之间通信和交互,定时扫描文件夹下文件,按照文件生成时间进行增量扫描和接入,获取逐小时降水、气温和土壤相对湿度数据。

地理信息数据是通过在线注册天地图服务,实现GIS 底图获取,利用Geoserver GIS 服务将内蒙古自治区国界、省界、中小河流、水库、铁路和道路等shp 数据发布为GeoJson 格式文件,用于叠加地理信息显示。

数据采集后,按照对应资料类别编码,将文件索引信息(文件名、文件路径、文件大小、文件日期等)分层存储在结构化数据库中,将文件存储在分布式文件系统HDFS 中,并标记文件状态等待处理。

2.2 数据处理

数据处理使用NetCDF.jar 技术,实现气象网格数据的读取和解析。主要包括对智能网格预报数据和CLDASV2.0 产品实况数据的JSON 格式转换;对格点数据生成色斑图的插值处理、CLDASV2.0 数据统计处理和地图叠加几部分。

2.2.1 JSON 格式转换

利用XXL-JOB 定时扫描待处理状态文件,以保证数据处理实效性。智能网格预报为GRIB2 数据格式,CLDASV2.0 实况为NC 数据格式,将数据进行解析,统一转换成JSON 文件。预报数据解析内蒙古经纬度区域范围内开始与结束经纬度信息、经纬度格点数、分辨率、要素值和预报时效;实况数据解析内蒙古经纬度区域范围内开始与结束经纬度信息、经纬度格点数、分辨率、要素值。

智能网格降水和气温预报解析如下:

其中,气温预报的单位是国际单位K,根据用户需要转换成℃。

降水预报:Prefore= Pre [timeIndex][latIndex][lonIndex];

气温预报:Temfore=Tem [lonIndex+ latIndex*_lonCount+ timeIndex * (lonCount)*(latCount)] -273.15f;

CLDASV2.0 中降水、2 m 气温、10 m 风速和土壤相对湿度实况解析如下:

降水实况:Pre=Pre[lonIndex+latIndex*lonCount];

2 m 气温实况:Tem=Tem [lonIndex + latIndex*lonCount] - 273.15f;

10 m 风速实况:Win=Wind[lonIndex + latIndex*lonCount];

土壤相对湿度:Rsm=Soil [lonIndex + latIndex*lonCount];

2.2.2 插值处理

为提高图形展示和自动生成色斑图的分辨率,避免图像失真,采用双线性插值处理方法,是有两个变量插值函数的线性插值扩展,核心是在两个方向分别进行一次线性插值。

插值处理部分代码为:

2.2.3 格点历史数据统计

将格点实况产品NC 文件解析为结构化数据后,存储在分布式Postgres 数据库中,然后利用数据库的快速检索和分组查询统计技术进行格点数据统计,由于内蒙古范围广,格点数据量大,使用分库和分表的设计,利用数据库索引技术实现快速统计,使用POI 技术将最终的数据导出为Excel 文件。

2.2.4 地图叠加

气象数据通过解析和处理,最终按照经纬度叠加到GIS 地图上,同时加载时按照可视化区域范围和地图缩放层级,控制加载的格点数和范围分布,解决格点数据加载的性能问题。

2.3 数据检测

数据检测主要是对决策气象服务产品制作启动标准阈值进行检测,检测到实况数据和预报数据达到阈值后,在WeBGIS 上显示,提示决策气象服务值班人员制作决策气象服务产品。

2.3.1 阈值确定

何时启动制作决策气象服务产品,需根据已发生天气和未来发生天气情况进行判断,也就是决策气象服务的敏感性分析[22]。统计近10 a 内蒙古地区暴雨洪涝、干旱、冰雹、大风、冻害、雪灾、低温冷害和沙尘暴等气象灾害造成的经济损失、死亡人数、农业损失和农业成灾面积占受灾类型的比重(表1),得出暴雨洪涝灾害在8 类灾害中造成经济损失最为严重,死亡人数最多,农业经济损失和成灾面积最大。沙尘暴造成的经济损失最轻,对农业损失和成灾面积为零,虽然有死亡人数,但较少。根据统计结果建立暴雨洪涝、干旱、大风、冻害和雪灾的决策气象服务自动响应启动阈值,由于冰雹灾害形成机理较为复杂,且预报难度大[23],未建立冰雹灾害阈值。暴雨洪涝灾害阈值参考李喜仓[24]关于暴雨洪涝灾害评估研究中暴雨洪涝致灾危险性的降雨量级确定;干旱启动标准阈值的设定采用土壤相对湿度确定[25-26],大风灾害阈值按致灾性大风定义和风力等级标准确定[27-28],冻害是以最低温度低于零度作为阈值[29],雪灾阈值按照内蒙古地区任意一个气象测点的实测气温稳定持续在0 ℃以下的月份内24 h 降水量≥8 mm的降水过程确定[30]。以上所有阈值均是基于网格格点气象要素数据(表2)。

2.3.2 阈值检测方法

采取Quartz 技术对敏感性检测进行任务调度,对整个任务进行管理和过程日志监控,因Quartz 采用了基于多线程的架构,保证敏感性任务多并发执行检测。每5 min 通过动态数据库Sql 语句对存储在数据库中智能网格预报和CLDASV2.0 降水、土壤相对湿度、风速和气温格点值进行检测,检测到达到阈值时,启动制作决策气象服务产品。

2.4 数据可视化

通过WebGis 的Openlayers 技术实现气象网格数据色斑图在地图上的叠加,根据色斑图所属地区范围进行叠加。格点数据根据可视化区域和缩放层级进行数据筛选和过滤,减少GIS 地图上叠加的数据量,提高页面加载的性能效果。基于前端页面的实时渲染可视化,在前期对数据准备和加工的基础之上,主要实现地图底图信息叠加显示、地理信息展示,格点数据按区域裁剪筛选将智能网格预报和CLDASV2.0 实况气象要素色斑图展示和图形下载。

表1 各类气象灾害对经济、人口、农业损失占比

表2 基于智能网格产品格点要素决策气象服务制作启动标准阈值

用户根据智能网格预报产品和CLDASV2.0 实况产品类型(如最高气温、最低气温、降水、风速等)可按时间(间隔1、3、6、9、12、24 h)查询预报和实况信息,通过点击时间列表中的时间和显示方式,查看该时刻的降水色斑图或格点图,点击播放按钮,可以动画播放所选时间段的降水色斑图或格点图,也可修改播放时间间隔。图形下载是根据决策气象服务产品制作中需要下载的要素预报或实况色斑图,当点击色斑图下载后自动将智能网格预报产品或CLDASV2.0 实况产品插入到Word 模版中。

2.4.1 地图底图信息展示

采用OpenLayers3.js 进行地图矢量数据源shp文件绑定展示,各地界使用GeoServer 地图服务加载边界JSON 数据文件。同时对部分地理信息(如河流、水库、农田和地灾点等)使用Openlayers3.js 加载shp 数据源。

2.4.2 格点数据裁剪

在页面进行展示中,根据地图可见区域包括内蒙古自治区行政区域、12 个盟市级区域、和103 个旗县级区域的所属经纬度范围、地图缩放层级,对格点数据进行裁剪筛选显示,提高页面可视化展示效率,使页面加载更快。

具体方法:

步骤1:使用Openlayers3.js 的Map.getView().calculateExtent()方法获取地图可视化区域范围的经纬度坐标,使用Map.getView().getZoom()方法获取地图当前缩放层级。

步骤2:基于获取的可视化区域范围,动态对格点数据进行处理,筛选出当前可视范围用于加载格点数据集,叠加到GIS 地图中进行显示。

步骤3:基于获取的地图当前缩放层级,动态计算格点数据加载间隔,按照不同层级使用不同的数据步长进行叠加到地图上,提高页面加载效率。

2.4.3 色斑图生成

从数据库中获取对应气象要素的色标数据,从GRIB2 数据文件中解析出具体的要素值数据,根据要素值数据和色标值对应,并使用插值算法进行色斑图绘制,绘制时进行不同颜色渐变的平滑处理。

步骤1:根据智能网格预报订正后的产品中获取GRIB2 文件和CLDASV2.0 实况产品NC 文件,使用Netcdf.jar 进行数据解析,解析出具体的要素值和要素名,存储在二维数组中。

步骤2:根据已获取的要素名,从数据库中获取对应的色标数据,利用色标数据中的rgb 值,要素值的二维数组数据集进行数据对应。

步骤3:使用插值算法画出色斑图,同时画出对应色标,然后将色斑图和色标合成一张产品图,根据图片所属地区经纬度范围,叠加到GIS 地图中进行显示。

步骤4:内蒙古自治区、盟市和旗县三级色斑图产品绘制,是根据地区所属经纬度范围进行GRIB或者NC 文件解析的数据筛选出新的二维数组,其中NC 文件部分数据量较大,需去除部分国外的经纬度区域数据,用于绘制对应地区的色斑图。

3 实验与测试

3.1 阈值检测结果

利用CLDASV2.0 数据产品,对阈值检测进行实验。2020 年3 月18 日11—16 时内蒙古中部地区出现大风天气,乌兰察布市气象局发布大风蓝色预警。以10 m 风速为例进行验证,数据获取地址(\172.18.112.10dqfw awcmacast afpCLDAS),检测2020 年3 月18 日15 时,风速≥14 m/s 以上的阈值,检测结果与实况一致。图2 为格点阈值提醒图标放大后显示的乌兰察市察哈尔右翼中旗地区,可以看出精细到乡镇和苏木,如格点对应库伦苏木检测到风速达17.9 m/s,区域站点实测风速为18.0 m/s,格点实况检测数据与区域站点实况数据相差0.1 m/s。

图2 敏感性分析启动标准阈值检测结果显示

3.2 可视化显示和预报结果验证

从内蒙古综合信息网(http://10.62.89.55/cimissapiweb/)获取内蒙古自治区气象台订正后的GRIB 文件,验证智能网格预报产品的可视化显示,以最低气温为例。在平台上选取时间,选择2020 年3 月18 日,时效24 h,预报产品类型选最低气温,显示方式选色斑图,显示结果(图3),选择色斑图下载,下载的色斑图自动生成预报结果进行服务。

图3 智能网格预报图可视化显示(2020 年3 月18 日24 h 最低气温预报)

选取2020 年3 月1 日智能网格预报的3 月2日最高气温、最低气温、降水量和2020 年3 月2 日区域站观测最高气温、最低气温和降水量的实况图进行对比分析(图4)。最高气温和最低气温预报与实况基本一致,最高气温在内蒙古自治区西部、中部和东部偏南地区从地理分布到量值分布具有高度的一致性。在东北部分布趋势一致,地形地貌影响特征均一致,但在大兴安岭西侧略有差异,预报较实况略有偏小。最低气温全区分布趋势一致,特别是东北地区,从地理分布到量值分布相当一致,地形影响的特征得到明显的体现。降水预报量级和实况大部一致,中部和西部表现较好,但东部地区降水面积有一定误差。

图4 2020 年3 月1 日智能网格24 h 预报最高气温(a)、最低气温(b)、累计降水(e)和2020 年3 月2 日区域站观测最高气温(d)、最低气温(e)、24 h 累计降水(f)实况

3.3 数据统计

CLDASV2.0 实况数据统计计算从2014 年开始,利用分布式数据库Postgres 的快速检索功能,实现格点数据按照时间和空间的维度进行查询和统计,统计过程中对任意时段数据进行求和计算;对于大数据量快速计算使用数据库分表、分区、索引技术实现格点实况数据计算。用户按时间和要素类型进行选择统计任意时间段平均以及求和等计算。选取2016年8 月1—31 日数据进行统计,得出实验结果(图5)。

图5 2016 年8 月1—31 日CLDASV2.0日降水量统计

4 结论

(1)利用智能网格数据确立决策决策气象服务启动标准阈值和数据检测。采取Quartz 技术,通过动态数据库Sql 语句对数据库中智能网格产品进行检测,当检测达到启动标准阈值时,基于WebGIS 显示检测结果,启动制作决策气象服务材料。

(2) 根据决策气象服务业务需求,采用OpenLayers3.js 技术方法对智能网格预报和CLDASV2.0 实况数据进行地图叠加、层级缩放展示和网格气象数据要素色斑图显示,根据用户需求,按时间、区域进行查询显示。采用Netcdf.jar 技术对数据进行解析,使用相关插值算法得出所需不同行政区域的色斑图或格点图,根据需求将色斑图下载,实现智能网格预报和实况产品的自动生成。

(3)利用分布式数据库Postgres 的快速检索功能,实现格点数据按照时间和空间的维度进行查询和统计。

(4)利用订正后的CLDASV2.0 大风实况数据对敏感性启动标准阈值进行试验,结果达到显示标准。

(5)对智能网格预报最低、最高和累计24 h 降水与区域观测站实况数据进行检验,均达到准确客观的显示效果。

将网格数据应用于内蒙古决策气象服务业务,对精细化决策气象服务有一定支撑,但在产品预报准确率上还需进行检验。在业务流程的智能化方面,决策气象服务启动标准设定需要在业务实践中不断完善,充分利用计算机学习技术和计算方法,真正实现智能化启动。

猜你喜欢
格点色斑实况
带有超二次位势无限格点上的基态行波解
一种电离层TEC格点预测模型
格点计算器
乡村小学的愿望与现实——宜君乡村教育实况
巧手饰色斑
天舟一号货运飞船发射实况掠影
可爱潮咖们的独门彩妆实况直播
基于计算机图像处理的人脸皮肤表面色斑评估的可行性分析
格点和面积
脸上色斑暴露健康隐患