随着全球环境变化,特别是近年来极端天气现象增多,为了确保气象信息准确快捷地服务社会,建设气象信息发布平台势在必行。气象现象往往发生在特定的地理环境中,且常规气象要素信息如温度、风场、气压、湿度及地温等均相对于具体的空间域和时间域而言,因此气象观测数据与地理信息紧密关联[1]。
目前,基于WebGIS的气象信息化研究已经比较普遍[2-7],研究人员已将气象数据管理与GIS技术相结合,实现了气象数据的展现、查询、统计功能,但GIS空间分析功能与气象业务应用结合的研究还比较少。本文利用GIS的空间分析能力,对气象数据做进一步的空间分析处理,旨在借助真实的地理环境对气象数据进行深层次的分析与挖掘,为预测预报提供辅助决策。基于ArcGIS Server和VML技术的省级气象信息发布平台通过对气象资料合理整理、再加工,借助WebGIS和VML等技术实现气象信息及时、准确、科学的可视化发布,重点突出GIS的空间分析能力,通过等值面、面雨量、缓冲区和叠加分析为决策提供科学依据。在面临各种复杂天气情况时,不仅能使预报员直观、迅速地掌握各种气象信息,为决策提供帮助,还能为社会提供有效的气象服务。
1 ArcGIS Server与VML简介ArcGIS Server是ESRI公司在ArcGIS 9中新增产品,目前最新版本是ArcGIS Server 9.3,是功能强大的基于服务器的GIS产品,用于构建集中管理的、支持多用户的、具备高级GIS功能的企业级GIS应用与服务,其主要功能为空间数据管理、空间可视化 (制图) 和空间分析[8]。基于ArcGIS Server可构建各种服务和应用,包括ArcGIS桌面系统及其扩展、Web应用以及Web Services应用等[9]。ArcGIS Server的主要特点[10-11]:① 系统开发方面,它提供了和桌面端GIS软件一样强大的GIS分析处理模块,基于它构建自己的GIS系统,可减少系统开发的复杂程度,缩短系统的开发周期;② 系统性能和安全性方面,它具有管理的集中性、连接和访问的安全性及支持多种客户端等优点。鉴于ArcGIS Server诸多优势,故选择它为GIS服务器端平台。
VML (Vector Markup Language) 矢量标记语言,是微软1999年9月附带IE 5.0发布的[12],它基于XML,将图形与文本信息及其他数据集成在一起,是用文本方式描述矢量图形的语言,它能在Web上建立高效、灵活和简洁的矢量图形[13]。VML的优点[14]包括:① 丰富的样式表、灵活的脚本控制,能动态绘制不同的图形;② 无需下载插件,VML便可以在IE浏览器中绘制矢量图形[15];③ 采用VML技术能替服务器端分担很大压力。
服务器端使用ESRI公司的GIS Web服务器产品ArcGIS Server,客户端采用矢量图形绘制技术VML,从而搭建出GIS空间分析功能强大、气象信息美观展示、响应快捷的WebGIS系统框架。
2 省级气象信息发布平台需求 2.1 系统总体目标系统的总体目标是采用ArcGIS Server,VML和Oracle等技术,以广东省的矢量、影像地理数据为基础,将GIS空间分析与气象信息充分结合,建立集气象资料处理、查询、统计、分析结果展示和预警为一体的信息发布平台,为气象预报提供决策支持。
2.2 系统主要功能 2.2.1 地图基本操作地图操作几乎集合了所有常用操作,为方便用户,采用工具条、鼠标相结合操作,主要包括漫游、量测、选取及鹰眼图切换等。
2.2.2 信息查询、统计、展示与保存实现基于地理信息的气象信息查询、统计与展示,查询内容有自动站六要素、台风、水文、闪电定位和雷达图、卫星图,其中雷达图包括反射率因子 (REF)、定量降水预报 (QPF)、反射率因子预报、闪电和追踪等资料,卫星图实现可见光、红外和水汽3种模式渲染;查询方式有选择地理范围查询气象资料、根据气象资料突出显示地理要素、按空间位置与气象属性联合查询、气象信息实时、动态查询等,且所有查询都是基于Ajax异步调用,不仅不影响其他操作,还带给用户良好感受。
对查询所得数据进行分析统计,实现表格、统计图、图片和VML绘制3种方式展示,其中统计图包括直方图、曲线图和填色图 3种,雷达图及卫星图由图片渲染,预警信号、台风路径使用VML绘图显示。查询、统计信息及图表可保存为Excel文件,也可打印输出。图 1所示为气象信息发布平台主界面及广州华南植物园2010年5月1日的气温曲线图。
![]() |
|
图 1. 广州华南植物园2010年5月1日气温曲线图 Fig 1. Temperature curves of South China Botanical Garden in Guangzhou on 1 May 2010 |
2.2.3 空间分析功能
空间分析是地理信息系统核心功能,该平台充分利用GIS的缓冲区分析、叠加分析和等值面分析来实现台风影响范围、气温分布图、雨量分布图及面雨量统计表等,为预报和决策提供有力支持,图 2为台风影响范围及面雨量分析结果图。
![]() |
|
图 2. 台风影响范围 (a) 及面雨量分析 (b) Fig 2. Affected region forecast of typhoon (a) and analysis of surface rainfall (b) |
2.2.4 系统安全和用户管理
从网络和软件系统两方面加强系统安全,分别用动态IP和设置密码验证来实现。用户管理包括:用户注册、用户基本信息、角色定义、用户权限设置、密码设置及权限分配等。
3 系统设计 3.1 系统总体结构广东省气象信息发布平台4层体系结构如图 3所示:第1层为数据存储层,包括气象业务数据和基础地理数据,分别存储于Oracle 10.2数据库 (业务数据库) 和ArcSDE for Oracle空间数据库。第2层为数据服务层,主要包括属性数据服务和空间数据服务,由ArcGIS Server发布的地图服务结合DOTNET应用服务程序实现,根据各种请求参数封装不同的数据服务。第3层为业务逻辑层,按照客户端请求提供特定业务逻辑的处理和组织,调用数据服务层获取信息,由Business业务模块实现。第4层为客户表示层,通过友好的浏览器交互界面,动态实时地为客户提供各种气象信息,使用Ext脚本库、Ajax等Web2.0的新技术带给用户全新体验。
![]() |
|
图 3. 系统总体结构图 Fig 3. Overall structure of the system |
3.2 数据存储管理
气象信息发布平台中涉及的数据主要分为气象观测数据和地理信息数据两部分。气象观测数据存储在已有的、经过长期业务实际检验的Oracle 10.2中,因业务系统运行良好继续沿用,只是新设计了一些属性表以满足信息发布平台的需要。系统用的空间数据包括矢量和栅格两部分,矢量数据是1:250000的广东省ShapeFile格式基础地理信息数据,其中包括行政区划、水系等;栅格数据主要是分辨率为30 m的真彩色遥感影像。空间数据通过空间数据引擎ArcSDE存储。
4 系统开发、部署关键技术地图文档配置的水平决定地图服务的效果,地图服务发布与地图缓存的参数设置和系统部署方式决定WebGIS系统的响应速度,而台风路径显示及其影响范围、等值面和面雨量分析是系统的亮点和难点。
4.1 地图文档配置地图文档配置就是用ArcMap配置以“.mxd”为扩展名的地图文档[5],定义地理图层之间的关系、地图符号显示模式和地图数据存放的路径等。ArcGIS Server通过读取地图文档,根据地理数据的路径和定义的绘制模式来发布地图服务。地图文档配置是一种艺术设计,其在一定程度上决定地图服务的质量,贴合需求、专业的地图文档展示给用户科学美观的地图服务。
从需求出发,通过制图技术人员与开发人员共同设计,该系统中配置了BaseMapRaster.mxd,BaseAlertMap.mxd和BaseHydrosw.mxd等7个地图文档。其中,BaseMapRaster.mxd由影像数据组成,用于表达台风底图;BaseAlertMap.mxd,BaseHydrosw.mxd和BaseStationMap.mxd由Shapefile组成,分别实现预警、水文和自动站各个专题地理信息底图;BaseMiniChina.mxd,BaseMiniMap.mxd同样由Shapefile组成分别用来实现全国和广东省的鹰眼图;Isoline.mxd由不可见的Shapefile组成,用于生成动态图层和设定缓存分级标准。
4.2 台风路径显示及其影响范围实现台风路径绘制,从台风路径业务数据表中,获取台风路径的所有信息,在客户端使用VML技术绘制台风路径,同理,实现台风预测路径展示。
实现台风影响范围确定包括两个步骤:缓冲区分析和叠加分析。
步骤1 缓冲区分析,得到风圈半径影响范围多边形。
① 台风路径数据加工:将风圈半径为空的路径点赋为该点为一点的风圈半径。
② 线缓冲区分析:从台风路径起点开始,依次每两个点分为一段,以风圈半径为缓冲半径,做线缓冲区分析,如果起点与终点的风圈半径相差较大,则在其间插值几个路径点,再做线缓冲区分析,所用接口ITopologicalOperator.Buffer关键代码片段如下:
ITopologicalOperator topop=(ITopologicalOperator) iGeometry;
IPolygon bufferPolygon=(IPolygon) topop.Buffer (distance);
return bufferPolygon;
③ 融合:将所有线段的缓冲多边形融合在一起,形成一个大的风圈影响范围的多边形。所用接口ITopologicalOperator.Union关键代码片段如下:
ITopologicalOperator topop=(ITopologicalOperator) polygon1;
IPolygon bufferPolygon=(IPolygon) topop.Union ((IGeometry) polygon2);
步骤2 叠加分析,获取台风的实际影响区域。
将步骤1得到的风圈多边形与全国镇界图进行空间查询,得出风圈影响的行政区域。所用接口IQueryFunctionality.Query,关键代码片段如下:
ESRI.ArcGIS.ADF.Web.SpatialFilter spatialfilter=new ESRI.ArcGIS.ADF.Web.SpatialFilter ();
spatialfilter.OutputSpatialReference=mf.SpatialReference;
spatialfilter.Geometry=pgon;
DataTable datatable=qfunc.Query (null, lids[0], spatialfilter);
4.3 等值面分析与面雨量分析实现面雨量分析主要功能包括计算某个区域的面雨量、不同降水量段的面雨量 (雨量×面积)、平均降水量面积、所占该区域面积百分比等。
面雨量分析实现包括3个步骤。
步骤1 等值面分析:从雨量数据表查询数据 (含坐标、降水量),数据结构形如变量 (经纬度、降水量),进行等值面分析。所用接口IInterpolationOp.IDW,即运用 (IDW) 反距离算法进行插值,生成等值面,关键代码片段如下:
IInterpolationOp pIntOp=new RasterInterpolationOpClass ();
IFeatureClassDescriptor pFDescr=new FeatureClassDescriptorClass ();
pFDescr.Create (pFClass, Nothing, sFieldName);
IRasterRadius pRadius=new RasterRadiusClass ();
pRadius.SetVariable (12);
pIntOp.IDW (pFDescr, 2, pRadius);
步骤2 重分类:按给定的面雨量分段表 (.dbf),对等值面数据结果进行重分类,所用接口IReclassOp.Reclass,关键代码片段如下:
IReclassOp reclaOp=mapContext.CreateObject (“esriGeoAnalyst.RasterReclassOp”) as IReclassOp;
ITable pTable=OpenTableFromDBFFile (classficationPath, tableName, mapContext);
IGeoDataset reclaGeods=reclaOp.Reclass (rGeoDataSet, pTable, “FROM”, “TO”, “OUT”, false);
步骤3 利用步骤1、步骤2所得结果,计算所需各种统计数据,所用接口IZonalOp. ZonalStatisticsAsTable关键代码片段如下:
IZonalOp rZonOp=mapContext.CreateObject (“esriSpatialAnalyst.RasterZonalOp”) as IZonalOp;
IRasterAnalysisEnvironment rEnv=rZonalOp as IRasterAnalysisEnvironment;
ITable statisTable=rZonOp.ZonalStatisticsAsTable (rZoneGeoDataSet, rValueGeoDataSet, true);
4.4 地图服务发布与地图缓存 4.4.1 发布地图服务ArcGIS Server可以通过ArcGIS Server Manager和ArcCatalog发布地图服务。该系统利用4.1节提到的7个地图文档,运用ArcCatalog发布所需的7个地图服务 (BaseMapRaster,BaseAlertMap,BaseHydrosw,BaseStationMap,BaseMiniChina,BaseMiniMap和Isoline),为提高系统性能,关键参数设置如下:
① 动态服务,发布为非池化服务,静态服务发布为池化服务;池化地图服务是静态存在的、供多方共享的地图服务;而非池化地图服务是动态生成的、被访问者独占的地图服务,每增加一个用户,就会对应增加一个动态服务进程,增加服务器的负担,所以动态地图服务一定要慎用,并且当用户退出系统时要销毁其对应进程,保证动态进程不会无限增长。
② 每个池化服务约占用30~50 MB内存,综合考虑服务器性能和系统用户数量,设置池化服务的最小、最大实例数。
③ 根据应用程序特点和用户需求设置客户端请求超时 (Timeouts) 和服务等待 (Wait Service) 时间。
④ 程序应用时要把地图服务URL设置为主机IP地址,假如安装时为机器名称,可以通过修改\ArcGIS\server\system下的Server.dat,将其中的主机名替换为IP地址,重新启动ArcGIS Server地图服务即可。
4.4.2 生成地图缓存长期以来,地图渲染速度是WebGIS系统的致命弱点,很大程度上影响了其广泛应用,为提高地图响应速度,缩短用户等待时间,需要运用ArcGIS Server Catching功能建立服务器端地图缓存,该系统专题较多,所需的地理底图也比较多,设置科学、一致的比例尺才能发挥缓存的效果,重要配置方式如下:① 选择隐藏或者专门发布一个地图服务作为生成缓存的比例尺标准;② 根据各个专题具体应用,以1/2为变化率确定一般为10级的缓存比例尺,这10级要能够正确、合理地显示所有专题地理信息;③ 在设定10级缓存比例尺时还要确定建立地图缓存的瓦片起点 (Tiling origin),通常为最大地图范围的西北角坐标;④ 由以上确定的瓦片起点和10级缓存比例尺,并设置Catch Tile Formate\Tile Width\Tile Hight等参数,生成地图缓存;⑤ 按照④ 中的方式对每个地图服务都要生成10级地图缓存,花费的时间会比较长。而很多服务并不需要所有级别,故对相应地图服务,只生成其需要级别,再通过修改\arcgisserver\arcgiscache和\arcgisserver\arcgiscache\地图服务名称\目录下的conf.xml为确定好的10级比例尺,重新启动各个地图服务即可,这样可以节省生成地图缓存的时间。
建立满足需求的、科学的地图缓存,使得地图响应时间在0.1 s内,地图缩放、漫游时伴有动画效果,带给用户良好体验。
4.5 系统部署和负载均衡该系统部署在两台型号为HS21的IBM x86刀片机上,其硬件环境为8个2.83 GHz的CUP,8 GB内存,软件环境为Windows 2003 Server x64,IIS6.0,DOTNET Freamwork 2.0,ArcGIS Server 9.2,ArcSDE 9.2,为提高地图显示速度,确保系统安全、稳定运行,两台机互为热备,并通过array TMX 3000负载均衡器,对外实现IP地址映射。
5 小结文中论述了省级气象信息发布平台的建设背景、主要功能模块及其设计与实现关键技术。目前,该系统已在广东省气象业务中试运行一年多,为预报员和其他气象工作者提供丰富、形象的资料展现方式;尤其是基于地理模型的实时数据等值面分析、面雨量分析、台风路径缓冲区分析及台风影响范围的栅格叠加分析,为预报决策提供科学依据;同时,各种统计图表、空间分析结果图对科研人员有很大帮助。此外,通过各种分析成图,可检验观测数据正误[2],并能在地图中快捷地找出错误站点,以便及时修正。根据用户反馈意见,该系统仍需不断完善,以便更好地为气象预报工作服务。
[1] | 方海涛, 花连生, 方亚明, 等. 基于WebGIS和SVG技术的气象参数信息系统. 计算机工程, 2008, 34, (10): 264–268. DOI:10.3969/j.issn.1000-3428.2008.10.095 |
[2] | 刘旭林, 赵文芳, 刘国宏. 基于WebGIS的气象信息显示和查询系统. 应用气象学报, 2008, 19, (1): 116–122. |
[3] | 姚燕, 朱江, 薛蕾. Web GIS在气象通信信息系统中的应用与研究. 计算机工程, 2008, 34, (10): 271–273. DOI:10.3969/j.issn.1000-3428.2008.10.098 |
[4] | 刘品, 高江南, 谭萍, 等. 气象地理信息系统的设计与实现. 应用气象学报, 2005, 16, (4): 548–553. |
[5] | 吴焕萍, 罗兵, 王维国, 等. GIS技术在决策气象服务系统建设中的应用. 应用气象学报, 2008, 19, (3): 380–384. |
[6] | 郑卫江, 吴焕萍, 罗兵, 等. GIS技术在台风预报服务产品制作系统中的应用. 应用气象学报, 2010, 21, (2): 250–255. |
[7] | 孙利华, 吴焕萍, 郑金伟, 等. 基于Flex的气象信息网络发布平台设计与实现. 应用气象学报, 2010, 21, (6): 754–761. |
[8] | http://www.esri.com/software/arcgis/arcgisserver/index.html. |
[9] | 龙倩, 周新志. 基于ArcGIS Server开发的Web应用研究. 成都信息工程学院学报, 2007, 22, (6): 682–685. |
[10] | 陈兴华, 石金锋, 丛日盛. 基于WebGIS的城市地下管线信息系统的建立. 海洋测绘, 2008, 28, (1): 68–71. |
[11] | 汪琦, 吴健平, 范力铭. 基于ArcGIS Server的企业级GIS系统研究. 甘肃联合大学学报 (自然科学版), 2006, 20, (6): 83–87. |
[12] | 张新猛. JSP结合VML实现动态矢量数据统计图的绘制. 福建电脑, 2004, (7): 82–87. |
[13] | 刘敏. 用VML开发简易的水情WebGIS系统可行性研究. 广东水利水电, 2007, 8, (4): 82–84. |
[14] | 黄颖, 谢忠, 钟士彬. NET和VML及脚本技术在WebGIS系统地图文档显示中的应用. 测绘科学, 2006, 31, (4): 130–132. |
[15] | 程永, 高山. VML在ArcIMS中的应用. 软件导刊, 2009, 8, (2): 189–190. |