陈 晴 杨 明 陈晔峰 肖 云 吴书成 吕 梁
(浙江省气象信息网络中心 浙江 杭州 310017)
“全国综合气象信息共享平台(CIMISS)”是一套集数据收集、处理、存储管理、共享服务、业务监控一体的综合气象信息业务平台[1]。该系统存储了包括实时观测数据、产品生成数据以及历史整编数据等在内的14大类气象数据[2],为气象部门及相关行业用户提供综合气象探测资料和气象产品的共享服务,满足现代气象业务、科研和服务对气象信息的需求。目前各气象业务系统生成的产品数据存在不一致的情况,其主要是由于各业务系统数据入口不统一,算法不同,数据的准确性难以保证,并存在数据冗余的问题[3-6]。CIMISS 系统的推广和应用为国、省、地、县各级精细化、网格化和多样化的气象业务应用需求提供了统一的气象数据支撑平台,实现数据集约化、一体化管理,保证了数据的准确性[7]。
本文旨在讨论CIMISS在省级气象业务系统中应用的有效流程和方案,在不改变省本级气象业务系统现有总体业务流程和系统架构的基础上,实现本地化系统与CIMISS 系统的无缝对接,进一步提高气象数据的服务能力和访问效率,为其他气象业务系统接入CIMISS数据环境提供一定的参考。
系统体系结构如图1所示,主要包括4个层次,自底向上依次是:数据访问层、组件层、业务逻辑层、表示层。其中数据访问层负责对数据的访问调度,组件层主要是系统的内部组件设计,业务层对应系统业务逻辑的处理,表示层负责系统的终端显示,为用户提供交互式操作的界面。
图1 系统体系结构
结合气象业务的特殊性,按照功能划分,系统主要包括以下几个部分:
气象数据处理:支持离散型、网格化型以及栅格型等结构类型气象数据的解析,并根据需要将气象数据输出为多种格式(shapefile/json/kml/影像等)。支持的气象数据产品包括气象站点数据、格点数据、雷达产品以及卫星云图产品等。
气象可视化及缓存:可视化提供对气象数据点、线、面、体的绘制,为用户提供多种形式的可视化效果;运用内存数据库技术和静态缓存技术,支持对海量气象数据的快速访问。
气象查询分析:支持气象要素的检索及数据文件的下载;支持对气象数据的采样、插值、等值线或等值面的生成、平滑处理等功能[8]。
地理信息系统(GIS)功能: 支持对地图图层的管理及对地理数据的查询和操作;支持基于GIS的空间查询和分析,包括对气象数据的提取分析,可视化分析等;支持地图的制作,图形显示等。
气象数据是气象业务系统的核心,具有要素种类多、覆盖面广、时效性强等特点。省级气象业务系统处理的气象数据统一从CIMISS气象数据服务接口获取。
目前,气象业务系统数据大多数从本地气象数据中心获取,通过读取原始文件、访问数据库、调用本地接口读取数据等方式。在获取数据的同时,气象业务系统同时会将生成的产品数据写回到本地气象数据中心。通过围绕CIMISS系统本地化业务应用开发,优化数据加工处理流程,建立统一的数据服务接口。CIMISS数据环境搭建完善后,业务系统数据直接通过CIMISS数据服务接口获取,生成的产品数据通过CIMISS数据服务接口回传到CIMISS数据环境中。气象业务系统接入CIMISS数据环境的数据访问设计图如图2所示。
图2 数据访问设计
2.1.1 配置文件的设计
基于XML的定制软件设计方案,以针对气象产品类型的XML配置为基础,通过编辑XML配置文件中的参数,实现对软件中的气象产品的增删、修改操作、获取不同类型气象数据的方式、获取数据后返回的类型。配置文件使配置参数灵活,使内容与结构独立,有效地提高了软件的可扩展性[9]。系统接入CIMISS数据环境后,XML配置文件从根节点进行构造,在根节点下,依据实际开发中的需要设置属性。
图3的上部分为系统接入CIMISS数据环境前数据产品部分的配置,Item根节点下title表示产品名称;url包含了产品的子配置文件信息、文件路径、文件的通用格式以及文件时效。图3的下部分为系统接入CIMISS数据环境后数据产品部分的配置,CimissItem根节点下title表示产品名称;titlemask表示标题;serverip表示通过接口获取数据的ip地址;userid表示访问的用户名;pwd表示访问的密码;interfaceid表示访问的接口ID;datacode表示资料代码;dataformat表示获取数据后返回的数据格式;url根据获取数据类型的不同,配置也不同:格点数据的配置包含了产品的配置文件,产品时效,经纬度范围,需查询的要素,文件名称的通配符;站点数据的配置包含了产品的配置文件,产品的查询条件,文件名称的通配符产品时效;datatype表示查询数据的类型(包括grid格点数据及station站点数据);minutes表示产品分钟级时效。
图3 业务系统接入CIMISS数据环境的XML配置文件图
2.1.2 基于CIMISS接口的气象数据检索
CIMISS气象数据服务接口是基于CIMISS数据环境,面向气象业务和科研,提供统一、标准、丰富的数据访问服务和应用编程接口(API)[10]。CIMISS针对不同的气象资料建立单独的访问接口,每种资料接口提供多个功能接口、每个功能接口具有不同的检索参数,可实现按时间点、经纬度范围、统计时段等不同参数检索。通过输入参数调用CIMISS API提供的数据检索接口获取气象数据和产品,包括台站信息的查询,站点资料的查询、统计,格点资料的检索、解析及裁剪,文件产品(雷达产品、卫星云图、数值预报产品)的检索、下载等。具体调用方法见表1。
表1 CIMISS接口调用方法
通过API检索结构化数据包括站点要素资料、格点数据中单点或多点的要素值、格点数据中一个单场的数据、台站元数据信息、资料字段属性信息等;检索文件列表信息的接口;获取封装成base64格式的图片文件。callAPI_to_serializedStr方法获取的数据以序列化的字符串(xml/json/html/text)形式返回,callAPI_to_array方法获取的数据以二位数组的形式返回。
根据数据结构的差异,气象数据主要可分为离散型数据、网格化数据以及栅格类型的数据。气象数据需经过解析处理后方可实现可视化,数据解析方式上,目前大多数气象业务系统以解析Micaps类格式文件的数据为主,业务系统接入CIMISS数据环境后直接解析CIMISS系统中获取的数据。自动观测的各种气象要素的实时和历史数据(包括降雨量、温度、气压、相对湿度、能见度、风等),水利、环保、海洋等外部门单位的站点数据以离散型数据形式存在;多种气象要素(包括降雨量、温度、气压等)的网格化产品,数据需先转化成网格化数据;卫星云图、雷达产品以及数值模式预报产品,数据需先转化成栅格类型的数据。
对离散数据处理过程即解析(xml/json/html/text等)文本格式存储的文件,对可视化站点进行赋值的过程。调用CIMISS接口获取的二维站点数据,将信息赋值给对象。对象包括了站点的区站号、自动站所在地址、省、市、县、乡镇或街道、经度、纬度、高度、数值等属性。
网格化数据处理过程中可调用CIMISS接口获取格点场数据,根据格点数据经纬度范围和网格大小,生成覆盖研究区范围的经纬网数据。也可调用CIMISS接口获取二维站点数据,将数据转换成网格化数据,在对站点数据网格化处理过程中用到了插值。鉴于气象站点数量的有限性以及空间分布的离散性等特征,利用插值根据已知样点的数据估算未知点的数据,通过一次或多次插值将离散点数据插值成连续的表面数据,进一步形成等值线或者色斑图后显示[11]。
栅格数据的处理过程中将数据进行预先成图处理,把成图后的数据按照一定的比例尺切分成瓦片数据(即若干行、列的方形图片)[12],以图片文件的形式存储到文件系统中。经过预处理之后的瓦片数据数量相当大,通过特定的文件索引目录结构组织这些文件,对大量瓦片数据进行高效的管理与调度,以适应网络的快速传输,方便WebGIS对外提供高效服务。
2.3.1 基于Silverlight插件的WebGIS技术
数据可视化采用了Microsoft Silverlight插件技术,结合ArcGIS Server服务端气象数据服务,实现基于地理空间的离散、网格、栅格等气象数据查询、分析和展示。针对不同的数据类型,使用不同的数据可视化方法,离散数据的可视化通过离散数据的经度、纬度和数值等属性,加载到地图矢量图层渲染;网格化数据通过对解析处理后获得的格点数据进行图形绘制生成等值线或等值面图形,与地理信息叠加显示生成可视化产品;栅格数据的可视化主要以图片的形式,在地图的切片图层显示[13]。
2.3.2 内存数据库技术与静态缓存技术
气象业务系统接入CIMISS系统之前,由于系统读取的多为本地化文件,系统响应速度相对比较快。接入CIMISS系统之后,业务系统在显示气象网格化数据(网格化产品)以及栅格数据(雷达产品、卫星云图)等相对比较大的数据时响应速度变慢。为了提高与用户交互响应的效率,在网格化数据的可视化过程中采用了内存数据库技术。为了提高内存数据库的查询性能[14],将数据划分后放入cache提高其命中率,应用哈希索引对cache性能进行优化,对数据进行了一定比例的压缩降低内存访问代价。在栅格数据的可视化过程中采用了静态缓存技术。对矢量数据进行静态的预先成图处理,将成图后的数据分割形成切片文件,通过特定的文件索引目录结构组织图片文件供WebGIS客户端直接调用。内存数据库技术与静态缓存技术有效地提升了产品性能,保证了数据在客户端的高效浏览和服务器端的快速发布。
浙江气象数字化显示平台是浙江省级气象业务系统接入CIMISS系统比较成功的案例之一。CIMISS接口获取的数据极大地满足了浙江气象数字化显示平台对于站网观测、数值模式等各类气象数据广覆盖和高实时的需求,对于平台中地面、高空、数值模式等模块提供了稳定的底层数据支撑。同时,CIMISS接口降低了平台系统维护强度,避免了数据源重复建设,提高了数据的一致性和权威性。图4是浙江气象数字化显示平台接入CIMISS数据环境前后的比较。
图4 浙江气象数字化显示平台接入CIMISS数据环境前后的对比图
浙江的气象数字化平台与CIMISS对接后只需要改造数据层,业务逻辑层及表示层基本不变。数据源由原来的多个文件服务器,通过在数字化平台Web服务器端建立虚拟目录的提供方式改为由CIMISS数据中心提供,减少了文件服务器和虚拟目录的建设过程;数据传输方式上由原来的以文件方式传输改为CIMISS数据流方式传输,减少了获取文件列表和压缩文件解压文件过程;数据解析方式上数据化平台客户端原来的解析文件内容显示(以Micaps类格式文件为主)改为直接解析CIMISS数据显示,减少了解析文件的过程。图5为浙江气象数字化显示平台接入CIMISS数据环境后的系统效果图。
(a) 2016年7月9日00时10日00时浙江省近24小时降水实况网格数据的分布图(单位:毫米)
(b) 2016年7月9日00时10日00时浙江省近24小时降水实况离散数据的分布图(单位:毫米)
(c) 2016年07月12日16时15分风云2E云分类(CLC)产品栅格数据的分布图图5 浙江气象数字化显示平台接入CIMISS数据环境的效果图
本文结合气象业务系统的需求,在不改变现有业务系统业务流程和系统架构的基础上,实现本地化系统与CIMISS系统的无缝对接,进一步提高气象数据的服务能力和访问效率。
(1) 在数据接入业务系统部分,通过对XML配置文件结构的设计,提高软件的可扩展性和可移植性。利用CIMISS数据接口获取气象数据。
(2) 根据数据结构的不同,分别讨论了离散型数据、网格化数据、栅格数据三种类型气象数据的解析方式。
(3) 在气象数据的可视化过程中,采用了Microsoft Silverlight插件技术,结合ArcGIS Server服务端气象数据服务,实现基于地理空间的离散、网格、栅格等气象数据查询、分析和展示。为了保证气象数据产品在服务器端的快速发布和客户端的高效浏览,采用了内存数据库技术与静态缓存技术。
综上所述,本文建立的CIMISS在浙江省级气象业务系统的应用是可行和有效的,该应用流程和方案为CIMISS系统更好地在全国气象部门推广提供一个良好的建设思路。
[1] 熊安元, 赵芳, 王颖,等. 全国综合气象信息共享系统的设计与实现[J]. 应用气象学报, 2015, 26(4):500-512.
[2] 王旻燕,邓莉,赵芳,等. CIMISS中气象卫星数据存储和服务模型[J].安徽农业科学,2012, 40(8): 4785-4789.
[3] 杨代才,王海军,龚贤创.长江流域气象中心实时资料共享平台设计与开发[C]// 2011年中国气象学会气象通信与信息技术委员会暨国家气象信息中心科技年会论文集. 2011:88-93.
[4] 李新庆,单新兰,岳勇.宁夏气象数据共享查询系统的设计与实现[J].重庆工商大学学报(自然科学版),2015,32(3):55-59.
[5] 李集明,沈文海,王国复.气象信息共享平台及其关键技术研究[J].应用气象学报,2006,17(5): 621-628.
[6] 李集明,熊安元.气象科学数据共享系统研究综述[J].应用气象学报,2004,15(S1):1-9.
[7] 王宏记,杨代才.基于CIMISS的长江流域气象水文信息共享系统设计与实现研究[J].安徽农业科学,2014,42(32):11565-11570.
[8] 张学全,王伟,王鹏,等.三维气象GIS平台关键技术研究与实现[J].气象科技,2015,43(2):226-231.
[9] 郭瑞杰,王斌,丁杰.基于表格驱动的XML 配置文件解析与生成技术[J].计算机工程与应用,2006,42(9):89-92.
[10] 柳玲玲,张正阳.CIMISS新疆气象数据统一访问接口[J]. 沙漠与绿洲气象,2015, 9(S1):116-117.
[11] 吴焕萍,罗兵,王维国,等.GIS技术在决策气象服务系统建设中的应用[J].应用气象学报,2008,19(3):380-384.
[12] 商秀玉.WebGIS海量瓦片数据管理引擎的设计与实现[D].浙江:浙江师范大学,2012:8-31.
[13] 王天宝,王尔琪,郭会,等. 基于Silverlight 的Web GIS客户端技术研究[J] .地球信息科学学报,2010,12(1):69-75.
[14] 王珊,肖艳芹,刘大为.内存数据库关键技术研究[J].计算机应用,2007,27(10):2353-2357.