基于GIS的气象信息标准化服务平台的设计与实现
2021-01-19李玉涛
李玉涛,王 凯,周 元
(1.江苏省气象信息中心,江苏 南京 210008; 2.中国气象局交通气象重点开放实验室,江苏 南京 210008)
0 引 言
气象预报服务存在较强的空间特性,因此地理信息系统在气象预报业务中被广泛应用。随着气象服务不断格点化、精细化,对气象数据在地理信息系统中的显示发布要求进一步提高[1]。当前各系统在建设时往往存在重复处理气象数据及开发整合地理信息系统的现象,重复开发基于地理信息的可视化功能会造成资源浪费,延长开发周期。为更好地进行气象数据服务,该文结合地理信息系统在气象领域的应用,在内部基础平台建设实践过程中,设计开发了基于GIS(geographic information system,地理信息系统)的气象信息标准化服务平台。该平台可实时处理最新的及历史的气象资料并提供基于GIS的可视化显示接口[2-3],第三方系统经过授权可实时对气象资料及GIS进行接口调用,减少了系统建设中的重复环节,提高了系统的稳定性及数据资料基于地理信息加载显示的时效性,目前已在多个平台进行应用推广,取得了明显的效益。
地理信息系统服务器(GeoServer)是一个功能齐全,遵循开放地理空间联盟(OGC)标准的WMS和WFS-T服务器[4],以J2EE实现OpenGIS Web规范,利用GeoServer可方便地以基于地理信息形式发布气象数据[2],其主要数据种类包括:
(1)地图或影象——应用WMS;
(2)实时数据——应用WFS;
(3)用户编辑、删除和更新的数据——应用WFS-T。
1 基于GIS的气象信息标准化服务平台的设计
基于GIS的气象信息标准化服务平台主要依托CIMISS(全国综合气象信息共享平台)数据接口及相关的文件系统开发,依照地理信息数据图层金字塔分级方式,将气象数据进行重新组织后,提供标准化调用接口,气象数据(气象资料的图像、要素)通过OGC具有时间支持的WMS(WMS-T),WFS(WFS-T)进行提供[5]。
1.1 系统总体架构设计
基于GIS的气象信息标准化服务平台的设计采用功能分块、结构分层的设计思想[6],整个系统框架由五个层次组成,由下至上分别为数据层、服务层、组件层、应用层和接入层[7-8],如图1所示。
(1)数据层:数据库包括存储专业的气象数据的Postgrel数据库,地理空间信息存储的postGis数据库和各业务系统的业务数据库。
(2)服务层:由一系列无状态微服务组成的底层服务,为上层业务提供持续的服务支持。包括地理信息、实况、预报等内容的GIS瓦片图层服务、GIS等值线服务和GIS气象要素服务等。
图1 基于GIS的气象信息标准化服务平台总体架构
(3)组件层:组成各个系统的模块化组件。包括日志采集、日志分析、数据限流、权限校验、用户管理、资源配置等相关模块。
(4)应用层:应用层为气象信息标准化服务平台所包含的子系统,具体包括但不限于日志分析系统、API服务系统、用户配置管理系统等。
(5)接入层:接入层为气象信息标准化服务平台的使用人员,具体包括API接口服务调用使用方、日志分析服务维护人员、用户配置管理服务管理人员等。
1.2 模块划分设计
如表1所示,基于GIS的气象信息标准化服务平台的功能主要包括地理信息服务、实况信息服务和预报信息服务三部分。
表1 基于GIS的气象信息标准化服务
1.3 系统技术架构设计
如图2所示,基于GIS的气象信息标准化服务平台系统在设计实现上分为控制层、视图层、数据层和服务层[9-10],采用了业界流行的符合接口服务构架。
(1)接入层:接入层采用html和Servlet。通过http协议从控制层获取对应视图(html页面或者json格式数据)。
(2)系统应用层:用来控制分发不同的业务,采用Spring的MVC。在该层设计了系统负载保护功能,使用RateLimiter以限制访问用户对物理或逻辑资源的访问速率。使用Interceptor做拦截验证。对于异常处理,使用Spring的ExceptionHandler进行统一处理。
图2 基于GIS的气象信息标准化服务平台技术架构
(3)应用支撑层:使用Spring核心框架,日志输出采用log4j生成到统一的日志库中进行归档,方便后续分析处理;通过Apache的HttpClient调用微服务集群(包括GIS Server、气象要素服务和气象图层服务等)为系统应用层提供基础服务支撑。
(4)数据库层:使用半自动框架MyBaties,和Spring 4.X框架进行整合。底层数据库采用postgreSQL作为业务数据库,使用PostGis作为专业的地理信息空间库,使用Redis作为分布式的高速存储缓存,提高响应速度。
1.4 GIS服务架构设计
基于GIS的气象信息标准化服务平台通过GIS服务组件,通过设计基于基础的数据信息(如气象要素、地理信息、矢量数据等)发布标准OGS的GIS气象服务[11-12],如WMS、WFS和WMTS等,如图3所示。
图3 基于GIS的服务架构
(1)Web地图服务(WMS):将带有地理信息的地图数据进行解析后绘制,并作为底图来展现。地图数据包括图像数据、坐标点数据以及其他功能数据。
(2)Web要素服务(WFS):该服务提供要素级地理标记语言(GML)编码,可增加、修改、删除提供的要素,目的是提供更加优化的Web地图服务。WFS允许用户端从多个Web要素服务中获取地理空间数据并使用,并定义了五个操作:
GetFeature:为一个获取要素实例的请求提供服务;
DescribeFeatureType:用于返回可提供的服务要素结构(以XML形式);
GetCapabilites:用于返回Web要素服务性能的描述;
Transaction:响应事务请求;
LockFeature:处理进程中的要素类型实例上锁请求。
1.5 外部集成架构设计
通过气象信息标准化服务平台提供的API接口及授权,外部业务系统可实时调用接口将气象信息标准化服务平台提供的基于地理信息系统的可视化气象数据加载到自身系统上,而无需自身系统在后台进行任何数据的解析处理及可视化开发,实现了气象资料的快速叠加和地理信息的可视化显示,避免了资料处理及可视化方面的重复开发,提高了系统从立项到实现的效率。其外部集成架构如图4所示。
图4 外部集成架构
2 基于GIS的气象信息标准化服务平台的实现
通过对气象信息标准化服务平台进行综合需求分析,在完成了平台的系统总体架构设计、模块划分设计、系统技术架构设计、GIS服务架构设计、外部集成架构设计的基础上,该文利用ASP.NET、JavaScript、AJAX技术进行了系统开发建设,在数据存储上使用mysql数据库技术结合SuperMap SDX+数据库引擎对气象数据进行一体化的存储和管理,为气象数据的空间查询和可视化表达提供安全可靠的接口服务[12],实现了异构环境下的气象数据集成、气象数据服务方式多样化和气象产品服务地理信息空间可视化。采用了五层B/S体系结构进行系统整体设计,用户可通过平台的标准化服务接口实时获取地理信息服务、气象实况信息服务、气象预测信息服务[13]。
2.1 系统数据获取流程
如图5所示,气象信息标准化服务平台数据来源主要基于文件共享服务器提供的各类气象资料数据文件,MICAPS系统提供的初步处理后的气象数据文件及CIMISS业务提供的Music数据接口。通过对多源的数据进行实时获取后进行数据的处理、切割、等值线追踪、入库等一系列处理,最终将用户系统调用所需的可视化数据进行保存。
图5 气象信息标准化服务平台数据获取流程
2.2 系统部署及实现
系统通过JAVA开发,编译及运行所需的jdk版本为1.8.0_111,Tomcat版本为apache-tomcat-9.0.0.M9,采用CentOS release 6.5 X64(Final)操作系统作为基础支撑。如图6所示,部署过程中需使用mvn指令进行编码,将编译好的pgws.war包拷贝到服务器,具体位置:
/waethercloud-pgws/target/weathercloud-pgws-0.0.1-pgws.war。
图6 编码编译过程
程序在启动时,首先进入到war包位置,将编码的weatherservices.war和services.war安装包拷贝到tomcat的webapps路径下,然后切换到bin目录,执行相关脚本,启动tomcat服务。
2.3 平台功能展示
在本机上输入http://localhost:8080/doc即可访问首页,在首页中包含对该平台的简介及用户使用方法。
平台能够提供Restful风格服务接口供调用,可以被众多的浏览器(Chrome、搜狗、360、火狐等)请求,也可以被第三方应用程序(ArcGIS、Google Earth、World Wind等二三维地理信息系统)所调用。通常用URL代表资源,每个资源都对应唯一URL,用HTTP方法进行操作[14-15]。
(1)请求参数说明。
st:开始时间;时间格式:yyyyMMMddHHmm,eg:201611131700。
et:结束时间;时间格式:yyyyMMMddHHmm,eg:201611131800。
(2)返回参数说明。
host:域名访问地址;
series:时间+图层URL的键值对;
bbox:图层区域范围。
(3)已实现可视化的数据包含地理信息(包括卫星图、地形图、电子图(全国范围到10级,江苏省内最细粒度))、实况资料(国家站、区域站、高空站温、压、湿、风、降水)、预报产品(欧洲细网格中国区温、压、湿、风、降水)。
(4)接口调用示例。
如用户根据输入时间查看全国范围温度场信息,则输入以下内容到浏览器,其中输入参数参见表2,调取资料效果如图7所示。
图7 数据接口调用效果展示
表2 全国温度场请求输入参数说明
3 结束语
气象数据以其多源性、多态性、海量性为特征,如何建立统一的气象数据行业标准、如何通过更加丰富的可视化手段表达气象信息、如何通过利用历史气象数据中的庞大数据挖掘更深层次的信息以辅助决策,是当前气象数据精细化服务及应用中面临的重大课题。地理信息系统(GIS)具有海量数据处理及管理能力、空间数据分析能力以及丰富的可视化表达方式,正成为气象科学研究和业务应用中的热点,被广泛地应用到气象领域中。
该文根据实际业务需求,集成了多源异构的气象数据,设计实现了功能相对全面、集成的基于GIS的标准化气象信息服务平台,避免当前气象业务系统软件功能单一、种类繁多、最后导致各系统频繁切换而导致查看繁琐的使用问题,实现气象数据空间特性的可视化表达,同时也为各业务平台实时调用基于地理信息的气象资料提供了接口,有效减少了业务系统在建设环节中的气象资料可视化重复开发所造成的资源浪费。基于GIS的气象信息标准化服务平台建成后,已在江苏省气象局的多个气象业务系统中得到应用,并收到了良好的应用效果,这为综合有效利用各种来源广泛、信息量大的空间气象数据,进一步提高对气象数据的理解水平提供了有益的探索。