2. 国家气象中心, 北京 100081;
3. 武汉理工大学, 武汉 430070
2. National Meteorological Center, Beijing 100081;
3. Wuhan University of Technology, Wuhan 430070
随着公众气象意识的增强,人们对气象信息的需求越来越高,同时伴随着气象业务信息化建设步伐的加快,气象部门积累了越来越多的各类综合气象探测资料和预报数据。气象信息综合分析处理系统能够对这些实时获取的全球观测资料、卫星云图、遥感图像、数值预报产品等进行准确、迅速处理,并制作出各种形式的天气预报指导产品。如何将这些常规气象观测和预报信息进行实时的综合在线展现,快速、及时、形象地发布以便为气象工作人员和公众服务,已成为气象信息网络发布平台建设的重要内容。
地理信息系统结合网络形成的网络GIS,可以有效满足随时、随地的气象信息访问需求,能够为用户提供在线的空间数据浏览、查询和分析功能。近年来,网络GIS已经被广泛应用于环境保护、森林防火、城市规划、交通等领域[1-4]。而其在气象领域也有了一定的研究和实践,积累了不少成功案例[5-9],为配合北京奥运会气象服务,北京市气象局利用开源网络GIS平台MapServer构建了气象信息网络展现平台;广东省气象局建立了基于网络地理信息系统的常规气象资料共享系统;国家气象中心也利用国内拥有自主创新技术的SuperMap构建了基于网络GIS的气象资料实时监控平台。但这些平台都是基于页面服务器模型,在界面设计、交互操作、响应速度等诸多方面都不能令人满意,制约了网络GIS的发展。另外,由于气象数据时效性强、数据更新频繁且数据量巨大,使得基于页面模型的网络GIS不能很好地表达气象信息,这也制约了气象信息网络GIS的发展。
RIA (Rich Internet Applications, 丰富互联网应用程序) 是一种将桌面应用程序的交互用户体验 (反应快、界面丰富等优点) 与传统Web应用部署灵活性结合起来的网络应用程序。RIA给用户带来更丰富、更具有交互性和响应性的全新体验,是一种全新的Web应用解决方案,也为网络GIS发展带来了新的活力。在现有的几种RIA客户端开发技术中,以Adobe公司的Flex较为成熟,因此,系统建设选择Flex技术作为客户端显示手段,对基于Flex的网络GIS气象信息发布系统进行研究,以期对解决目前气象领域网络GIS系统所面临的问题有所裨益。
1 系统目标气象信息网络发布平台是将加工处理过的各类气象观测资料和预报产品进行实时综合在线展现的平台。由于系统发布的气象产品信息和各类观测资料数据量巨大,且系统业务化运行后,既要面向气象部门的工作人员 (预报员和其他气象服务人员),为应急气象服务提供一个良好的基于网络的气象信息共享平台,又要面向普通民众,为民众提供一个更便捷的气象信息访问平台。因此,客观上系统应满足以下要求:适应气象信息大数据量、多数据源的特点;具有丰富的界面表现和快捷的交互操作;提供多元的信息表现和可视化功能;具有方便灵活的跨应用集成能力和良好的扩展性。
2 系统总体框架及主要功能 2.1 系统总体框架根据系统建设目标以及气象信息网络发布平台的业务要求,结合Flex和ArcGIS Server技术确定了系统建设总体框架由以下4部分组成:数据层、服务层、表示层和客户层,是一种典型的多层体系结构 (图 1)。
|
|
| 图 1. 系统总体框架图 Fig 1. Framework of the application system | |
数据层:指应用数据的存储层。该层存储了系统所涉及的所有数据,包括气象业务数据 (如实时观测资料、预报预警数据等)、基础地理信息数据 (即空间数据) 以及社会经济、人口等数据。
服务层:指运行在相应服务器上的各种服务。包括GIS服务、Web服务以及LiveCycle Data Service (LCDS) 等服务。GIS服务器提供了栅格地图服务、矢量地图服务、属性查询服务等GIS服务,由这些专题服务通过ArcSDE实现对数据层的数据库查询操作;Web服务器提供了Web应用和Web服务,并由这些服务使用GIS服务器上的各种服务;LiveCycle Data Service是Flex组件与服务器端交互的中间件,是空间数据和非空间数据查询和访问的接口。
表示层:实际上代表了用户和应用程序其余部分之间的接口,以Flex或Flash可视化控件的形式向数据服务层请求不同的数据服务。基于Flex的网络GIS将界面分解成了许多既可以和用户直接交互又能与服务器进行通信的小单元模块,其中,为外部提供的GIS服务接口包括,地图显示对象 (包括地图、图例、指北针组件、图层目录组件等)、几何对象、功能对象、图例编辑显示对象和工具对象等。
客户层:指应用程序的客户端。这里指装有Flash播放器的浏览器,如IE浏览器或者FireFox (FF) 浏览器等。Flash播放器用来执行编译后的SWF文件,由于它在浏览器中已得到广泛应用,所以客户端无需下载额外的GIS插件。用户通过Flash播放器中的应用程序进行交互操作与体验,最终实现气象信息的访问。其客户端主界面见图 2。
|
|
| 图 2. 系统客户端主界面示意图 Fig 2. Main user interface of the system | |
2.2 运行流程
用户通过客户端浏览器 (IE/FF) 访问气象信息发布平台的URL资源,然后表示层以组件方式快速构建用户界面 (由多个小模块或组件单元组成),同时根据用户请求选择调用服务层的相应服务 (栅格地图服务、矢量地图服务、属性查询服务以及其他Web服务),通过中间件 (LCDS) 的连接最终实现各类数据的访问。
2.3 主要功能基础地理信息显示:一方面,用户可以通过选项选择获取网络上已经发布共享的各种基础地理信息服务,如GoogleEarth服务、ArcGIS Online服务等,以便实时快速地获取地理背景信息。另一方面,作为气象部门的业务系统,还提供了高精度的国家基础地理信息数据,如1:250000空间数据 (部分地区还提供了1:50000的地图数据),主要包括省、市、县、乡、村庄、6级河流、国家公路、省公路、县级公路以及DEM等要素,并以专题图的形式进行高质量的分级可视化。丰富的地理信息为气象信息的可视化分析提供了必要的基础地图数据支持。
气象资料显示:支持各类实时观测资料和预报数据的显示,主要包括实时的雷达、云图、多要素气象站资料、灾害性天气落区预报 (如强降水预报、强对流潜势预报、沙尘、雾区等)、多要素全国城市天气预报、灾害性天气预警信号、实时灾情直报信息、台风及其预报路径信息等。系统具有较好的扩展性,通过简单快捷的定制就能接入更多气象要素进行发布。各类气象信息均以专题图的形式显示,用户可以选择一类或几类气象要素与基础地理信息叠加,并且可以方便地控制显示要素的透明度以及图例的显示。对于部分数据量较大的气象产品系统支持按区域方式查询,用户选择相应区域,当前地图范围自动缩放到选择区域进行查询要素的显示。
信息查询与显示。系统提供了多种交互式查询方式:任意点击或选择要查看的区域范围,查询结果将以提示框或表格形式显示。例如,用户在自动站显示图层中选定要查看的区域后,查询结束将选中自动站信息以列表形式输出,点击列表的每一条记录可以查看更详细的信息。按省份查询。从省份下拉列表框选择要查看的省份,查看该省份的一些气象数据信息,如24,48,72h的城市天气预报。鼠标查询。鼠标悬停或点击相关要素时,提示框显示该要素的详细信息,如预警、灾情直报定位显示后,鼠标悬停在定位点时提示窗口显示该处的相关预警灾情信息;鼠标悬停在台风各节点上可以查看该台风节点位置、风圈半径、风速等信息,点击节点可以显示七级和十级风圈以及该节点各时效预报路径。
数据下载与服务。系统提供了各类数据的下载功能,数据格式主要包括MICAPS,KML和GML等,用户可以将在线获取的数据通过其他工具作进一步的可视化分析,如KML数据可以加载到Google Earth中进行三维表面可视化分析;GML数据可以直接被通用的GIS软件访问。为方便其他应用程序的调用,系统还提供了Web服务接口,如开放地理空间信息联盟 (OGC) 的网络要素服务 (WFS)、网络覆盖服务 (WCS)、网络地图服务 (WMS) 等标准服务接口。系统开发还引入了RSS (Really Simple Syndication) 技术,利用RSS的信息聚合、推送能力,对时效性较强的气象信息进行主要信息 (元数据) 的抽取,实现了气象灾害预警、气象灾情等实时信息的订阅功能,因此,PDA、手机、邮件列表等用户也可以通过URL随时访问。
气象信息空间分析。利用GIS的空间分析能力,系统实现了初步的空间信息分析。如用户可以根据台风节点风圈半径 (七级和十级风圈半径) 设定分析参数,进行缓冲区分析得出台风的可能影响范围,并将影响范围内的图层属性信息以列表的形式输出,点击列表查看详细信息,也可将列表做进一步的分析,生成统计图表 (如统计某一地点 (城市) 台风经过次数、经过时间规律图等) 打印输出;用户可以根据不同省份、不同时间段、不同灾种以及灾害等级等多条件的组合,对实时灾情进行查询,将查询结果进行快速地图定位、生成统计分图表,对灾情可能影响范围进行分析等。GIS空间分析为气象信息提供了进一步分析的能力,提供了更为直观的数据服务。
网络地图标绘与输出。地图标绘是指在地图背景上标绘各种具有空间特征的事、物的分布状态或行动部署。系统提供了用户交互式综合标绘功能,包括标绘一定的几何图形、文字以及符号等,以进一步增强分析与输出能力。系统还提供了将各种气象产品以专题图的形式或者各种要素叠加显示的形式打印输出功能,并支持添加图例、打印预览等操作,也支持将各类气象信息分析结果 (如台风缓冲区分析图、灾情影响范围图等) 打印输出。
3 系统实现的关键技术 3.1 数据组织与管理气象数据是与地理空间信息密切相关的数据。由于系统涉及数据种类较多,既包括气象业务数据 (如实时观测资料,预报预警产品等),又包括基础地理信息数据,以及社会经济、人口数据,而且数据来源众多,既有MICAPS文件格式的气象预警预报数据,又有以数据库形式存储的实时观测气象资料,这些均使得该气象信息网络发布平台需要良好的数据组织与管理。
对于以数据库形式存储的数据,如实时获取的大量观测资料、灾情直报数据、灾害性天气预警信号等,在保持原有数据库结构不变的基础上,设计视图进行管理,以便得到最小数据集提高数据访问效率。GIS服务器对数据库进行访问时,需通过空间数据转换实现数据的空间化,再由表示层进行可视化显示。
对于其他以文件形式存储的气象数据,如实时获取的大量雷达、云图等栅格数据,以及天气预报落区等矢量数据,均采用空间数据库技术统一管理,利用空间索引机制来提高数据访问效率。应用程序通过空间数据库引擎ArcSDE来访问Oracle中的气象数据。这些数据均经过数据转换处理后才进入空间数据库。对于基础地理信息、社会经济、人口等数据则直接进入空间数据库,且进行了空间一体化关联存储。所有存储与管理的数据,均建立了元数据表,如数据名称、数据时效、数据到达时间等,为应用程序的访问提供可靠的元数据。
3.2 基于ModelBuilder的气象数据转换ModelBuilder是ArcGIS中使用Geoprocessing (即地理处理) 的一种方式,为设计和实现空间处理模型提供了一个图形化的建模框架,可以通过直接拖拽的方式将工具组织成完整的流程并执行,对于要使用多个工具的操作过程来说非常方便快捷,而且可以得到明晰生动的流程图,有助于理解整个操作过程[10]。
气象信息综合分析处理系统 (Meteorological Information Comprehensive Analysis and Process System, 即MICAPS) 经过多年的发展与应用,其数据文件已经成了气象领域目前应用最广泛的数据交换格式,但这些格式均不能被通用GIS软件共享和访问。GIS中空间数据是按矢量模型和栅格模型进行组织和管理的,矢量数据又细分为点、线、面3种类型,同类型的矢量数据可以形成矢量图层;MI-CAPS数据中,不同种类的信息可以存储在一个图层中,如封闭线、普通线、点符号、线符号、文本等。而在常用的GIS软件中特别是ArcGIS的数据组织中是不允许将不同类型的矢量数据 (如点、线、面存在于同一图层) 在同一层中表达。因此GIS应用于气象领域,首要解决问题的就是气象资料的数据转换问题。
MICAPS 1类 (地面填图)、3类 (通用填图和离散点等值线)、7类 (台风路径)、8类 (城市站点预报)、14类 (记录修改后的等值线) 均可以转换成矢量数据进行读入,如转换成Shape文件。MICAPS中4类 (如云图、雷达以及模式输出产品) 等则可以转换栅格数据,如Grid文件。转换后的数据进行重新组织形成多个图层,再结合气象符号采用不同的专题方式进行渲染绘制出不同的专题图。
在建模过程中,除了ArcGIS本身提供的地理处理组件外 (如空间数据导入组件、数据合并组件),还利用二次开发机制扩展了处理气象数据的模型组件,以完成整个数据处理流程,其中,MICAPS2SHP组件实现了MCIAPS格式到GIS支持的空间数据格式Shape file的转换操作;Import Radar组件和Import Cloudy组件分别实现了雷达、卫星云图到GIS支持的栅格数据格式GRID的转换操作。图 3为云图的后台数据加工转换模型。
|
|
| 图 3. 云图的后台数据加工转换模型 Fig 3. Background data process and conversion model of cloud picture | |
3.3 基于瓦片技术的地图服务缓存
瓦片式GIS可以分为两种类型[11]:第1种是客户端瓦片技术,即在客户端将本来只须1次请求即可获得的地图图片分解为多次请求,由客户端将这多次获得的地图图片组合起来,形成1幅完整的地图,但它对于WebGIS服务器和网络的荷载很大;第2种是服务器端的瓦片技术,即预先在服务器上切割出“金字塔"结构的地图图片,提供给客户端来访问,这种方式不涉及WebGIS服务器的解析和地图生成过程,而是一个存储的图像加载,因此其速度比客户端瓦片技术和非瓦片式GIS要快得多。
气象信息网络发布作为一种地图专题服务,要解决的关键问题之一就是如何提高地图传输与显示效率。网络通信代价和数据存取是影响系统效率的主要因素,在现有网络及设备的约束条件下,为了减少网络传输量实现高效通信,该平台采用了基于瓦片的地图服务缓存技术,即基于金字塔模型来分层组织地图。基于金字塔模式的瓦片地图服务框架,首先预生成规则的瓦片地图存储于硬盘目录下,待需要时地图以链接图片的方式快速定制[12]。根据ArcGIS Server的缓存机制及系统建设需要,将系统基础地图按不同比例尺 (1:1000000,1:5000000等) 分为0~15级地图切片,每级地图切片都有相应的坐标值与索引值。当客户端操作地图滑竿请求显示更大比例尺地图时,图片的数量发生裂变,客户端根据地图显示范围进行计算,得出请求范围覆盖到的瓦片数据的层次号和行列号,并向服务器发出请求,服务器通过索引进行检索,得出所需各瓦片数据的坐标范围,加载图片。
由于基础地图数据主要作为底图显示,相对变化较少,能很好地适应上述缓存策略,因此利用ArcGISServer地图缓存机制将其制作成静态图片,当系统需要时通过URL的形式调用静态图片;对于栅格气象数据,云图、雷达等实时数据则只能采用实时动态缓存,当用户需要时,将相应的瓦片调出使用。这样既方便了基础地理数据的管理节省了硬盘空间又减轻了服务器端的负载大大提高了气象数据的显示效率。
3.4 基于Flex的地图展示技术Flex是由Adobe公司发布的RIA应用程序开发框架,它拥有丰富的用户界面组件,其开发模型由Action Script3(兼容ECMAScript的面向对象的脚本语言) 和MXML (基于XML实现的标签化语言,用于可视化编辑) 模型描述语言以及扩展类库组成,提供了基于Http Service, WebService和RemoteObject的3种与服务器端通信方式[13-15]。Flex开发者使用直观的MXML语言来定义丰富的用户界面,通过Action Script语言实现客户端的应用逻辑,最后由Flex编译器编译成智能的SWF格式的客户端应用程序在Flash播放器中运行。
丰富互联网应用程序给网络GIS表示层开发带来了一种全新的开发模式,将Flex特效引入地图,特别是对空间要素点、线、面的渲染,为客户端的地图显示带来很好的视觉效果。应用ArcGIS API for Flex, 可以在不安装ArcGIS Server软件的情况下基于在线地图服务进行应用程序的开发,以Web-Service的方式调用ArcGIS Server的服务资源 (如地图集、地址定位和地理处理等模型),结合Flex提供的各类组件 (如Grid, Chart等),构建表现出色、交互体验良好的富互联网应用程序[16]。
在系统设计中,采用的ArcGIS Server Flex API应用程序接口充分利用了ArcGIS服务强大的制图、地理编码和地理处理能力。应用程序的最终用户只要点击程序中的一个按钮,就可以实现诸如在交互式地图中发布本地数据、搜索和显示GIS数据 (要素与属性)、定位和识别要素以及执行复杂的空间分析等功能。
Flash播放器本身不仅具有栅格数据的显示能力,还具有矢量数据绘制能力和强大的交互能力[17]。在基于Flex的网络GIS气象信息发布系统中,首先根据客户端请求,通过气象地图服务和LCDS调用服务器端的业务逻辑,返回数据后再利用Flash播放器的客户端计算能力和矢量数据绘制能力,在客户端转换成相应的Flex对象,将栅格地图服务、矢量地图服务叠加显示。同时,它也允许将暂不要求交互的、表现力要求不高的基础地图数据,作为背景层地图在Flash播放器中叠加展示,这样可以充分利用服务器和客户端的计算资源,平衡它们之间的负载提高系统运行效率。
4 系统性能为了检验Flex, RIA技术对系统运行效率的提升,对该系统做了简单的性能测试。在服务器硬件环境下,使用loadrunner9.1通过模拟虚拟用户进行压力测试。测试场景设计:构建瞬间50用户并发操作,测试时间为3 min;构建300用户并发。先构建50基本用户操作,通过loadrunner设定余下250用户,每10s增加50用户,达到峰值时测试时间为5min, 采用缓慢退出方式。由测试结果 (表 1) 可以看出,当300以内用户并发时单个用户的系统响应时间都小于0.02 ms, 有效提高了系统运行效率和用户交互速度。
|
|
表 1 系统压力测试结果 Table 1 Pressure test of the system |
5 结论与讨论
本文介绍了依托信息领域最新发展的丰富互联网应用程序以及分布式网络GIS技术创建的基于Flex的网络GIS气象信息发布平台的设计与实现。系统建设表明,将Flex与RIA应用于气象领域的网络GIS系统是可行的,能够很好地将各类气象观测和预报信息进行实时的综合在线展现。本系统与以往气象网络GIS相比,具有以下特点:
1) 数据显示与更新。气象数据以实时数据居多,更新频繁,数据量大,这给数据叠加显示和分析带来了困难,基于页面的网络GIS很难将不同数据源中的数据集成到一个界面中显示,且用户无法与图形元素进行直接交互,而Flex可以很好地解决这些问题,并且它的事件绑定机制可以使显示数据随数据源的改变而自动更新,无需手动请求,极大方便了大量实时气象数据的显示与更新。
2) 界面元素。系统开发结合ArcGIS APIfor Flex和Flex API,具有丰富的、组件式界面元素,方便了用户的交互,如点击台风节点,即可显示该节点的详细信息,方便预报员作进一步分析。另外,融合了图片和动画,也带给公众良好的视觉体验。
3) 客户端缓存。在Flex中数据能够被缓存在客户端,从而实现一个响应速度更快且数据往返于服务器次数更少的用户界面,降低服务器的内存消耗。另外,Flash播放器是基于异步客户端/服务器通信的模型,通信中只传输已更改的那部分数据,无需刷新整个页面,提高了客户端的响应速度,实现了更好的用户体验。
4) 跨应用集成性。系统通过调用WebService实现空间数据操作,并提供了各种开放的Web服务接口,很好地解决了空间数据的互操作和跨平台问题,增强了系统的可扩展性和可移植性。
该平台投入业务化运行后,不仅给预报员和其他气象工作人员提供了非常直观的浏览数据方式,也有利于提高应急气象服务部门的信息获取、快速反应、组织协调、决策指挥、防灾减灾、综合服务等能力,而且也为公众提供了交互良好的气象信息网络GIS平台。该系统的成功实施为全国范围内建设更为高效的气象信息网络发布平台奠定了技术基础。
| [1] | 秦永生, 刘振乾. 基于WebGIS的流溪河水库水质管理信息系统. 人民黄河, 2009, 31, (3): 59–60. |
| [2] | 王妍玮, 王述洋, 杨宏鹏, 等. 基于B/S结构的WebGIS森林防火系统. 林业劳动安全, 2007, 20, (4): 40–42. |
| [3] | 宋易蔓, 朱世斌, 杨金玲. 基于WebGIS的数字城市规划系统研究. 测绘与空间地理信息, 2008, 31, (1): 39–42. |
| [4] | 桂岚, 李跃军. 基于WebGIS的交通基本建设管理信息系统. 计算机工程, 2002, 28, (3): 189–190. |
| [5] | 吴焕萍, 罗兵, 曹莉. 地理信息服务及基于服务的气象业务系统框架探讨. 应用气象学报, 2006, 17, (增刊): 135–139. |
| [6] | 庄立伟, 刘庚山, 王石立, 等. 基于WEBGIS的农业气象信息共享与发布技术应用研究. 应用气象学报, 2004, 15, (6): 745–753. |
| [7] | 高梅, 张文华, 接连淑. WebGIS技术在气象科研数据共享系统中的应用尝试. 应用气象学报, 2004, 15, (增刊): 168–170. |
| [8] | 刘旭林, 赵文芳, 刘国宏. 基于WebGIS的气象信息显示和查询系统. 应用气象学报, 2008, 19, (1): 116–120. |
| [9] | 何婉文, 石小英, 梁苑苑, 等. 基于网络地理信息系统的常规气象资料共享系统. 广东气象, 2006, 2: 50–52. |
| [10] | An Overview of Model Builder.[2009-09-15]. http://webhelp.esri.com/arcgisdesktop/9.3/index.dm?TopicName=An_overview_of_ModelBuilder. |
| [11] | 蒋波涛, 朱强, 钱旭东. WebGIS开发实践手册———基于ArcIMS? OGC和瓦片式GIS. 北京: 电子工业出版社, 2009: 235-268. |
| [12] | What Is Map Caching? [2009-09-15]. http://webhelp.esri.com/arcgisserver/9.3/java/index.htm |
| [13] | 吴涛, 戚铭尧, 黎勇, 等. WebGIS开发中的RIA技术应用研究. 测绘通报, 2006, 6: 34–37. |
| [14] | Joshua Noble, Todd Anderson, Flex3 Cookbook. Beijing: O'Reilly, 2008: 457-482. |
| [15] | 吕晓鹏. 精通Flex3.0———基于ActionScript3.0实现. 北京:人民邮电出版社, 2008: 247–333. |
| [16] | ArcGIS API for Flex.[2009-09-15].http://www.esri.com/getting_started/developers/flex-development-tools.html. |
| [17] | 刘二年. 基于Rich Internet Application技术的WebGIS研究. 南京: 南京师范大学, 2006. |
2010, 21 (6): 754-761


