APP下载

基于OpenScales的水文遥测WebGIS应用开发

2012-07-16马泽生刘小虎蔡国成梁后军

水利信息化 2012年3期
关键词:等值线遥测雨量

马泽生,刘小虎,蔡国成,梁后军

(淮河水利委员会水文局(信息中心),安徽 蚌埠 233001)

0 引言

目前,水文遥测信息已经广泛应用于各级部门的防汛决策过程当中。国家防汛抗旱指挥系统一期工程的成功实施,建成了 5 个流域机构和 19 个省区市所属的 125 个水情分中心,实现了上述地区水文信息的自动采集和处理[1]。此外,部分地区和部门根据实际需要,也建设完成了数量众多的遥测系统。遥测应用系统作为各级防汛抗旱指挥部门领导高度关注的水利信息化应用系统之一,为防汛抗旱服务发挥了重要作用。

随着水利事业的快速持续发展,对遥测应用提出了更高的要求;同时,技术的进步也为系统的升级和完善提供了扎实的基础和实现手段。充分利用现代化的信息技术和成果,提升水文遥测应用水平,拓展应用范围和深度,对于提高防汛抗旱决策服务能力具有重要意义。

近年来,水文遥测应用软件开始与 GIS 结合,通过采用静态地图图片的方式开发了水雨情显示、预警和监控等方面的功能。用户在本地计算机上使用浏览器,通过网络就可以访问遥测软件提供的含有地图在内的遥测信息服务,具备了 WebGIS 应用的一些特点。但是,这类遥测应用软件由于不能支持标准的矢量数据格式,在地图缩放、漫游、分级显示和站点修改扩充方面存在很大的局限性。而一些结合商业化 GIS 平台开发的遥测应用软件,具备较完善的 GIS 功能,但是所需 GIS 平台购置和开发的费用较高,很难将这种模式推广应用到一些基层的水利单位。基于这些因素,在开发这类应用时,应考虑能否在大量廉价的开源 GIS 平台中,找到 GIS功能基本完整,表现效果突出,适合 Internet 网络应用,支持现有主流开发工具的轻量级 GIS 平台,以满足遥测应用软件对 GIS 功能日益增长的需求。经过一段时间的摸索和试验对比,发现 OpenScales 平台是比较合适的选择。

1 OpenScales 平台概述

WebGIS 是将 Web 和 GIS 技术相结合的新技术,以常见的网页方式提供地理信息服务,在许多行业有着广泛的应用[2]。

早期的 WebGIS 采用瘦客户端模式,地图处理工作主要在服务端完成,采用由客户端向服务端请求图片的方式进行地图的显示,速度较慢。2004 年,Googlemap 采用地图切片技术,显著提高了客户端加载图片的速度。新发展的 RIA(富互联网应用)技术,以 Flex,Silverlight 为代表,使得 WebGIS 提高速度和客户体验[3]。

大多数 WebGIS 应用软件开发采用商业化的 GIS平台,如 ARCGIS,MapInfo,超图GIS 等。优点是功能完整,空间数据管理和分析能力强;缺点是平台购置和管理维护费用较高,运行环境要求较高,软件开发接口没有完全开放,扩展性受到一定限制。

OpenScales 是一种基于 ActionScript 3.0 和 Flex的开源(LGPL)地图应用开发框架工具集合[4],这些用户界面友好、响应迅速的工具适合用于操作空间数据,例如地理栅格图像、矢量数据编辑,管理缩放和定位之间的平滑转换等。借助于这一工具,用户可以非常方便地开发富互联网地图应用程序。

OpenScales 起源于 FlexLayers 开放源代码项目,融合了多个开源 AS3/JS 的 GIS 项目。从OpenScales 项目开展以来,OpenScales 已经对原有基础代码进行了广泛的修改和完善,已成为 1 个具备良好适应性的 GIS 引擎。目前最新版本为 OpenScales V2.0,主要功能特点如下[4]:

1)支持多种不同的图层,兼容支持 OGC(开放地理信息联盟)的多种协议,包括 WMS/WMSC 1.1.1,WFS 1.0 等;

2)经过优化的 ActionScript 3.0 内核代码,支持Flex 4;

3)利用 Flash 功能,提供强有力的矢量数据绘制、编辑、造型;

4)提供功能丰富的样式 API(应用程序编程接口),支持弹出窗口;

5)实现快速矢量渲染,增加了平移、缩放和图片拼接的渐变效果;

6)支持在运行时通过 XML(可扩展标记语言)配置,从经过编译的 SWF 应用程序动态获取地图;

