APP下载

基于WEBGIS的气象探测数据显示系统的设计与实现

2014-07-21郝振荣王小兰

科技与创新 2014年6期
关键词:数据

郝振荣 王小兰

摘 要:根据气象数据空间分布的特点,基于B/S架构,采用Map Server地理信息服务器、Oracle Spatial空间信息管理组件和Post GIS,Open Scales等开源WEBGIS软件完成了山西省气象探测数据显示系统。该系统实现了气象观测站、雷达、闪电和卫星云图等多种气象数据的集成显示,为天气预报、气象服务等业务应用提供了数据支持,全面提高了气象数据的共享应用能力。

关键词:WEBGIS;气象探测;显示系统;数据

中图分类号:P208 文献标识码:A 文章编号:2095-6835(2014)06-0144-03

随着气象业务服务需求的牵引和技术发展的推动,气象观测业务已从低时空分辨率有限视野的定时常规监测向遥感、遥测、连续、自动的高时空分辨率综合观测方向发展。综合探测系统所提供的多元化监测信息是进行大气环境分析、天气预报和气候预测重要的基础资料。如何将收集到的各种气象探测数据以准确、合理、多样化的方式展现出来,增强对气象预报、预测和公共气象服务业务的科技支撑,已成为迫切需要解决的问题。

WEBGIS作为地理信息系统基于Web的实现方式,与传统的桌面GIS相比,它具有以下特点:独立于操作系统,部署便捷;容易实现大范围的共享访问;客户端共同采用服务端数据,保证了数据的一致性,避免产生信息孤岛;业务用户不必花费大量的经费采购昂贵的GIS软件。对访问空间性和时间性显著、数据量巨大的数据,WEBGIS具有很大的优势。气象数据在空间和时间上连续分布的特性使得地理信息系统成为解决上述问题的可行方法之一。

1 系统分析与设计

1.1 系统分析

按照GIS划分的数据类型,主要有矢量数据和栅格数据。它可将气象探测数据与GIS数据相对应,即以站点观测组织的要素数据,比如气温、气压、湿度、降水和雷电等为矢量数据;以面或多维空间组织的雷达和卫星云图等资料为栅格数据。气象探测每天产生大量的数据,并且需及时、有效地进行数据共享,以满足对极端天气监测和预警的需求。以往比较成功的GIS软件应用主要采用了桌面GIS软件,而桌面GIS应用存在的突出问题是影响数据共享,即只能服务于单个或部分终端用户,无法覆盖整个局域网内的所有用户。该系统基于WEBGIS,利用最新的RIA技术,在实现复杂的桌面GIS功能的同时,凭借Web2.0技术和FLEX技术的优势,重点实现了海量气象探测数据的浏览和检索。

1.2 系统模型

为了便于快速开发、部署和功能扩展,该系统采用WEBGIS三层模型结构。系统的逻辑结构如图1所示。

系统从逻辑结构上划分为浏览器、应用服务器和数据服务器三层。各层次相互关联,相互依赖,即下一层是上一层的基层,上一层依赖于下一层而实现。

1.2.1 数据服务器层

该层包含基础地理信息数据库、气象要素数据库、卫星云图数据库、雷达拼图数据库和闪电资料数据库。其中,基础地理信息数据库包含系统所需的地图数据和气象观测站点的位置数据;气象要素数据库用于存储各类自动气象站的气象探测数据,系统功能中的数据收集、存储模块在这层实现。数据服务器为整个系统提供数据支持。

1.2.2 应用服务器层

这一层既要考虑通过数据库接口实现数据的操作,又要提供标准的服务结构,方便浏览器层的调用。为了便于实现,又将本层划分为数据接口和应用发布两个子层。其中,数据接口子层是地理信息服务器和网站服务器用于调用数据服务器层中的数据。应用发布子层通过全局数据访问视图和统一的数据服务接口对外发布WMS,WFS和JSON等数据服务,为浏览器层提供用于展现的数据。

1.2.3 浏览器层

该层通过GIS客户端、网页表格空间和网页图表等工具实现GIS操作界面和气象探测数据的可视化。

上述三层都依赖于外部IT资源支撑系统。这一外部层为系统提供网络、磁盘阵列、高性能服务器和终端等硬件支撑。

1.3 功能设计

为了便于开发和部署,将系统功能划分为地理信息服务、地图操作、要素显示、空间分析、时间序列显示、闪电定位数据显示、雷达拼图显示和卫星云图显示八个功能模块。具体如图2所示。

1.3.1 地理信息服务发布模块

通过在数据库中建立视图的方式,将基础地理信息数据和气象数据结合在一起。地理信息服务器通过数据库接口访问这些视图。它将这些视图通过OGC定义的Web服务标准WMS和WFS发布出去,供客户端访问。

1.3.2 地图操作功能模块

在用户界面上实现基本的GIS数据浏览访问功能,包括导航、图层管理、漫游定位、距离测量、绘制定制图案、截图和打印等功能。

1.3.3 气象要素显示模块

气象要素显示模块由定时数据查询模块和统计数据查询模块两个部分组成。

1.3.3.1 定时数据查询模块

用户选择需要查询的数据类型和数据的观测时间提交系统,系统接受用户请求,在客户端上参照天气填图样式显示符合查询条件的数据。

1.3.3.2 统计数据查询模块

用户选择需要查询的数据类型和时间区间提交系统,系统接受用户的请求,按照气象数据统计规定,在客户端上参照天气填图样式显示统计数据。客户端上显示符合查询条件的所有站点观测的气象要素,并可按照要素类别进行升序和降序的排序,结果以表格形式显示出来。

