Remote Sensing Science May 2013, Volume 1, Issue 1, PP.15-20
Kunming Three-dimensional Water Conservancy Information Presentation System Rui Jiang Qujing Normal University, Faculty of Computer Science and Engineering, Qujing Yunnan 655011, China Email: jr_75@163.com
Abstract This paper demonstrates how Water Conservancy information presentation system, not demanding in special analysis but in interface presentation, is constructed with a framework which supports multiple information sources as well as diverse data forms by taking advantage of compatibility & expandability of open source software. This framework with it practical value contributes not only to decision-making in Flood Control and Drought Relief Office of Kunming but to Meteorological & Mineral Resources Departments. Keywords: Water Conservancy Information Presentation System; Open Source Software; 3D GIS
昆明市三维水利信息展示系统
*
蒋锐 曲靖师范学院 计算机科学与工程学院,云南 曲靖 655011 摘
要:水利信息展示系统是一类空间分析功能不太复杂,却对界面显示要求较高的应用型地理信息系统。要求以直观
的方式显示和查询各水文要素的属性。文章结合开源地理信息系统的应用,提出了三维水利信息展示系统的构建模式。 该模式不仅可以对水利信息进行直观展示,还能广泛利用于气象、矿产等部门,具有一定的使用价值。 关键词:水利信息展示系统;开源软件;三维地理信息系统
引言 地理信息展示系统是一类空间分析功能不太复杂,却对界面显示要求较高的应用型地理信息系统。与 其它地理信息系统相比,展示系统很少涉及复杂的空间分析功能,但要求对地理信息进行直观、生动的显示, 这些特性使其在非科研单位特别是政府部门得到广泛使用。一些展示系统构建于大型商业 GIS(Geographical Information System)软件之上,不但成本高昂,还浪费了商业 GIS 强大的空间分析功能,因而难以推广运用。 开源软件以其低廉的使用成本、开放的构架体系和先进的技术打开了另一扇解决问题的大门,并且日益成为 软件产业不断发展的重要基础。 昆明市三维水利信息展示系统是为应对日益艰巨的防汛抗旱任务和日益膨胀的水文气象信息而产生的 用于防汛抗旱指挥决策的系统。 昆明市是云南省政治、经济、文化中心和交通、通信枢纽,位于滇东高原中部,雨季主要受印度洋西南 暖湿气流控制,多年平均降雨量为 1006 毫米,每年 5-10 月降雨约占全年降雨量的 80%左右,单点暴雨突出, 这些条件造成昆明市洪涝灾害时有发生。 过去在指挥决策过程中大量依靠纸质图件的工作方式已经不能适应信息量急剧膨胀的现代社会。为实现 *
项目依托:曲靖师范学院校级项目(2010QN004) ,云南省发展基金(2012FZ101) - 15 http://www.ivypub.org/rss
高效、有序的防汛抗旱指挥调度,需要建立一个处理高效、显示直观、使用简单,可以现场使用的展示系统。 系统的基本需求是:能够对昆明市遥感影像图像、河流、泵站、闸门、水库和水文监测点进行三维显示;对 河流、水库和水利设施点的水情监测数据、属性数据,多媒体数据进行查询和统计。
1 相关工作 能够对卫星图片进行三维显示的软件目前主要有Google的Google Earth、NASA的World Wind、微软的 Virtual Earth和ESRI的ArcGis Explorer等,这些软件各有特点,贾文珏比较了Google Earth和World Wind的异同, 认为两者皆是可视化的三维地球浏览器,功能强大,具有三维可视化的能力,采用了先进的流传输技术,但 是又具有很多不同之处。Google Earth是一款面向大众的商业软件,侧重满足大众的浏览、导航、量测的要求; World Wind面向科学研究工作者,提供了一个开放的地理信息框架,可以在此基础上进行进一步的开发[1]。 Google Earth广泛应用于各种行业,得到大量用户认可,但扩展性不足,虽然提供了一套API(Application Programming Interface),但开放的功能有限且与其它软件的数据交换方式单一。而作为开源软件的World Wind 却具有高的扩展性,能与其它软件结合构成功能更为强大的系统。 Adrian weber等利用World Wind Java SDK(以下简称WWJ)对老挝北部地区的可达程度进行了可视化展 示。他们将到达每个地方所需时间进行栅格化、分级,然后透明地覆盖于卫星图片上,从而得到一种类似三 维的效果,并开发了一个原形系统,但该系统只是简单利用WWJ的显示功能,却无法处理用户的交互信息[2]。 Wanapong Kaewsing等的数字泰国项目(Digital Thailand Projec)利用World Wind作为客户端显示平台,服务 器端由MapServer等开源软件提供图片数据,从而使不同部门提供的地理信息能够通过图片的方式进行交换和 共享,使用户能够通过互联网络简单地使用地理信息。但系统同样无法与用户进行交互[3]。 国内十年前就有了对开源软件的利用实践[4],近年来也有一些开源软件的介绍[5, 6]和研究[7],但总体来说 国内对开源软件的运用大多停留在学习研究中,运用于具体项目的介绍并不多见,这主要是由以下原因造成 的:开源软件远没有商业软件成熟,其利用存在一定的未知风险,这些难以掌控的风险增大了项目失败的可 能性;版本的更新比较频繁,发布的接口经常发生变化,兼容性较差;大多由JAVA语言编写,对国内大量 使用的Windows桌面应用程序开发没有竞争力;应用专业性强,对使用者要求较高;对中文的支持有待提高; 帮助文档存在一定的滞后性和错误,网上中文帮助资源少。这些因素在复杂的GIS开发中体现更为突出,导 致很多项目只能忍受高额的软件成本,却无法综合利用大量低廉的二维、三维开源软件。
2 系统构架 2.1 系统开发模式 目前针对地理信息系统的应用开发有多种技术手段可供选择。Steiniger和Hunter把这些技术手段分为两个 大类:类库模式和插件模式[8]。 类库模式是开发者利用具有一定功能的中间件来搭建系统应用,这些中间件包括以下类别,数据的输入 /输出及格式转换组件(如GDAL/OGR类库)、几何图形库。(如JTS)、投影组件(如Proj.4)、地理信息处 理及分析组件和其它类型的组件。而一些具备完整功能的框架(如GeoTools、SharpMap和MapWindow GIS等) 也被广泛用于地理信息系统的二次开发中。 插件式开发模式是针对一个具体的GIS软件,使用脚本语言开发一些插件来拓展原有GIS软件的功能。 两种开发方式有着各自的特点,因而在实际项目中都有大量运用。使用类库模式进行开发的如Fleet利用 GDAL/OGR搭建苏格兰国家图书馆的历史在线地图系统[9],而采用插件模式开发的如Michaelis和Ames开发的 插件,能把WFS和WMS服务提供的数据交由MapWindow GIS显示[10]。 展示系统主要在昆明市水利部门的局域网内部使用,其主体框架设计为类库模式开发的桌面应用系统, 主要使用的框架为 WWJ 和 GeoTools。考虑到未来对外提供数据的需要,系统同时使用基于 OpenGIS 标准的 - 16 http://www.ivypub.org/rss
服务方式提供数据。系统需要的大量的图片、办公文档和视频资料,统一由嵌入到桌面应用网页浏览器进行 浏览,并通过 FTP 服务对这些文档进行管理。
2.2 开源软件的选择 打开SourceForge网站,我们可以发现为数众多的开源软件,可用于GIS的也可谓琳琅满目,因而对开源 软件的选择成为系统开发人员需要精心考虑的问题。开源社区和众多开放源代码项目将开发者带入一个丰富 多彩的世界。这里提倡自由理念,但并不意味着这种自由没有任何约束和限制。地理信息领域的开源项目也 是如此,开源项目的使用者必须从开发与应用的角度来考查即将使用的开源项目,以便正确的评估与开源代 码相关的价值和风险[6]。在开源软件的世界里既存在鱼龙混杂的局面,也有优胜劣汰自然法则,所以软件的 成熟程度就成为选择非常重要的条件。系统选用WWJ进行三维显示,因为其有NASA的强力支撑。空间数据 库使用PostGIS,底层数据库使用PostgreSQL,这是目前开源系统最成熟的数据存储方案。地图服务器选用 GeoServer,它提供了OpenGIS的各种服务。矢量数据的读取与空间分析使用GeoTools,一个最为成熟的开源 中间件。
2.3 数据的共享与组织形式 在地理信息科学领域,解决数据共享的主要途径有直接数据访问模式、数据格式转换模式及数据互操作 模式等三种模式[11]。在局域网内使用的系统不存在访问与数据理解问题,最为快捷的方式是直接数据访问模 式。但随着部门间空间信息交换愿望的日益迫切,在 Internet 上共享水利信息资源必然成为今后水利部门的 职能之一。这必然面对空间信息互操作中的 3 个关键问题:可达性问题,即用户难以获取空间信息;可用性 问题,即用户难以理解空间信息;易用性问题,即用户难以方便地使用并处理空间信息[12]。OpenGIS 规范正 是针对地理信息处理的这些互操作问题而提出的。规范中最常使用的是两个基本的空间地理信息访问服务: Web 地图服务(Web Map Service, WMS)、Web 要素服务(Web Feature Service, WFS)。其中 WMS 规范是 一个 Web 地图服务互操作的实现标准。根据 WMS 规范,每一个地图服务器都必须实现一些标准接口和消息 交互协议等内容,WMS 用户通过标准接口访问多个分布的地图服务器及多个数据源,克服比例尺、投影方 式、大地坐标系统及数据格式等各种异构特性,发现、浏览、叠加及组合不同的主题图层,实现互操作。WFS 是 OpenGIS 实现规范中对空间要素共享的解决方案。WFS 规范提供了基于 Internet-HTTP 平台的 GIS 访问服 务的功能描述和接口标准。它使用 XML Schema 描述请求、响应及传输的数据;采用 HTTP 作为 Internet 上 的分布式计算平台。利用 XML 语言的可自定义和伸缩性,以及 HTTP 平台的普及性,实现了符合 OpenGIS 规范的 GIS 应用间对于空间数据的交换和交互处理[13]。 系统为适应未来数据共享的需求,利用这两个基本服务与其它部门进行数据交换。卫星图片通过 NASA 提供的 WMS 获取,其空间分辨率在 30m 左右。在城市一级的显示上还需要更高的精度,系统使用高精度卫 星图片经投影校正后利用 WMS 进行发布。昆明市内地名、河流、水库、泵站等矢量图,分为市内(比例尺 为 1:1 万)和外围(比例尺为 1:20 万)两大类别,分别按照不同的图层存储于数据库中,既可由客户端 通过 GeoTools 进行读取也可以通过 WFS 进行发布。 此外,系统还需要处理另外两大类数据: 一是河流、水库等的属性数据,为减少数据传递量,系统采用空间数据和属性数据分开存放的方式。属 性数据和空间数据数据存在一对多的关系。属性数据具有唯一性,一条河流只有一条属性来记录河流长度、 发源地等信息,却因为不同比例尺、分级、分段等因素,可能与多条线对应,也同时会对应多个多媒体资料。 在系统的数据组织上,以属性数据为基础,即建立一条属性数据并分配一个长整型的 ID 号,其它数据通过 ID 号与属性联系。 二是多媒体资料,这部分资料包括文档、图片、视频等多媒体资料,数据量异常庞大并更新频繁,把这 - 17 http://www.ivypub.org/rss
部分数据放入数据库中管理难度较大。经分析认为可采用文件管理的方式,按河流、水库等图层分类,建立 不同的图层文件夹,然后以属性 ID 为名称分别建立每个要素的文件夹,并把所有与该要素相关的多媒体资 料都放入其中。
2.4 系统的总体结构 系统的总体结构如图 1 所示,目的是根据需求,尽量使用开源软件提供的功能,建立一个低耦合、高开 放性的三维展示系统。系统界面和要素适配器(Feature Adapter)需要自行开发。GeoTools 只能够处理二维 图形要素,而 WWJ 中的要素类型无论是点、线、面都是三维的,系统需要一个要素适配器把 GeoTools 中得 到的要素转换为 WWJ 中的要素类型。 NASA提供的全 球卫星图片
Internet 服务器端
客户端
系统界面
World Wind JDK
T O M C 栅格数据(WMS) A 地名数据(WFS) T
多媒体文档
GeoServer
昆明市中文 地名数据
Feature Adapter 矢量数据
GEOTOOLS 属性数据(JDBC)
昆明市高精 度卫星图片
PostGIS PostgreGIS
图 1 系统结构图
3 功能实现 系统主要需要实现三方面的功能:一是三维显示功能,也就是能够把地名、河流、水库和泵站等要素按 照实际高程显示出来;二是根据空间位置查找要素属性;三是能够实现根据属性值查找定位要素。
3.1 三维显示 WWJ 针对不同的实体有多种显示方法,各种显示方法功能各异,显示速度也大不相同。常用的有:地 名图层(Place Name Layer)用 Geographic Text Renderer 渲染,只显示文字,速度最快;注记图层(Annotation Layer),显示有图形底纹的文字,可进行选取操作,使用灵活但复杂,可由用户程序实现 AnnotationRenderer 接口或简单使用 Globe Annotation,速度也较快;分块图形图层(Basic Tiled Image Layer Icon Layer),实现 图片的分块显示,把大幅的卫星图片进行分级、分块显示,提升三维显示速度;图标图层(Icon Layer),地 标显示,用 Icon Renderer 渲染,视觉效果好,但速度慢,如果需要使用大量的地标,必须进行分层显示;渲 染图层(Renderable Layer),用 Surface Shape 及其派生类对多义线、面等几何要素进行渲染。 为了使稍微低端的计算机也能够使用,系统采用两种方式进行要素的三维显示。第一种是所有要素都以 Place Name 方式显示,速度快但显示效果差;第二种是用 Icon 显示水文站、泵站、闸门等点状要素,用 Surface Shape 显示河流、水库等要素,显示效果好但速度慢。第一种方式利用 WFS 读取地名数据,第二种方式利用 Geo Tools 读取要素空间数据,由 Feature Adapter 转换为 Icons、Surface Shapes 进行添加。
3.2 属性查询 由于存在两种显示方式,为了在这两种显示方式下都能对要素的属性进行查询,系统采用了两种查询方 - 18 http://www.ivypub.org/rss
式,针对第一种显示方式的查询较复杂,首先在查询位置处建立缓冲区,然后通过求交集的方式找到要素, 最后通过要素记录中的属性 ID 值查询要素的属性及多媒体文档。针对第二种显示方式的查询直接通过在 WorldWindowGLCanvas 中添加 SelectListener 侦听发生的选择事件,得到最上层被选取的要素集,然后获取 要素属性 ID,就能够得到其属性。所有 IconLayer 和 RenderableLayer 上的要素都可以被选取。
3.3 实体查询 当需要通过属性对要素进行定位时,首先获取属性的 ID 值,然后以此作为条件,利用 Geo Tools 的过滤 查询得到要素及其空间信息,最后用 Scene Controller 对场景进行定位。
4 总结与展望 开源软件是一个内容丰富的宝库,其中凝结着众多开发人员心血与智慧。对开源软件的利用不应该仅局 限于学习,更应该将其利用到实际项目的开发中,昆明市三维水利信息展示系统就是这样一个尝试。系统以 较低成本建立后,一方面为昆明市水利局的日常信息查询工作做出贡献;另一方面,在多次工作汇报中利用 系统进行辅助展示,以富于视觉冲击性的三维效果强化了汇报演讲的内容。系统用人人可以得到的开源软件, 充分利用其兼容性和扩展性,提出了一个支持多信息源、多数据格式的系统的构架,该构架不仅可以为昆明 市防汛抗旱指挥调度提供决策支持,还能广泛利用于水利、矿产等部门,具有一定的使用价值。系统不足之 处是由于速度要求,目前仅限于局域网内使用,今后的目标是发展成为完全能够在互联网上使用的系统,让 每个人在任何地方都能享有信息技术发展给我们带来的便利。
图 2 系统界面
REFERENCES [1]
贾文珏. Google Earth和World Wind比较研究[J]. 国土资源信息化. 2006(05): 45-48
[2]
Adrian W, Andreas H, Peter M. Use of NASA World Wind Java SDK for Three-Dimensional Accessibility Visualization of Remote Areas in Lao P.D.R.[C]. Lenk, Switzerland: 2008
[3]
Wanapong K, Anusorn R, Pisut N et al. Development of Open Source Software for Multi-temporal Disaster and Natural Resources Monitoring Across Network with Dynamic Data Exchange[C]. Kuala Lumpur, Malaysia: 2007
[4]
雷兵. 地理信息查询工具Geotools的设计与实现[J]. 测绘科学. 1998(03) - 19 http://www.ivypub.org/rss
[5]
高昂. GIS项目实践中的开放源代码选择[J]. 程序员. 2007(05): 82-85
[6]
高昂. 开源GIS富客户端项目实践指南[J]. 程序员. 2007(06): 82-85
[7]
高昂, 陈荣国, 卫文学, 等. 基于Java拓扑模型和RCP的GIS平台研究[J]. 计算机工程与应用. 2007(05)
[8]
Stefan Steiniger, Andrew J. S. Hunter. The 2012 Free and Open Source GIS Software Map-A Guide to facilitate Research, Development and Adoption[M]. Geospatial Free and Open Source Software in the 21st Century Computers. 2012, 247-261
[9]
Christopher Fleet, Petr Pridal. Open source technologies for delivering historical maps online - case studies at the National Library of Scotland[J]. Liber Quarterly. 2012, 22(3): 240-257
[10] Christopher D. Michaelis, Daniel P. Ames. Considerations for Implementing OGC WMS and WFS Specifications in a Desktop GIS[J]. Journal of Geographic Information System. 2012, (4): 161-167 [11] 滕文胜, 曾志明, 杨斌. GIS 共享研究[C]. 2001年GIS年会文集, 2001 [12] 邢彭龄, 罗英伟. 空间信息共享与互操作的关键问题分析[J]. 计算机工程. 2003, 29(12): 31-33 [13] 李博韬, 廖湖声. 多源空间要素服务系统的设计与实现[J]. 计算机应用研究. 2005(8): 182-184
【作者简介】 蒋锐(1975-),男,云南省昭通市昭阳区人,讲师,主要研究领域为地理信息系统。Email: jr_75@163.com
- 20 http://www.ivypub.org/rss