7)强大的控制和处理程序组件,可以帮助用户快速开发地图应用程序。

OpenScales 适合于运行在各种类型的设备上,包括便携式移动及桌面设备,支持当前的大多数互联网浏览器[4],近期发布的 OpenScalesGL 还提供对HTML5 的支持。

OpenScales 提供几个关键的基本类以支持地图应用的开发,主要包括:

1)Map。允许在指定范围内显示 1 个或多个图层。基于用户输入,例如鼠标和键盘,可以改变范围和缩放程度。

2)Layer。实现图层点、线、面的矢量绘制,主要包含 2 种类型的图层,其中特征图层主要描述带有一些属性和样式信息的几何体数据,Grid 图层则处理地图图片数据。

3) Handler。通过监听用户输入(鼠标、键盘)实现地图漫游、缩放、绘制等操作的处理。

4) Controls。用来显示按钮、滑块,以允许控制地图的 GUI(图形用户界面)组件。

一般来说,水文遥测应用软件对于 WebGIS 平台的需求主要集中在以下几个方面:

1) 将采集到的水雨情信息,经过分析处理后,对用户关注的重要信息,在地图上的特定区域范围内加以直观和突出的显示、预警,并支持查询和报表输出;

2) 随着用户关注点和区域的变化,对应地图的大小、粒度、地理要素信息等能够相应调整;

3) 可以加载大多数通用格式和类型的地图数据,并快速显示;

4) 支持矢量图形绘制,以便进行雨量柱状图、水位和流量过程线、等值线(面)、热点图、分布图等业务用图的绘制与输出。

相对而言,软件对于空间分析计算等方面的要求不是很高。因此,综合考虑到这些因素,选择基于 OpenScales 平台进行开发。

2 水文遥测 WebGIS 应用模式及开发环境

典型的水文遥测 WebGIS 应用由 OpenScales 平台,数据库管理、文件、Web 服务发布管理系统,Web Service 应用组件,计算机网络,应用终端等组成。应用模式如图1 所示。

图1 系统应用模式示意图

完成上述应用的开发与部署,需要搭建基本的开发环境,主要包括以下工具集和组件开发包:Flash Builder,Flash Develop,Oracle Java 6 SDK ,Flex SDK 4.1 ,Flash player debugger 10.1 ,Visual Studio 开发工具,svn(subversion)版本管理工具。

3 水文遥测 WebGIS 应用软件实现方法和功能

3.1 软件实现方法

开发的水文遥测 WebGIS 应用软件采用扩展了的BWD(Browse/Web/Database )体系结构,主体程序部署在服务器端,遥测数据存放于数据库中,电子地图数据大部分以文件方式存放在服务器端,以B/S(浏览器/服务器)方式提供服务。

位于服务器端的软件由 Flex 主控、信息查询及报表Web Service、数据库接口 Web Service 等 3 个模块,等值线分析组件,以及相关网页资源文件等组成。系统软件模块组成示意图如图2 所示。

图2 系统软件模块组成示意图

Flex 主控模块基于 Flex 技术开发。电子地图功能部分通过调用和扩展 OpenScales 相关类库完成,如地图加载显示、操作控制,快速定位,图层叠加等。信息查询、图表绘制、菜单按钮、超限预警等功能采用 ActionScript 编程实现。主控模块的各项功能以过程及方法的方式提供调用接口。

考虑到原有的遥测应用软件在信息查询和报表生成及打印方面已经做得相当完善,在软件开发和集成时,通过将原有此部分功能模块修改封装成标准的 Web Service 加以调用。此外,统计分析和系统管理的部分功能模块也采用这种方式完成集成。

数据库接口 Web Service 主要提供数据库数据的访问和提取,以多个封装在内的方法提供调用接口,采用 C# 编程实现,目前可以支持对 Oracle,SQL Service,Access 数据库的访问。

等值线分析组件负责分析雨量数据,生成雨量等值线。此模块根据传递过来的雨量数据,通过插值分析,生成雨量等值线绘制需要的矢量数据,返回给调用的 Flex 主控模块。主控模块利用这些矢量数据,再调用绘图类库完成在地图上的等值线绘制。这一模块用 C++ 编程实现,以 COM 组件方式提供调用。

软件完成部署后,用户终端使用浏览器首次访问网站主页时,系统会自动下载电子地图的数据到本地计算机,今后再访问网站时就不需要下载地图数据。由于所有地图数据都已经压缩优化,首次下载过程在通过互联网访问时也只需要几秒钟,本地局域网访问时用户几乎感觉不到停顿。

