馬澤生,劉小虎,蔡國成,梁后軍
(淮河水利委員會水文局(信息中心),安徽 蚌埠 233001)
目前,水文遙測信息已經(jīng)廣泛應(yīng)用于各級部門的防汛決策過程當中。國家防汛抗旱指揮系統(tǒng)一期工程的成功實施,建成了 5 個流域機構(gòu)和 19 個省區(qū)市所屬的 125 個水情分中心,實現(xiàn)了上述地區(qū)水文信息的自動采集和處理[1]。此外,部分地區(qū)和部門根據(jù)實際需要,也建設(shè)完成了數(shù)量眾多的遙測系統(tǒng)。遙測應(yīng)用系統(tǒng)作為各級防汛抗旱指揮部門領(lǐng)導(dǎo)高度關(guān)注的水利信息化應(yīng)用系統(tǒng)之一,為防汛抗旱服務(wù)發(fā)揮了重要作用。
隨著水利事業(yè)的快速持續(xù)發(fā)展,對遙測應(yīng)用提出了更高的要求;同時,技術(shù)的進步也為系統(tǒng)的升級和完善提供了扎實的基礎(chǔ)和實現(xiàn)手段。充分利用現(xiàn)代化的信息技術(shù)和成果,提升水文遙測應(yīng)用水平,拓展應(yīng)用范圍和深度,對于提高防汛抗旱決策服務(wù)能力具有重要意義。
近年來,水文遙測應(yīng)用軟件開始與 GIS 結(jié)合,通過采用靜態(tài)地圖圖片的方式開發(fā)了水雨情顯示、預(yù)警和監(jiān)控等方面的功能。用戶在本地計算機上使用瀏覽器,通過網(wǎng)絡(luò)就可以訪問遙測軟件提供的含有地圖在內(nèi)的遙測信息服務(wù),具備了 WebGIS 應(yīng)用的一些特點。但是,這類遙測應(yīng)用軟件由于不能支持標準的矢量數(shù)據(jù)格式,在地圖縮放、漫游、分級顯示和站點修改擴充方面存在很大的局限性。而一些結(jié)合商業(yè)化 GIS 平臺開發(fā)的遙測應(yīng)用軟件,具備較完善的 GIS 功能,但是所需 GIS 平臺購置和開發(fā)的費用較高,很難將這種模式推廣應(yīng)用到一些基層的水利單位。基于這些因素,在開發(fā)這類應(yīng)用時,應(yīng)考慮能否在大量廉價的開源 GIS 平臺中,找到 GIS功能基本完整,表現(xiàn)效果突出,適合 Internet 網(wǎng)絡(luò)應(yīng)用,支持現(xiàn)有主流開發(fā)工具的輕量級 GIS 平臺,以滿足遙測應(yīng)用軟件對 GIS 功能日益增長的需求。經(jīng)過一段時間的摸索和試驗對比,發(fā)現(xiàn) OpenScales 平臺是比較合適的選擇。
WebGIS 是將 Web 和 GIS 技術(shù)相結(jié)合的新技術(shù),以常見的網(wǎng)頁方式提供地理信息服務(wù),在許多行業(yè)有著廣泛的應(yīng)用[2]。
早期的 WebGIS 采用瘦客戶端模式,地圖處理工作主要在服務(wù)端完成,采用由客戶端向服務(wù)端請求圖片的方式進行地圖的顯示,速度較慢。2004 年,Googlemap 采用地圖切片技術(shù),顯著提高了客戶端加載圖片的速度。新發(fā)展的 RIA(富互聯(lián)網(wǎng)應(yīng)用)技術(shù),以 Flex,Silverlight 為代表,使得 WebGIS 提高速度和客戶體驗[3]。
大多數(shù) WebGIS 應(yīng)用軟件開發(fā)采用商業(yè)化的 GIS平臺,如 ARCGIS,MapInfo,超圖GIS 等。優(yōu)點是功能完整,空間數(shù)據(jù)管理和分析能力強;缺點是平臺購置和管理維護費用較高,運行環(huán)境要求較高,軟件開發(fā)接口沒有完全開放,擴展性受到一定限制。
OpenScales 是一種基于 ActionScript 3.0 和 Flex的開源(LGPL)地圖應(yīng)用開發(fā)框架工具集合[4],這些用戶界面友好、響應(yīng)迅速的工具適合用于操作空間數(shù)據(jù),例如地理柵格圖像、矢量數(shù)據(jù)編輯,管理縮放和定位之間的平滑轉(zhuǎn)換等。借助于這一工具,用戶可以非常方便地開發(fā)富互聯(lián)網(wǎng)地圖應(yīng)用程序。
OpenScales 起源于 FlexLayers 開放源代碼項目,融合了多個開源 AS3/JS 的 GIS 項目。從OpenScales 項目開展以來,OpenScales 已經(jīng)對原有基礎(chǔ)代碼進行了廣泛的修改和完善,已成為 1 個具備良好適應(yīng)性的 GIS 引擎。目前最新版本為 OpenScales V2.0,主要功能特點如下[4]:
1)支持多種不同的圖層,兼容支持 OGC(開放地理信息聯(lián)盟)的多種協(xié)議,包括 WMS/WMSC 1.1.1,WFS 1.0 等;
2)經(jīng)過優(yōu)化的 ActionScript 3.0 內(nèi)核代碼,支持Flex 4;
3)利用 Flash 功能,提供強有力的矢量數(shù)據(jù)繪制、編輯、造型;
4)提供功能豐富的樣式 API(應(yīng)用程序編程接口),支持彈出窗口;
5)實現(xiàn)快速矢量渲染,增加了平移、縮放和圖片拼接的漸變效果;
6)支持在運行時通過 XML(可擴展標記語言)配置,從經(jīng)過編譯的 SWF 應(yīng)用程序動態(tài)獲取地圖;
7)強大的控制和處理程序組件,可以幫助用戶快速開發(fā)地圖應(yīng)用程序。
OpenScales 適合于運行在各種類型的設(shè)備上,包括便攜式移動及桌面設(shè)備,支持當前的大多數(shù)互聯(lián)網(wǎng)瀏覽器[4],近期發(fā)布的 OpenScalesGL 還提供對HTML5 的支持。
OpenScales 提供幾個關(guān)鍵的基本類以支持地圖應(yīng)用的開發(fā),主要包括:
1)Map。允許在指定范圍內(nèi)顯示 1 個或多個圖層?;谟脩糨斎?,例如鼠標和鍵盤,可以改變范圍和縮放程度。
2)Layer。實現(xiàn)圖層點、線、面的矢量繪制,主要包含 2 種類型的圖層,其中特征圖層主要描述帶有一些屬性和樣式信息的幾何體數(shù)據(jù),Grid 圖層則處理地圖圖片數(shù)據(jù)。
3) Handler。通過監(jiān)聽用戶輸入(鼠標、鍵盤)實現(xiàn)地圖漫游、縮放、繪制等操作的處理。
4) Controls。用來顯示按鈕、滑塊,以允許控制地圖的 GUI(圖形用戶界面)組件。
一般來說,水文遙測應(yīng)用軟件對于 WebGIS 平臺的需求主要集中在以下幾個方面:
1) 將采集到的水雨情信息,經(jīng)過分析處理后,對用戶關(guān)注的重要信息,在地圖上的特定區(qū)域范圍內(nèi)加以直觀和突出的顯示、預(yù)警,并支持查詢和報表輸出;
2) 隨著用戶關(guān)注點和區(qū)域的變化,對應(yīng)地圖的大小、粒度、地理要素信息等能夠相應(yīng)調(diào)整;
3) 可以加載大多數(shù)通用格式和類型的地圖數(shù)據(jù),并快速顯示;
4) 支持矢量圖形繪制,以便進行雨量柱狀圖、水位和流量過程線、等值線(面)、熱點圖、分布圖等業(yè)務(wù)用圖的繪制與輸出。
相對而言,軟件對于空間分析計算等方面的要求不是很高。因此,綜合考慮到這些因素,選擇基于 OpenScales 平臺進行開發(fā)。
典型的水文遙測 WebGIS 應(yīng)用由 OpenScales 平臺,數(shù)據(jù)庫管理、文件、Web 服務(wù)發(fā)布管理系統(tǒng),Web Service 應(yīng)用組件,計算機網(wǎng)絡(luò),應(yīng)用終端等組成。應(yīng)用模式如圖1 所示。
圖1 系統(tǒng)應(yīng)用模式示意圖
完成上述應(yīng)用的開發(fā)與部署,需要搭建基本的開發(fā)環(huán)境,主要包括以下工具集和組件開發(fā)包:Flash Builder,F(xiàn)lash Develop,Oracle Java 6 SDK ,F(xiàn)lex SDK 4.1 ,F(xiàn)lash player debugger 10.1 ,Visual Studio 開發(fā)工具,svn(subversion)版本管理工具。
開發(fā)的水文遙測 WebGIS 應(yīng)用軟件采用擴展了的BWD(Browse/Web/Database )體系結(jié)構(gòu),主體程序部署在服務(wù)器端,遙測數(shù)據(jù)存放于數(shù)據(jù)庫中,電子地圖數(shù)據(jù)大部分以文件方式存放在服務(wù)器端,以B/S(瀏覽器/服務(wù)器)方式提供服務(wù)。
位于服務(wù)器端的軟件由 Flex 主控、信息查詢及報表Web Service、數(shù)據(jù)庫接口 Web Service 等 3 個模塊,等值線分析組件,以及相關(guān)網(wǎng)頁資源文件等組成。系統(tǒng)軟件模塊組成示意圖如圖2 所示。
圖2 系統(tǒng)軟件模塊組成示意圖
Flex 主控模塊基于 Flex 技術(shù)開發(fā)。電子地圖功能部分通過調(diào)用和擴展 OpenScales 相關(guān)類庫完成,如地圖加載顯示、操作控制,快速定位,圖層疊加等。信息查詢、圖表繪制、菜單按鈕、超限預(yù)警等功能采用 ActionScript 編程實現(xiàn)。主控模塊的各項功能以過程及方法的方式提供調(diào)用接口。
考慮到原有的遙測應(yīng)用軟件在信息查詢和報表生成及打印方面已經(jīng)做得相當完善,在軟件開發(fā)和集成時,通過將原有此部分功能模塊修改封裝成標準的 Web Service 加以調(diào)用。此外,統(tǒng)計分析和系統(tǒng)管理的部分功能模塊也采用這種方式完成集成。
數(shù)據(jù)庫接口 Web Service 主要提供數(shù)據(jù)庫數(shù)據(jù)的訪問和提取,以多個封裝在內(nèi)的方法提供調(diào)用接口,采用 C# 編程實現(xiàn),目前可以支持對 Oracle,SQL Service,Access 數(shù)據(jù)庫的訪問。
等值線分析組件負責分析雨量數(shù)據(jù),生成雨量等值線。此模塊根據(jù)傳遞過來的雨量數(shù)據(jù),通過插值分析,生成雨量等值線繪制需要的矢量數(shù)據(jù),返回給調(diào)用的 Flex 主控模塊。主控模塊利用這些矢量數(shù)據(jù),再調(diào)用繪圖類庫完成在地圖上的等值線繪制。這一模塊用 C++ 編程實現(xiàn),以 COM 組件方式提供調(diào)用。
軟件完成部署后,用戶終端使用瀏覽器首次訪問網(wǎng)站主頁時,系統(tǒng)會自動下載電子地圖的數(shù)據(jù)到本地計算機,今后再訪問網(wǎng)站時就不需要下載地圖數(shù)據(jù)。由于所有地圖數(shù)據(jù)都已經(jīng)壓縮優(yōu)化,首次下載過程在通過互聯(lián)網(wǎng)訪問時也只需要幾秒鐘,本地局域網(wǎng)訪問時用戶幾乎感覺不到停頓。
因為地圖數(shù)據(jù)存放在用戶終端,所以地圖操作響應(yīng)速度很快,用戶可以很流暢地在地圖環(huán)境下完成遙測信息展示及監(jiān)控、查詢、統(tǒng)計和系統(tǒng)管理維護等模塊的調(diào)用及操作。
1)信息展示及監(jiān)控功能。模塊主要功能包括:加載和顯示特定區(qū)域電子地圖,進行放大、縮小、拖動漫游、顯示站點信息等操作;快速定位指定站點或區(qū)域并顯示相關(guān)雨水情信息;自動顯示當前一段時間的雨量、水位;對雨量進行等值線分析,計算繪制等雨量面、面雨量等信息;控制各圖層的顯示方式及雨量、水位的顯示級別等。如果有超警信息,則進行閃爍報警。
在操作電子地圖的過程中,鼠標滑動到 1 個站點后,可以顯示站點的詳細信息。點擊鼠標左鍵,則顯示該站的設(shè)定時間段的圖表信息。在圖表上點擊特定日期圖形,可以顯示該日各時段的雨量柱狀圖或水位過程線。根據(jù)需要,可以在界面輸入新的時間進行重新查詢,如果輸入時間段較長,可以通過左右箭頭調(diào)整顯示時間軸。雨情、水情信息展示示意圖分別如圖3 和 4 所示。
2)信息查詢功能。用于查詢各地區(qū)的雨量和水情信息,查詢結(jié)果用表格顯示,并可以導(dǎo)出為 Excel文件。
3)雨量信息統(tǒng)計分析功能。用于統(tǒng)計某個時間段,各地市、縣區(qū)、分中心所轄的雨量站的降雨
量,查詢結(jié)果保存在 1 個報表中,并可以導(dǎo)出為Excel 文件。
圖3 雨情信息展示示意圖
圖4 水情信息展示示意圖
4)系統(tǒng)管理維護功能。用于查詢顯示各遙測站的原始信息,以便對站點進行維護??梢栽诘貓D上直觀顯示有故障的站點,故障站點以高亮顏色顯示。
融合 GIS 應(yīng)用是水文遙測 WebGIS 應(yīng)用軟件的主要特色之一,包括圖層控制、放大縮小、拖動漫游、全區(qū)域顯示、標注、空間對象的常規(guī)計算(距離、面積)及地圖的臨時繪制等。數(shù)據(jù)查詢顯示以電子地圖為核心,實現(xiàn)分類分層分級顯示。分類包括實時水文、站點物理狀態(tài)及概況等要素;分層分級顯示重點是涉及密度相對較高的降水要素。
本軟件的實際應(yīng)用對電子地圖的比例尺精度要求不是很高,用戶花較小代價就可以得到所需數(shù)據(jù)。電子地圖流域范圍部分采用 1∶250000 比例尺,省級行政區(qū)采用 1∶1000 000 比例尺。所需的地圖數(shù)據(jù)經(jīng)過適當?shù)男U⒉眉?、修補等預(yù)處理工作后,以符合通行標準的格式文件提供調(diào)用。軟件所用圖層主要分為以下幾個層面:
1)行政區(qū)劃圖層。省、市、縣、鄉(xiāng)鎮(zhèn)區(qū)域與分界線及文檔標識圖層。
2)河流圖層。干流,一級、二級支流,以及有水文(水位)站點的河流圖層(線、面、文檔標注)。
3)流域邊界圖層。主要江河、大型水庫、中小河流等流域界線。
4)水利工程圖層。包括大、中、小型水庫,大、中型閘,大型泵站等水利工程圖層。
5)站點圖層。包括水文、水位、雨量、墑情、地下水等站點。
6)水文分區(qū)邊界。指特定水文區(qū)域分界,例如安徽省淮北平原、江淮之間、沿江江南、大別山區(qū)、皖南山區(qū)等水文分區(qū)邊界劃分。
軟件內(nèi)置了雨量等值線(面)分析功能,除具備常規(guī)的分析功能外,還具有以下特點:
1)參加分析的站點默認為選定區(qū)域內(nèi)全部站點,具備添加或減少參與分析站點的功能,因為出現(xiàn)異常的點可能需要在繪圖時臨時剔除。
2)可以定義配置等值線間隔閥值。一般為 5,10,20,50,100 mm,特定時間段內(nèi)查詢結(jié)果根據(jù)最大值確定默認閥值,以減少交互時間,最大值不超過 10 mm 時,以 5 mm 為下限。
3)等值線(面)風格設(shè)定。包括顏色、線條粗細、等值線標注文字的大小和顏色設(shè)定。特定時間段查詢結(jié)果根據(jù)最大值自動提取默認設(shè)定,確定不同數(shù)值域的色譜變化。
4)可以將 1 個時間序列的降雨圖進行動畫顯示,通過動畫可以更細致地觀察降雨的發(fā)展趨勢。采用矢量數(shù)據(jù)動畫技術(shù),在動畫時可以隨意放大、縮小、漫游,圖面都不會變形,可以將某局部地區(qū)的降雨情況放大到全屏顯示,便于會商分析。提供雨量分析結(jié)果圖片和數(shù)據(jù)轉(zhuǎn)存功能,以便在其他應(yīng)用中使用。
雨量分析熱圖是根據(jù)雨量站點的地理位置,對區(qū)域內(nèi)所有站點的雨量根據(jù)區(qū)域和顏色進行相應(yīng)的可視化表現(xiàn)。通過將每個雨量站點的覆蓋范圍設(shè)定為 1 個特定的計算區(qū)域,根據(jù)正態(tài)分布原理計算出區(qū)域內(nèi)的雨量值。再對站點相鄰區(qū)域相交或重疊部分進行處理,然后將區(qū)域內(nèi)每一點的雨量值轉(zhuǎn)換為相應(yīng)的顏色在圖像中加以呈現(xiàn)。
由于現(xiàn)有的雨量等值線在實際應(yīng)用中也存在一些局限性,例如在雨量等值線圖中模糊了等值線范圍內(nèi)數(shù)值存在差異的點,對于高出或低于所在等值線區(qū)域的站點雨量無法加以區(qū)分等。作為 1 種有效的補充分析工具,熱圖可以更加真實、直觀地表現(xiàn)降雨密度及分布情況,不同區(qū)域和站點之間的雨量對比更加明顯,可有助于進一步分析降雨發(fā)展趨勢。
1)新增部分自定義 GIS 數(shù)據(jù)源格式。采用XML 文檔格式進行定義和描述,包括基本點、線、面,以及等值線、面矢量數(shù)據(jù)等。在 Map_cg,PolygonFeature_cg,Util_cg,PointFeature_cg,LineStringFeature_cg 等關(guān)鍵類基礎(chǔ)上,擴展開發(fā)相應(yīng)的 ActionScript 調(diào)用類代碼,以支持此類矢量數(shù)據(jù)的解析、加載、繪制和分級顯示。
2)擴展 ARCGIS 影像切片的加載功能。為充分利用已有 ARCGIS 平臺生成的影像切片,保持一致的區(qū)域影像顯示效果,根據(jù) ARCGIS 影像切片的命名規(guī)則,擴展開發(fā)了對應(yīng)的類庫。
3)擴展地圖要素標注功能。在同一要素點可標注多項信息,并且能夠根據(jù)點的大小自動適應(yīng)位置,解決了同一位置需要同時顯示站名、雨量、水位等信息的需求。
4)擴展圖例圖標添加功能。圍繞標注點中心可自由調(diào)整放置位置和角度,實現(xiàn)圖標矢量縮放和動態(tài)添加功能,增加圖標上下文字標注。解決了一些圖例圖標對標注位置和方向有特定要求的問題,如水閘、水文站等。同時保證地圖在縮放時,對應(yīng)的圖標也相應(yīng)縮放、顯示而不失真。
5)通過點、面信息快速定位,相應(yīng)熱點區(qū)域高亮顯示。用戶通過站號、站名、區(qū)域名稱或點擊相應(yīng)位置可以快速居中定位該區(qū)域,該區(qū)域被突出高亮顯示,很容易同周邊其它區(qū)域區(qū)分開來。
如同許多開源 GIS 系統(tǒng)一樣,OpenScales 也存在不少缺陷和局限性,如在空間分析、中文支持、三維建模和表現(xiàn)等方面功能較弱,對使用者軟件編程基礎(chǔ)要求較高,開發(fā)案例和文檔較少,也是較為明顯的問題。此外,在水文遙測實際應(yīng)用過程中,發(fā)現(xiàn)在矢量線型種類、地圖圖例、標注內(nèi)容、類庫參數(shù)引用等方面還需要改進和提高。因此,在基于這一平臺做開發(fā)時,對這些因素需要加以綜合考慮。在實際開發(fā)過程中,對 OpenScales 部分組件和功能做了很多擴展和改造,在滿足用戶需求的同時,進一步擴充了 OpenScales 的功能。
OpenScales 平臺的優(yōu)勢在于功能齊全,源代碼開放,擴展靈活而且成本低廉,特別有利于根據(jù)實際需要進行技術(shù)改進和創(chuàng)新,并逐步掌握核心開發(fā)技術(shù)??梢詾橐恍┬枰^低 GIS 平臺投入,獲得好用、夠用 GIS 應(yīng)用功能的用戶提供切實可行的選擇?;?OpenScales 平臺開發(fā)的水文遙測 WebGIS應(yīng)用軟件在繼承原有遙測信息系統(tǒng)軟件優(yōu)點的基礎(chǔ)上,為用戶提供了直觀易用的交互式電子地圖環(huán)境,并可以進行雨量等值線、分析熱圖的繪制。采用此項技術(shù)開發(fā)的遙測應(yīng)用軟件已經(jīng)在淮河水利委員會、安徽省、河南省等水文局,以及部分地市水文局得到實際應(yīng)用,為所在區(qū)域的遙測系統(tǒng)管理和防汛決策提供了一種直觀易用、快捷高效的軟件工具,得到了用戶和相關(guān)部門的肯定與認可。
[1]倪偉新. 國家防汛抗旱指揮系統(tǒng)工程開發(fā)建設(shè)[J]. 水利信息化,2012 (1): 17-18.
[2]王芳. Google 地圖開發(fā)研究[J]. 計算機與數(shù)字工程,2010 (3):146-149.
[3]虞開森,黃康,駱小龍,等. 面向 GIS 的汛情信息時空展現(xiàn)[J]. 水利信息化,2011 (6): 11-15.
[4]Openscales 網(wǎng)站. Openscales 技術(shù)文檔[EB/OL].[2012-02-02].http://openscales.org/documentation/index.html.