盧家波,向小華,李 超,王志偉
(河海大學水文水資源學院,江蘇 南京 210098)
模型作為水文研究工具的重要性已經(jīng)得到廣泛認可,針對水文過程的每個環(huán)節(jié)目前已經(jīng)發(fā)展了大量模型。“數(shù)字流域”的目標是采用數(shù)字化手段刻畫整個流域,在此基礎上模擬流域水文現(xiàn)象、預測水文行為、揭示水文規(guī)律、最終服務于流域管理[1-2]。在現(xiàn)代信息技術基礎上,對支撐流域水文多過程模型耦合互饋機制的數(shù)字流域體系和方法的研究,必將促進流域水文過程的研究,也能更好地促進“數(shù)字流域”這一理念的實踐與完善。
由于水文模型所需要的大量信息本質上都與時間和空間相關,因此現(xiàn)代GIS成了水文模型資料管理、分析以及存儲的最佳工具[3-4]。隨著分布式水文模型的發(fā)展,GIS與水文模型的緊密集成受到關注[5-7]。理論層面上,王船海等[8]在其構建的雙對象結構中引入共享體,解決水文模型與GIS對象數(shù)據(jù)交換效率低的問題。Bhatt等[9]開發(fā)出GIS與分布式水文模型耦合框架,提高模型數(shù)據(jù)集成程度。應用層面上,Bruins等[10]基于GIS建立水文模型估計古農業(yè)梯田的徑流量;Rahmati等[11]提出子流域自動精確劃分GIS工具;朱亮等[12]運用GIS技術研究面源污染控制方案;李蘭等[13]利用DEM、土地利用等地理信息數(shù)據(jù)構建數(shù)字流域水文模型,增強了模型的實用性。水文模型和GIS結合能極大提高模型的效率和精度,因此也能夠提高水文研究和決策的能力[14-17]。
水文模型和GIS耦合面臨的一個最大難題是雙方之間的數(shù)據(jù)傳遞和交換。模型的數(shù)據(jù)結構是根據(jù)模型自身的需要而設計的,與GIS的數(shù)據(jù)結構并不一致;GIS采用通用的矢量數(shù)據(jù)結構,無法適應水文模型的需求。以ArcGIS系統(tǒng)為例,雖然其在地理相關領域應用廣泛,但其相對封閉的數(shù)據(jù)結構使之很難做到與水文模型緊密耦合,只能作為水文模型的前后處理工具[18-21]。從水文模型的角度出發(fā),如果模型數(shù)據(jù)結構能夠完全融入ArcGIS等地理信息系統(tǒng)軟件中,使得模型和GIS完全集成,實現(xiàn)最高效率和最優(yōu)分析方式,將會有力推動水文模型的發(fā)展和應用[22-23]。
本文的目標是實現(xiàn)以ArcGIS為平臺的水文模型通用地理數(shù)據(jù)標準,研究以模型數(shù)據(jù)視角為核心的GIS通用數(shù)據(jù)標準,實現(xiàn)不同尺度和維度下的模型地理數(shù)據(jù)標準化接口,以ArcGIS平臺兼容任意水文模型數(shù)據(jù)為目標,支撐模型的顯示、建模、運行、分析和結果展示。
水文模型地理數(shù)據(jù)能夠無縫接入GIS平臺,并被有效管理是實現(xiàn)數(shù)字流域模型框架的首要條件。然而,由于水文模型和GIS各自的研究領域目標不同,兩者之間均不能較好地適應對方的需求,存在時空特征問題和拓撲結構問題[24]。一方面,水文模型需要從反演過去到預報未來,是了解水文過程的連續(xù)時序模型,其模型地理拓撲表達因人而異,不具有標準性;而另一方面,雖然GIS具有水文模型所需的存儲、顯示及分析地理資料的能力,但幾乎所有的GIS都不是專為時序模型設計的,多數(shù)只能用來分析靜態(tài)過程而不符合水文模型的需求。
一個較復雜的水文模型地理數(shù)據(jù)常由多種類型地理單元按照一定拓撲結構組合。以子流域型水文模型為例,其地理數(shù)據(jù)就包括一定數(shù)量的多邊形子流域和折線構成的河道,每個子流域包含一條河道,而子流域之間又按照上下游關系形成固定匯流順序。流域中還存在堤線、湖庫、河道地形區(qū)域等復雜地理對象,它們內部有著自身特定的拓撲關系。常規(guī)方法采用一般GIS軟件中既有圖層之間的組合來代表模型的地理數(shù)據(jù),如在ArcGIS中分別采用一個面圖層和一個線圖層來表達子流域型水文模型的地理數(shù)據(jù),數(shù)據(jù)之間上下游拓撲關系采用復雜的字段關聯(lián)加以維護。然而,這種地理數(shù)據(jù)管理方式存在兩個問題:一是水文模型的地理數(shù)據(jù)拓撲關系往往由模型編制人員按照某種方式固定下來,模型自身無法控制GIS圖層;二是GIS中圖形的增刪將導致模型數(shù)據(jù)與GIS數(shù)據(jù)對應關系錯亂,當模型復雜時維護對應關系極其困難。
為實現(xiàn)水文模型中地形、子流域、河道、站網(wǎng)、湖庫、堤線等地理數(shù)據(jù)的一體化,本文自定義GIS兼容的地理數(shù)據(jù)結構,實現(xiàn)GIS中的地理數(shù)據(jù)與模型中數(shù)據(jù)結構的一致化。首先,利用GIS對地理數(shù)據(jù)進行計算單元劃分、流域水文特征提取、模型參數(shù)獲取及空間分析等預處理工作,再以自定義數(shù)據(jù)結構將多圖層單對象管理方式發(fā)展為單圖層多對象管理方式。這種方式既處理了復雜對象的拓撲關系,實現(xiàn)對地理數(shù)據(jù)的操作即是對模型對象的修改,又充分利用了GIS在流域劃分、空間分析等方面的優(yōu)勢。自定義GIS兼容的地理數(shù)據(jù)結構見圖1。