因为地图数据存放在用户终端,所以地图操作响应速度很快,用户可以很流畅地在地图环境下完成遥测信息展示及监控、查询、统计和系统管理维护等模块的调用及操作。

3.2 应用功能

1)信息展示及监控功能。模块主要功能包括:加载和显示特定区域电子地图,进行放大、缩小、拖动漫游、显示站点信息等操作;快速定位指定站点或区域并显示相关雨水情信息;自动显示当前一段时间的雨量、水位;对雨量进行等值线分析,计算绘制等雨量面、面雨量等信息;控制各图层的显示方式及雨量、水位的显示级别等。如果有超警信息,则进行闪烁报警。

在操作电子地图的过程中,鼠标滑动到 1 个站点后,可以显示站点的详细信息。点击鼠标左键,则显示该站的设定时间段的图表信息。在图表上点击特定日期图形,可以显示该日各时段的雨量柱状图或水位过程线。根据需要,可以在界面输入新的时间进行重新查询,如果输入时间段较长,可以通过左右箭头调整显示时间轴。雨情、水情信息展示示意图分别如图3 和 4 所示。

2)信息查询功能。用于查询各地区的雨量和水情信息,查询结果用表格显示,并可以导出为 Excel文件。

3)雨量信息统计分析功能。用于统计某个时间段,各地市、县区、分中心所辖的雨量站的降雨

量,查询结果保存在 1 个报表中,并可以导出为Excel 文件。

图3 雨情信息展示示意图

图4 水情信息展示示意图

4)系统管理维护功能。用于查询显示各遥测站的原始信息,以便对站点进行维护。可以在地图上直观显示有故障的站点,故障站点以高亮颜色显示。

4 水文遥测 WebGIS 应用关键技术

4.1 GIS 组件应用和电子地图整理

融合 GIS 应用是水文遥测 WebGIS 应用软件的主要特色之一,包括图层控制、放大缩小、拖动漫游、全区域显示、标注、空间对象的常规计算(距离、面积)及地图的临时绘制等。数据查询显示以电子地图为核心,实现分类分层分级显示。分类包括实时水文、站点物理状态及概况等要素;分层分级显示重点是涉及密度相对较高的降水要素。

本软件的实际应用对电子地图的比例尺精度要求不是很高,用户花较小代价就可以得到所需数据。电子地图流域范围部分采用 1∶250000 比例尺,省级行政区采用 1∶1000 000 比例尺。所需的地图数据经过适当的校正、裁剪、修补等预处理工作后,以符合通行标准的格式文件提供调用。软件所用图层主要分为以下几个层面:

1)行政区划图层。省、市、县、乡镇区域与分界线及文档标识图层。

2)河流图层。干流,一级、二级支流,以及有水文(水位)站点的河流图层(线、面、文档标注)。

3)流域边界图层。主要江河、大型水库、中小河流等流域界线。

4)水利工程图层。包括大、中、小型水库,大、中型闸,大型泵站等水利工程图层。

5)站点图层。包括水文、水位、雨量、墒情、地下水等站点。

6)水文分区边界。指特定水文区域分界,例如安徽省淮北平原、江淮之间、沿江江南、大别山区、皖南山区等水文分区边界划分。

4.2 雨量等值线(面)分析

软件内置了雨量等值线(面)分析功能,除具备常规的分析功能外,还具有以下特点:

1)参加分析的站点默认为选定区域内全部站点,具备添加或减少参与分析站点的功能,因为出现异常的点可能需要在绘图时临时剔除。

2)可以定义配置等值线间隔阀值。一般为 5,10,20,50,100 mm,特定时间段内查询结果根据最大值确定默认阀值,以减少交互时间,最大值不超过 10 mm 时,以 5 mm 为下限。

3)等值线(面)风格设定。包括颜色、线条粗细、等值线标注文字的大小和颜色设定。特定时间段查询结果根据最大值自动提取默认设定,确定不同数值域的色谱变化。

4)可以将 1 个时间序列的降雨图进行动画显示,通过动画可以更细致地观察降雨的发展趋势。采用矢量数据动画技术,在动画时可以随意放大、缩小、漫游,图面都不会变形,可以将某局部地区的降雨情况放大到全屏显示,便于会商分析。提供雨量分析结果图片和数据转存功能,以便在其他应用中使用。

4.3 雨量分析热图

雨量分析热图是根据雨量站点的地理位置,对区域内所有站点的雨量根据区域和颜色进行相应的可视化表现。通过将每个雨量站点的覆盖范围设定为 1 个特定的计算区域,根据正态分布原理计算出区域内的雨量值。再对站点相邻区域相交或重叠部分进行处理,然后将区域内每一点的雨量值转换为相应的颜色在图像中加以呈现。