1.3.4 气象要素空间分析模块

采用等值线算法,将查询结果按照不同的样式以等值线的方式绘制在客户端的地图上。

1.3.5 气象要素时间序列显示模块

依据选择的查询站点,返回这个站点多个气象要素的时间序列图。时间序列图的样式有曲线图、直方图等。endprint

1.3.6 闪电定位数据显示模块

选择时间区间,在地图上标注显示这个时间区间内所有的闪电定位数据。

1.3.7 雷达拼图显示模块

选择时间区间,返回这个时间段内所有的雷达拼图数据,选择其中一张符合需求的雷达拼图数据在客户端的地图上显示。

1.3.8 卫星云图显示模块

其功能和雷达拼图显示模块类似,显示内容为所选择的卫星云图。

1.4 数据流程的设计

数据流程主要包括数据处理、数据加工、数据存储、数据服务和数据展示等五个子流程,各子流程间采用时间和事件触发等调度机制,实现数据在各功能模块间的处理、加工、管理和服务。系统数据流程如图3所示。

1.5 数据库设计

按照存储数据的类型数据库逻辑上划分为基础地理信息数据库、气象要素数据库、卫星云图数据库、雷达拼图数据库和闪电监测数据库。其中,基础地理信息数据库包含系统所需的地图数据和气象站点的位置数据;气象要素数据库用于存储自动气象站的观测数据。图4为系统数据库逻辑结构。

数据库必须能够支持地理信息数据的存储,大容量数据的管理和存储,能够承担高频次的并发访问。结合目前实际情况,自动气象站、闪电定位数据存储在Oracle数据库中,站点信息也存储Oracle数据库中的一个表里。新建PostgreSQL用于存储系统地图用到的基础地理信息、雷达拼图和卫星云图等数据。系统数据库的逻辑层和物理层的对应关系如图5所示。

2 系统实现

2.1 气象数据的存储

按照地理信息特征划分,将气象数据分为点对象和面对象。点对象包括站点位置,温度、气压、风速、降水、湿度和闪电等数据;面对象包括雷达拼图、卫星云图等数据。气象信息数据的空间结构如图6所示。

利用Oracle 和 PostGIS的空间信息管理模块共同管理这些空间数据和属性数据,同时,利用不同的数据库查询语句,实现数据的检索和分析。

系统中Oracle Spatial使用SQL数据类型SDO_GEOMETRY在Oracle数据库存储包含矢量信息的气象数据。数据库中空间信息存储在SDO_GEOMETRY列,利用标准Oracle实用程序SQL * Loader的导入和导出。

PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的Spatial部分。PostGIS通过一种新的数据类型片,提供对大的栅格数据对象的存储。片由以下几个部分组成:包裹矩形框、SRID、类型和一个字节序列。系统利用raster2pgsql程序将栅格型数据转换为SQL语句,通过psql将SQL数据导入PostgreSQL数据库。

2.2 站点数据显示模块的实现

数据库中的气象要素表中并没有包含地理信息数据。因此,需要建立视图,将站点信息表和气象要素表相结合。地理信息服务器MapServer直接访问这个视图就可以完成气象要素数据的获取,通过PHP的MapServer扩展向外发布WFS和WMS服务。此外,为了增加数据服务的灵活性,使其可以根据用户的查询实时生成所需的服务,这就需要在视图中添加参数来完成此功能。气象要素发布SQL视图代码如下:

SELECT VALUEDATA.IIIII,VALUEDATA.SNAME,VALUEDATA.TEMP,miss.GISDATA.geom from (SELECT

MISS.STATION.IIIII,MISS.AWS_REG.TEMP,MISS.STATI

ON.SNAME FROM MISS.STATION

INNER JOIN MISS.AWS_REG ON MISS.AWS_REG.IIIII = MISS.STATION.IIIII WHERE MISS.STATION.IIIII LIKE 'B%' and MISS.AWS_REG.OBSTIME

= TO_DATE('%OBSTIME%','YYMMDDHH24MI')

AND MISS.AWS_REG.TEMP<>999.9) VALUEDATA

left join miss.GISDATA on valuedata.IIIII=miss.GISDATA.IIIII

2.3 雷达拼图显示模块的实现

雷达拼图数据服务通过WMS方式在MapServer上发布。系统通过使用Mapfile文件配置MapServer。Mapfile文件是MapServer的标准文件,它是集成了空间数据、属性数据和三维影像数据的接口函数,实现了MapServer核心库对这些数据文件的访问。Mapfile定义了MapServer中各个对象的相互关系,指明MapServer的数据源和数据的绘制样式。Mapfile中诸多的关键字端构成了一个完整的Map对象。

DATA关键字是用来描述数据源的详细信息。雷达拼图的数据源是PostgreSQL数据库中的raster数据类型。根据PostgreSQL数据库的详细信息,DATA关键字代码如下:

DATA "PG:dbname=rad host=*.*.*.* user=**** password=***** port=5432 table=radnew where='rid=20130418001800' mode=1".

CLASS关键字是用来描述数据绘制的样式。根据气象部门对雷达拼图样式的定义,由多个CLASS关键字定义雷达的样式,代码如下:

CLASS

EXPRESSION ([pixel] >= 66 AND [pixel] < 76)endprint

猜你喜欢

数据
智能大棚温湿度监测系统的设计开发
论数据权的划分标准和分类
以未来决定现在
医院统计报表数据在医院管理服务中的常见问题研究
竞技分析及其发展趋势研究
公路工程试验检测存在的问题及措施
一种借助数据处理构建的智能食堂管理系统
浅谈计量自动化系统实现预购电管理应用