圖1 自定義GIS兼容的地理數(shù)據(jù)結構示意圖
流域水文模型中,子流域和河道作為基本單元不可再細分,可以理解為GIS中簡單的子對象;整體流域在對象的特征之外還需要包容子流域與河道,為集合對象,形成“集合-子對象”拓撲關系。可以將子對象定義為簡單對象,其組件接口應具有唯一標識符、名稱、地形坐標、參數(shù)獲取/設置等特性和操作;集合對象除了具有簡單對象的特征外,還應具有一個集合接口管理子對象;所有的對象都應該實現(xiàn)微軟標準序列化接口方便存取。模型地理對象通用接口和組件設計見圖2。

圖2 模型地理對象通用接口和組件設計
在定義通用地理數(shù)據(jù)接口后,在邏輯上具備實現(xiàn)GIS與模型完全集成的可能,但實現(xiàn)目標還需要有一個數(shù)字流域平臺實現(xiàn)模型數(shù)據(jù)錄入、模型地理數(shù)據(jù)顯示、動靜態(tài)計算過程渲染、結果查詢與輸出、通用輔助組件服務等頂層功能。以ArcGIS平臺為例,由于平臺沒有直接支持自定義數(shù)據(jù)的顯示模塊,因此需要構建平臺對自定義數(shù)據(jù)的顯示以及渲染模塊。大多數(shù)GIS平臺都以圖層為基本的顯示單元,在分析ArcGIS平臺的圖層顯示方法后,首先可以設計一個自定義的圖層來容納任意類型的模型地理數(shù)據(jù),并建立地理數(shù)據(jù)渲染模塊;然后將圖層加入ArcGIS平臺中接受平臺的管理和渲染。此設計應作為數(shù)字流域模型框架的通用功能,模型編制人員采用較簡單的方法即可直接復用。自定義圖層及渲染器設計如圖3所示。

圖3 自定義圖層及渲染器設計
分析ArcGIS平臺關于組件容納、管理、通信控制的框架,研究能夠在GIS平臺下對未知多過程模型組件進行統(tǒng)一管理、裝配、結果存儲與展示的數(shù)字流域平臺,并建立不從屬于模型的部分通用組件,如水文站網(wǎng)管理組件、水文序列管理組件、自定義模型可視化渲染組件等,方便外部模型組件直接應用,最終建立支撐模型互饋機制的數(shù)字流域模型自由擴展框架。以位于浙江省建德市的壽昌江流域作為示例。
在ArcGIS中,將該流域劃分為若干子流域,并利用工具提取河道。子流域劃分及河道提取結果見圖4。

圖4 壽昌江流域示意圖
打開子流域和子河道圖層屬性表,可以看到該流域的地理數(shù)據(jù)結構,見圖5。

(a) 子流域屬性表
子流域和子河道都采用下游標識符NextDownID構建拓撲關系,并在子河道屬性表中添加流域標識符GridID記錄該子河道所屬流域。ArcGIS地理數(shù)據(jù)管理方式存在兩個問題:一是水文模型的地理數(shù)據(jù)拓撲關系按照字段關聯(lián)方式固定下來,模型自身無法控制GIS圖層;二是GIS中圖形的增刪將導致模型數(shù)據(jù)與GIS數(shù)據(jù)對應關系錯亂,當模型復雜時維護對應關系極其困難。
在水文模型中,通常將一個大流域劃分成多個子流域,分塊計算出流過程再匯總。為了滿足數(shù)字流域的構建需求,以面向對象的思想,將ArcGIS地理數(shù)據(jù)結構轉化為數(shù)字流域水文模型數(shù)據(jù)結構,把子流域內地形、河道、站網(wǎng)等數(shù)據(jù)作為一個整體對象,方便水文建模和數(shù)據(jù)管理,有效解決GIS與水文模型耦合中存在的問題。水文模型數(shù)據(jù)結構見圖6。

圖6 數(shù)字流域水文模型數(shù)據(jù)結構
為實現(xiàn)數(shù)字流域體系下的流域綜合過程模擬,針對GIS與水文模型耦合存在的時空特征和拓撲關系不相匹配這兩個具體問題,提出了自定義GIS兼容的地理數(shù)據(jù)結構,通過分析目前水文、水動力、地下水等模型的地理數(shù)據(jù)結構,提煉了各模型內部地理數(shù)據(jù)之間的關聯(lián)關系和拓撲關系,探討了采用軟件工程中的組件“包容”“聚合”等技術構建“集合-子對象”包容關系的模型地理數(shù)據(jù)表達方法,結合ArcGIS組件框架抽象出模型地理對象接口,可實現(xiàn)以ArcGIS為平臺的水文模型通用地理數(shù)據(jù)標準。