由于现有的雨量等值线在实际应用中也存在一些局限性,例如在雨量等值线图中模糊了等值线范围内数值存在差异的点,对于高出或低于所在等值线区域的站点雨量无法加以区分等。作为 1 种有效的补充分析工具,热图可以更加真实、直观地表现降雨密度及分布情况,不同区域和站点之间的雨量对比更加明显,可有助于进一步分析降雨发展趋势。

4.4 OpenScales 组件与接口的功能扩展和改造

1)新增部分自定义 GIS 数据源格式。采用XML 文档格式进行定义和描述,包括基本点、线、面,以及等值线、面矢量数据等。在 Map_cg,PolygonFeature_cg,Util_cg,PointFeature_cg,LineStringFeature_cg 等关键类基础上,扩展开发相应的 ActionScript 调用类代码,以支持此类矢量数据的解析、加载、绘制和分级显示。

2)扩展 ARCGIS 影像切片的加载功能。为充分利用已有 ARCGIS 平台生成的影像切片,保持一致的区域影像显示效果,根据 ARCGIS 影像切片的命名规则,扩展开发了对应的类库。

3)扩展地图要素标注功能。在同一要素点可标注多项信息,并且能够根据点的大小自动适应位置,解决了同一位置需要同时显示站名、雨量、水位等信息的需求。

4)扩展图例图标添加功能。围绕标注点中心可自由调整放置位置和角度,实现图标矢量缩放和动态添加功能,增加图标上下文字标注。解决了一些图例图标对标注位置和方向有特定要求的问题,如水闸、水文站等。同时保证地图在缩放时,对应的图标也相应缩放、显示而不失真。

5)通过点、面信息快速定位,相应热点区域高亮显示。用户通过站号、站名、区域名称或点击相应位置可以快速居中定位该区域,该区域被突出高亮显示,很容易同周边其它区域区分开来。

5 结语

如同许多开源 GIS 系统一样,OpenScales 也存在不少缺陷和局限性,如在空间分析、中文支持、三维建模和表现等方面功能较弱,对使用者软件编程基础要求较高,开发案例和文档较少,也是较为明显的问题。此外,在水文遥测实际应用过程中,发现在矢量线型种类、地图图例、标注内容、类库参数引用等方面还需要改进和提高。因此,在基于这一平台做开发时,对这些因素需要加以综合考虑。在实际开发过程中,对 OpenScales 部分组件和功能做了很多扩展和改造,在满足用户需求的同时,进一步扩充了 OpenScales 的功能。

OpenScales 平台的优势在于功能齐全,源代码开放,扩展灵活而且成本低廉,特别有利于根据实际需要进行技术改进和创新,并逐步掌握核心开发技术。可以为一些需要较低 GIS 平台投入,获得好用、够用 GIS 应用功能的用户提供切实可行的选择。基于 OpenScales 平台开发的水文遥测 WebGIS应用软件在继承原有遥测信息系统软件优点的基础上,为用户提供了直观易用的交互式电子地图环境,并可以进行雨量等值线、分析热图的绘制。采用此项技术开发的遥测应用软件已经在淮河水利委员会、安徽省、河南省等水文局,以及部分地市水文局得到实际应用,为所在区域的遥测系统管理和防汛决策提供了一种直观易用、快捷高效的软件工具,得到了用户和相关部门的肯定与认可。

[1]倪伟新. 国家防汛抗旱指挥系统工程开发建设[J]. 水利信息化,2012 (1): 17-18.

[2]王芳. Google 地图开发研究[J]. 计算机与数字工程,2010 (3):146-149.

[3]虞开森,黄康,骆小龙,等. 面向 GIS 的汛情信息时空展现[J]. 水利信息化,2011 (6): 11-15.

[4]Openscales 网站. Openscales 技术文档[EB/OL].[2012-02-02].http://openscales.org/documentation/index.html.

猜你喜欢

等值线遥测雨量
宁夏红柳沟流域水沙变化及产沙分析
基于规则预计格网的开采沉陷等值线生成算法*
基于WPF的遥测CAS信息实时监控系统设计开发
自适应模糊PID控制的遥测方舱温度调节方法
基于小波去噪的称重雨量数据分析
等值线“惯性”变化规律的提出及应用
SL—1 型雨量传感器故障分析排除和维护
浅谈如何提高遥测状态估计合格率
利用DEM的分层设色与明暗等值线组合立体方法研究
等值线分析系统实际应用之等值线填充