焦圣明,朱承瑛,包云轩,朱毓颖,祖 繁
(1.江苏省气象科学研究所,江苏 南京210008;2.南京信息工程大学 应用气象学院,江苏 南京210044)
国际上开展了将地理信息系统 (geographic information system,GIS)技术应用于气象的研究和尝试[1-5],收到了一定的成效;我国将GIS与气象结合起步稍晚,但也进行了积极的探索[6-8]。然而,目前GIS在国内外气象行业的应用设计大部分基于二维传统GIS,二维形态的GIS难以满足现实多维气象环境的需求,其表现力显得十分不足,在实际应用中存在很大的局限性。
“数字地球”对建立三维地理信息系统提出了更高的要求,三维GIS研究的发展必然会带动GIS 在气象、城市、海洋、地质等相关行业的广泛应用[9]。孙恺等[10]利用三维GIS实现了气象卫星云图三维模拟,姜仁贵等[11]开展了基于数字地球的洪水淹没分析及仿真研究,卢海滨等[12]基于NASA World Wind Java SDK研发了应用系统。随着Google Earth、Skyline、World Wind等一些数字地球软件的兴起和计算机硬件速度的提升,利用三维GIS技术实现气象行业应用已成为一个发展趋势。
本文利用三维地理信息基础平台WWJ (world wind JDK)的组件和应用接口进行研发,设计了交通气象信息共享系统结构、数据库框架以及系统功能模块,使用空间数据信息管理工具将传统的交通气象数据存储起来,结合三维地形地貌特征和重点结构物的模型对交通气象服务数据进行实时渲染,实现了交通气象信息直观的环境展示。目前,该系统在交通、气象等相关部门中投入使用,能够满足多元化用户的业务需求,取得了较好的三维表现效果,为交通运营决策提供了有力的支持和保障。
基于World Wind的交通气象信息共享系统开发目标:利用最新的技术研发手段,融合交通气象共享数据与地理信息数据,构建具有气象行业特色、适合交通气象服务应用的专业GIS系统,以满足交通气象服务对三维地理信息的业务需求,从而最终提高交通气象灾害预警的科学辅助决策能力。
该系统的开发必须坚持先进性、通用性、可扩展性、模块化和节约化相结合的原则,World Wind是一个可以修改源代码的开放平台,其开发的灵活性远远高于其它任何一款商业三维GIS平台。系统开发摆脱了商业GIS平台软件的束缚,这正是笔者选择此平台开发的一个重要原因,拥有完全的主动权,有利于开发者最大限度地满足自身行业服务的需求。
交通气象信息共享系统体系结构由数据层、服务层、应用层和客户层4个部分组成。基于WWJ的交通气象信息共享系统体系结构如图1所示。数据层是交通气象信息共享系统的数据基础,它为系统提供最基本的数据服务,系统数据包括基础地理信息数据、交通气象共享产品数据和WW 数据。其中基础地理信息数据主要有基于WMS地图、Shape文件等数据,其存储方式与传统的二维GIS 系统相似;交通气象共享产品数据有高速公路沿线气象站监测信息、雷达信息、气象卫星信息、台风信息、气象灾害预警预报信息等其它相关数据,它是最关键的核心数据;WW数据主要包括有Landsat7全球范围30~120m 分辨率的卫星影像,SRTM 的全球重点城市精细影像数据,Bing Imagey微软的高清晰影像地图,Open Street Map 开源地图,全球的行政区界、地名及标注数据。WW 的数据是按照金字塔模型来对高程数据和影像数据进行切片处理的,通过服务器访问接口建立了高分辨率的三维地形[11],利用开源地图服务软件包GeoServer搭建了基于WMS的地图服务,综合运用Java技术实现了交通气象数据服务和WW 数据的集成应用。服务层是建立在数据层之上,从数据层中获取需要的数据并提交给应用层进行处理,系统运用地图服务器和应用服务器,根据WWJ提供的组件开发接口以及对交通气象信息共享数据的规约,实现了交通气象信息共享数据与系统的无缝融合。应用层由地图服务、图层管理、数据展示、数据查询、气象要素道路反演分析和预报文档服务六大功能模块组成。客户层就是为用户提供了一个人机交互的功能,本文采用WW 的客户浏览器作为三维GIS的客户层,实现了数据集成和三维展示等功能。
图1 基于World Wind的交通气象信息共享系统体系架构
数据库设计是系统设计的一个重要环节,数据库设计的好坏直接关系到整个系统的性能。GIS 设计得再完美,如果数据响应表现乏力,也是一个不成功的应用。由于气象数据结构具有显著的时间特征,所以常用的空间数据模型难以胜任气象信息的处理应用。因此,在实际开发过程中,为了实现基础地理信息数据、交通气象共享数据和WW 数据的无缝融合,我们研究了一种适用于建立气象信息数据库的时空数据模型。交通气象信息共享系统的数据访问机制如图2所示。
图2 交通气象的数据库访问机制
交通气象信息共享产品数据种类繁多,实际应用的方式多样,为了能适应数据的变化,提高系统的可扩展性,在数据库设计上采用元数据驱动模式,产品数据均纳入元数据管理范畴,应用组件通过访问元数据来控制对具体数据库的访问,屏蔽应用组件对气象业务数据,尤其是文件型数据的直接访问。交通气象信息数据库总体设计如图3所示。
World Wind是一款虚拟地球的开源三维地理信息系统,由NASA (美国)国家航空和宇宙航行局联合出品[12]。它是唯一真正开放资源的3D 引擎,它的全部代码都是可获得的,允许无限制的用户化定制。海量的数据集成和超强的功能设计使得它成为一个十分理想的二次开发工具,用户可以充分、深入地使用这些数据和功能开发自己需要的功能。World Wind有基于.NET 语言和Java语言的2种开发包,基于Java语言的SDK (WWJ SDK)既能支持本地运行也能支持网络运行,且具有强大的跨平台特性,目前是NASA 官方仍在更新的重要版本,因此本文采用WWJ SDK 作为交通气象信息共享系统的二次开发组件。图4为基于WWJ SDK 的系统开发组件架构。
图3 交通气象信息数据库总体设计
WWJ SDK 主要由模型、视图、事件监听及数据等组成[13],模型由球体、图层等组成,视图是在模型的基础上用来控制用户视角,系统是通过视图控制器来实现与应用程序的交互,事件监听是指对用户界面操作事件进行监听和处理。WWJ的GIS组件群是实现系统GIS功能的核心,交通气象服务系统需要的是在GIS组件之上的交通气象数据集成、封装与展示。本文利用WWJ SDK 以类文件形式构建了一系列交通气象系统服务组件,完成交通气象数据的存取和应用模型的展示等功能,同时还为系统扩展提供了接口。
图4 交通气象信息共享系统开发组件架构
World Wind使用多分辨率分层技术为用户提供了海量的影像和DEM 数据服务,当用户缩放到不同区域时逐渐加载更多的细节。根据系统分层分块的结构,通过瓦片金字塔对海量数据进行划分,并以一定的形式缓存在本地目录。当用户浏览某一区域时,系统首先会从本地缓存中提取该区域的数据,如果文件存在就直接加载渲染;若本地缓存不存在,就从服务器下载需要此区域的数据再进行渲染。自构建的WMS服务器获取数据系统也是按此数据缓存机制处理。
系统在访问交通气象服务数据时也建立了相应的缓存机制。交通气象服务数据的缓存有两级,一级在服务器端,一级在客户端。当用户访问某类服务数据时,系统首先会自动搜索客户端查看要查询的数据缓存是否存在,若存在就直接解析加载,不存在则通过网络访问远程应用服务器;如果服务器本地端存在此时次数据的缓存则由Http协议传输给客户端后加载,不存在就需要通过数据库访问得到要查询的数据后再返还给用户处理,同时将数据写入缓存区。该数据缓存机制具有以下几个优点:①大大提高了访问效率和服务性能;②减轻了应用服务器端的负担;③使在无网络环境下的脱机访问成为可能。虽然这种缓存机制在较短时间片下访问能发挥优势,但针对某些需要不断更新的交通气象服务数据来说可能会存在数据更新不及时的问题,因此系统也提供了直接从服务器数据库获取数据的机制,但访问效率受到一定的影响。至于采用哪种数据访问机制由用户根据实际情况去选择。
相对于空间分布而言,交通气象服务的用户更关注气象信息的沿线分布状况,这就要求气象观测与预报信息均需反演到道路干线上,反演的定义请参见文献 [14]。本文算法最终目的是采用不同的颜色来反演交通道路沿线气象要素的等级划分,从而表明该段道路所受的天气现象影响。
拼图是绝大部分交通气象产品需要涉及的内容,传统意义上的拼图是指图与图之间的拼接,本文制作的拼图是基于站点的数据与数据拼接后将其反演到道路上的产品。本文拼图所用的算法的基本原理如下:首先获取所有高速公路沿线交通气象站观测或预报信息,同时读取出高速公路地图上的每一个信息点并搜索到该点最近的2个沿线附近测点数据,利用反距离权重法计算出该点的插入值,然后根据计算出的数值按要素等级划分重新构建出一个新的地图数据,最终根据等级用相对应的颜色在系统中展示出来,图5为气象要素拼图反演算法的流程。
算法实现的具体步骤如下:
步骤1 根据发送来的请求参数内容,取出相对应区域的高速公路矢量地图的所有线段组经纬度数据并分别存贮到各自的数组队列中,针对每组线段的点建立气象要素等级数组,数组初始值赋为缺省。
步骤2 取出区域内所有站点资料并初始化到数组队列。
步骤3 以高速公路上的点为中心、10km 为搜索半径查找离圆心最近两站点的数据,利用反距离权重法计算出该点的数据根据等级划分赋值。
图5 气象灾害道路反演算法的流程
步骤4 根据线段点不同的等级值记录拼图的线段组。
(1)如果当前点是高速公路一组线段的开始点则构建一个新的队列,并将此点的经纬度信息放进队列中去;
(2)取下一个点的等级数据,如果和上一个点的等级值相同且不是线段最后一个点,则将此点插入到当前队列,如果不等就将此队列记录存贮下来,然后再重新构建一个队列把当前点放进队列中循环本操作,直到当前点是线段最后一个点结束;
(3)重复 (1)、(2)直至高速公路所有线段组遍历完;
步骤5 按一定格式要求输出所有构建的拼图线段组;
步骤6 根据输出等级用相对应的颜色在系统中绘出这些线段组;
在传统二维中,地理对象一般由点、线、面三类要素组成。针对更为复杂的结构体,基本都是通过这三类要素组合表达出来。在交通气象业务系统中,为了实现三维效果的场景,需要建立相应的三维模型,选择适合系统要求的三维数据模型-KMZ 格式。本文采用三维建模工具SketchUP创建系统中需要的三维模型,模型创建后使用图片处理技术作一些渲染修饰后存成WWJ能处理的KMZ格式。系统三维模型的构建为用户提供了更直观、更形象、更真实的环境场景。下面给出3种SketchUP建模方法:①几何建模法,就是利用SktechUP的扩展工具构建出实物的粗糙框架,最后使用纹理图片进行渲染实现真实模拟;②纹理映射法,纹理映射技术能增强模型的逼真度,简化模型的复杂度,对程序渲染的实时性起到关键作用;③坐标系法,选择正确坐标系,导入其它一些二维矢量数据进行直接建模,能提高建模速度。图6是高速公路桥梁模型和影像图的叠加效果,其中桥梁模型由SketchUP 工具制作,高分辨的卫星影像来自微软的bing地图服务。
图6 SketchUP构建的高速公路桥梁和bing影像图的叠加效果
本文设计的基于World Wind数字地球模型的系统在华东区域交通气象信息共享业务示范性项目中得到了具体应用。该业务平台实现了地球三维浏览、定位飞行、图层控制、气象信息实时预警及预报产品动画显示等功能。通过交通气象自定义地图服务,将道路反演生成的XML数据以GIS图层的方式组织,在此基础上集成交通气象站信息,完成了实时监测预警、数值预报以及卫星云图的三维模拟等气象应用。通过数字地球组件和交通气象服务中间件仿真建模,为交通、气象等相关部门提供高速公路实时监测、预警、预报、服务等形象化的气象信息,给用户提供了人机交互的便利和数据基础。系统主要功能模块如图7所示。
图8是华东区域高速公路交通气象信息共享系统中的沿线气象监测站信息预警展示,图中的圆圈代表分布在华东区域高速沿线的交通气象监测站,圆圈颜色为绿色表示此站点的能见度观测数据大于1000 m,浅蓝色表示500~1000m,蓝色为200~500m,黄色为50~200 m,红色为小于50m,并且在站站之间的道路也用以上颜色进行反演绘制,用户移动鼠标至站点点击圆圈时系统会浏览到该站的所有监测信息。系统采用线程方式实现每分钟对不同气象要素的实时预警监测,当检测到监测要素低于设定阈值时,图8右下角会出现一个预警图标,图标右上方动态显示出小于阈值的站点个数。点击图标系统弹出小于阈值站点的详细信息的对话框,选择某个站后数字地球自动飞行到当前站点的位置,并以红色光圈进行闪烁预警。实践表明该系统具有较好的响应速度和三维表现能力,能够满足用户进行交通气象实时监测预警、营运决策和交通事故灾害评估的要求。
图7 交通气象信息共享主要功能模块
本文在World Wind Java SDK 的组件基础上进行了的二次开发,阐述了系统的设计架构,分析了系统研发的关键技术,最终构建了基于三维GIS的交通气象信息共享系统,系统集交通气象信息的报警、查询、统计与分析等功能于一体,在交通、气象等部门得到了实际业务应用,为交通营运管理、决策提供直观化数据,大大提高了交通气象服务的水平和效果。随着系统功能模块的不断完善,将会具有较好的应用前景。文中对重点结构物三维模型的设计和植入进行了一些探索,对于要用World Wind 进行三维模型开发的相关人员有一定的借鉴意义。后续工作将深入探讨交通气象灾害的内在机理,并尝试通过高性能网格计算进行气象数据的实时处理实现高影响天气灾害的动态仿真建模。
[1]ZHAN Shaobin,ZHOU Yunxuan,CHENG Bin,et al.Researching model of weather radar system based on grid computing and 3S [J].Computer Engineering and Applications,2007,43 (28):196-198 (in Chinese). [湛邵斌,周云轩,程彬,等.基于3S与网格计算的气象监测系统模型研究 [J].计算机工程与应用,2007,43 (28):196-198.]
[2]Gulliver J,Briggs D.STEMS-Air:A simple GIS-based air pollution dispersion model for city-wide exposure assessment[J].Science of the Total Environment,2011,409 (12):2419-2429.
[3]Gastli A,Charabi Y.Solar electricity prospects in Oman using GIS-based solar radiation maps [J].Renewable and Sustainable Energy Reviews,2010,14 (2):790-797.
[4]Grassi S,Chokani N,Abhari R S.Large scale technical and economical assessment of wind energy potential with a GIS tool:Case study Iowa[J].Energy Policy,2012,45:73-85.
[5]Wang Y,Huynh G,Williamson C.Integration of Google Maps/Earth with microscale meteorology models and data visualization [J].Computers &Geosciences,2013,61:23-31.
[6]ZHAO Wei,ZOU Zhengrong,LI Jianwen.Design and implementation of simulating air pollutant dispersion based on GIS[J].Computer Engineering and Design,2008,29 (10):2655-2661 (in Chinese).[赵伟,邹峥嵘,李建文.基于GIS的大气污染扩散模拟的设计与实现 [J].计算机工程与设计,2008,29 (10):2655-2661.]
[7]JIAO Shengming,BAO Yunxuan,GUO Jing,et al.Design and implementation of RIA-based information platform of weather station [J].Computer Engineering,2010,36 (20):217-219 (in Chinese). [焦圣明,包云轩,郭静,等.基于RIA 气象站信息平台的设计与实现 [J].计算机工程,2010,36 (20):217-219.]
[8]ZHANG Sijin,WEI Ming.Atmospheric data processing and analysis system programming based on GIS base data [J].Computer Engineering and Design,2011,32 (3):923-926 (in Chinese).[张思进,魏鸣.基于GIS基数据的大气资料处理分析系统设计[J].计算机工程与设计,2011,32 (3):923-926.]
[9]XU Suwei,WANG Junjian,SHENG Yehua.Review on the status of 3DGIS/4DGIS/TGIS and the development trends[J].Computer Engineering and Applications,2005,41 (3):58-62(in Chinese). [徐苏维,王军见,盛业华.3D/4DGIS/TGIS现状研究及其发展动态 [J].计算机工程与应用,2005,41(3):58-62.]
[10]SUN Kai,XU Xiaogang.Study of satellite cloud image simulation technology based on world wind [J].Computer Engineering and Applications,2011,11 (22):5328-5330(in Chinese).[孙恺,徐晓刚.基于World Wind平台的卫星云图模拟技术研究 [J].科学技术与工程,2011,11 (22):5328-5330.]
[11]JIANG Rengui,XIE Jiancang,LI Jianxun,et al.Design and application of migration information system based on World Wind [J].Journal of Computer Applications,2011,31(7):2001-2003 (in Chinese). [姜仁贵,解建仓,李建勋,等.基于World Wind的移民信息系统设计与应用 [J].计算机应用,2011,31 (7):2001-2003.]
[12]LU Haibin,ZHENG Wenfeng,YIN Zhengtong,et al.NASA World Wind JavaSDK digital earth client development[J].Science of Surveying and Mapping,2009,34 (3):169-171 (in Chinese). [卢海滨,郑文锋,银正彤,等.NASA World Wind JavaSDK 数字地球客户端开发 [J].测绘科学,2009,34 (3):169-171.]
[13]JIANG Rengui,XIE Jiancang,LI Jianxun,et al.Analysis and simulation of flood inundation based on digital earth [J].Computer Engineering and Applications,2011,47 (13):219-222 (in Chinese).[姜仁贵,解建仓,李建勋,等.基于数字地球的洪水淹没分析及仿真研究 [J].计算机工程与应用,2011,47 (13):219-222.]
[14]WU Huanping,WEI Jinchao,ZHAO Linna,et al.Automatic generation of road meteorological graphic and text based on GIS [J].Computer Engineering,2010,36 (22):277-279 (in Chinese).[吴焕萍,韦锦超,赵琳娜,等.基于GIS的道路气象图形与文本自动生成 [J].计算机工程,2010,36 (22):277-279.]