劉佳嘉,周祖昊,賈仰文,王 浩
(1. 中國水利水電科學(xué)研究院流域水循環(huán)模擬與調(diào)控國家重點(diǎn)實(shí)驗(yàn)室,北京 100038;2. 水利部水資源與水生態(tài)工程技術(shù)研究中心, 北京 100038)
分布式水文模型子流域編碼方法對比分析
劉佳嘉1,2,周祖昊1,2,賈仰文1,2,王 浩1,2
(1. 中國水利水電科學(xué)研究院流域水循環(huán)模擬與調(diào)控國家重點(diǎn)實(shí)驗(yàn)室,北京 100038;2. 水利部水資源與水生態(tài)工程技術(shù)研究中心, 北京 100038)
根據(jù)分布式水文模型對子流域編碼的要求,對文獻(xiàn)中河流和流域編碼方法進(jìn)行研究。研究發(fā)現(xiàn)只有5種編碼方式符合要求,分別是:拓?fù)鋵傩员矸ā⒍鏄渚幋a、多叉樹編碼、Pfafstetter法、干支拓?fù)渚幋a。在深入研究這5種編碼規(guī)則的基礎(chǔ)上,對比分析其優(yōu)缺點(diǎn),并以第二松花江作為實(shí)例進(jìn)行子流域劃分及編碼。結(jié)果表明:拓?fù)鋵傩员矸?、多叉樹編碼和干支拓?fù)渚幋a方法在河段單一匯流、多河段匯流支持方面優(yōu)于其他編碼方法;在直接計(jì)算相鄰上下游子流域編碼方面,拓?fù)鋵傩员矸梢灾苯硬檎耀@取,二叉樹編碼和干支拓?fù)浯a編碼方法可直接計(jì)算,Pfafstetter編碼和多叉樹編碼均需要遍歷整個編碼體系進(jìn)行搜索獲??;在判別任意2個子流域上下游關(guān)系方面,Pfafstetter編碼和干支拓?fù)浯a均優(yōu)于其他3種方法。不同編碼方式具有各自的優(yōu)缺點(diǎn),在實(shí)際應(yīng)用中需要根據(jù)不同分布式水文模型具體研究內(nèi)容和編碼要求選擇適宜的編碼方式。
分布式水文模型;Pfafstetter編碼;二叉樹編碼;多叉樹編碼;干支拓?fù)渚幋a;子流域劃分
分布式水文模型因其能夠反映流域參數(shù)離散化并進(jìn)行分布式模擬,正越來越受水文工作者的青睞。尤其隨著GIS等技術(shù)的發(fā)展,模型應(yīng)用越發(fā)容易,基于DEM的分布式水文模型已經(jīng)成為當(dāng)今水文學(xué)界研究的熱點(diǎn)[1-3]。目前,分布式水文模型流域離散方法應(yīng)用廣泛的主要有柵格和自然子流域2種[2,4]。隨著對大、中尺度流域模擬需求的出現(xiàn),基于子流域劃分的水文模型得到廣泛應(yīng)用[5-8]。其原因在于,使用柵格進(jìn)行大流域離散化,如果柵格精度較高,則容易造成數(shù)據(jù)維度災(zāi),而如果柵格精度較低,則容易造成地形、河流描述失真。采用子流域劃分則能夠保證子流域之間的上下游關(guān)系,子流域內(nèi)部可以采用高精度DEM進(jìn)行描述,而且子流域內(nèi)的模擬計(jì)算也可以引進(jìn)傳統(tǒng)水文模型進(jìn)行運(yùn)算。在大流域模擬中,采用子流域劃分方式能夠保證一定模擬精度的同時縮短模型運(yùn)行時間。
分布式水文模型的子流域劃分主要包括2個部分:子流域范圍確定和子流域編碼。在確定子流域范圍時,一般以流域內(nèi)河段為基礎(chǔ),將流入相同河段的區(qū)域歸為同一個子流域,即子流域和流域內(nèi)的河段是一一對應(yīng)的。子流域范圍確定后,需要對每個子流域分配一個標(biāo)識(數(shù)字或字符),用于在水文模擬以及結(jié)果展示時,進(jìn)行指示和定位。根據(jù)分布式水文模型應(yīng)用要求,子流域編碼方法需要具有以下3個基本要求[9-11]:(a)編碼對象是河網(wǎng)中的各個河段而不是整條河流;(b)每個編碼唯一對應(yīng)一個子流域,從而可以通過編碼直接進(jìn)行定位;(c)編碼能夠反映河段之間的拓?fù)潢P(guān)系,從而可以通過編碼判別2個子流域之間的上下游關(guān)系。此外,隨著分布式水文模型的應(yīng)用及發(fā)展,對子流域編碼方法提出了更高的要求[8,11-14]:(a)能夠?qū)哂卸鄠€出口的流域進(jìn)行編碼;(b)擁有足夠的編碼容量用于大尺度流域劃分;(c)能夠通過編碼直接計(jì)算相鄰上下游編碼,而非低效的遍歷搜索;(d)能夠處理多種河段匯流情景,而非單一的二叉樹劃分(例如,加密無分叉河段、考慮水庫水文站劃分、考慮3個以上河段匯入同一河段等)。
目前,文獻(xiàn)中河網(wǎng)編碼方法很多,例如愛爾蘭測站編碼[15]、芬蘭河流編碼[15]、Strahler法[16]、Shreve法[17]、Horton法[18]、拓?fù)鋵傩员矸╗5, 19]、Pfafstetter法[12, 20-22]、德國LAWA編碼[23]、二叉樹編碼[10, 24-25]、多叉樹編碼[13]、干支拓?fù)渚幋a[11, 26]等。然而,大部分都不適合用作子流域編碼,即相關(guān)編碼方式并不能全部滿足子流域編碼的3個基本特征。研究表明,只有拓?fù)鋵傩员矸?、二叉樹編碼、多叉樹編碼、Pfafstetter法、干支拓?fù)渚幋a這5種方法能夠完全滿足上述3個基本特征以及部分滿足4個高級要求。本文主要在介紹這5種子流域編碼方法的基礎(chǔ)上,對其進(jìn)行對比分析,探索各方法的優(yōu)缺點(diǎn),為水文模型開發(fā)者提供參考。
拓?fù)鋵傩员矸ㄊ亲詈唵蔚淖恿饔蚓幋a方法。該方法對每個子流域隨機(jī)或者根據(jù)一定的算法設(shè)置一個唯一的自然數(shù)編碼,然后根據(jù)河網(wǎng)上下游關(guān)系,建立拓?fù)鋵傩?,用于水文模型河網(wǎng)匯流演算。該方法又可細(xì)分為非拓?fù)湫蛄芯幋a和拓?fù)湫蛄芯幋a,兩者的區(qū)別在于后者能夠確保每一個子流域的所有上游子流域編號均小于自身編號,因此在進(jìn)行河網(wǎng)匯流演算時,只需根據(jù)自然數(shù)順序依次進(jìn)行模擬計(jì)算,而不需要遞歸檢測上游是否已經(jīng)完成匯流演算。在實(shí)際應(yīng)用中,研究人員往往對非拓?fù)湫蛄芯幋a另外建立一個演算順序[27-30],從而等同于拓?fù)湫蛄芯幋a。因此本文中拓?fù)鋵傩员矸ㄌ刂竿負(fù)湫蛄芯幋a,編碼示例見圖1(a)。在應(yīng)用時需要額外提供拓?fù)潢P(guān)系屬性表,標(biāo)識各子流域的上下游子流域編碼信息,例如,需要提供屬性表說明子流域6的上游子流域是2、3、4、5,下游子流域?yàn)?。
二叉樹編碼[24]是一種基于二叉樹理論,并以二元形式表示的河網(wǎng)編碼方法。該方法將整個河網(wǎng)概化成以出口河段為根節(jié)點(diǎn)的二叉樹結(jié)構(gòu),以(Ln,Vn)二元形式進(jìn)行編碼,其中Ln表示該節(jié)點(diǎn)在二叉樹中所處的層數(shù)(即到流域出口的河段數(shù)),Vn表示該節(jié)點(diǎn)在對應(yīng)層內(nèi)序號(對同一條支流而言,離干流越遠(yuǎn),該值呈2n指數(shù)級增長),則其下游河段編碼為(Ln-1,Vn2)(其中“”表示整除),其上游干流編碼為(Ln+1, 2Vn),上游支流編碼為(Ln+1, 2Vn+1)。因此該方法能夠通過編碼本身直接計(jì)算上下游子流域編碼,而無需查找拓?fù)潢P(guān)系表。王皓等[25]通過引入虛擬節(jié)點(diǎn)有效地解決了該方法無法處理只有1個子節(jié)點(diǎn)或多于2個子節(jié)點(diǎn)的問題。王皓等[25]和Li等[10]通過采用分區(qū)的思想將縱深發(fā)育很大的子流域裁剪出來獨(dú)立編碼,并通過分區(qū)間的拓?fù)潢P(guān)系進(jìn)行耦合,用(Zn,Ln,Vn)三元方式進(jìn)行編碼解決了Vn指數(shù)級增長引起的整數(shù)溢出問題。二元(Ln,Vn)編碼示例如圖1(b)所示。
多叉樹編碼[13]是基于多叉樹理論的一種能夠解決多支流匯流情景的編碼方法。該方法將整個河網(wǎng)概化成以流域出口為根節(jié)點(diǎn)的多叉樹結(jié)構(gòu),以(L,N,PN)三元形式進(jìn)行編碼,其中L表示該節(jié)點(diǎn)在多叉樹中的層數(shù)(即到流域出口的河段數(shù)),N表示該節(jié)點(diǎn)在對應(yīng)層中從左到右的自然數(shù)序號(從0開始,按順序遞增),PN表示該節(jié)點(diǎn)的父節(jié)點(diǎn)的N值,則其下游編碼為(L-1,PN, ?),上游編碼為(L+1, ?,N)(其中?表示未知編碼,下游只有1個,上游可能多個)。因此,該方法無法直接通過編碼自身推算相鄰上下游子流域完整編碼,而需要通過遍歷整個編碼體系查找符合要求的編碼,編碼示例如圖1(c)所示。
Pfafstetter編碼[21]將集水面積最大的4條一級支流,從下游到上游依次編碼2、4、6和8,將其分割得到的5個干流河段從下而上依次編碼1、3、5、7和9。對劃分所得的每個河段按相同的規(guī)則重復(fù)執(zhí)行,直至給定的編碼級別或者無法細(xì)分,其中后續(xù)劃分的河段編碼擁有上一級別河段編碼,例如在支流6上進(jìn)行二級編碼,則其河段編碼應(yīng)該是6X形式(X表示當(dāng)前級別編碼)。原始的Pfafstetter規(guī)則要求河道必須有4條以上支流,否則不能繼續(xù)進(jìn)行細(xì)分編碼,不適用于分布式水文模型。因此,羅翔宇等[22]、Fürst等[20]、雷曉輝等[12, 31]對該規(guī)則進(jìn)行改進(jìn),使得方法能夠?qū)ι儆?個支流情況進(jìn)行編碼。由于各河段具有不同的編碼級別,因此不能通過Pfafstetter編碼直接計(jì)算相鄰上下游子流域編碼。本文所指Pfafstetter編碼是改進(jìn)后的編碼規(guī)則,編碼示例見圖1(d)。
干支拓?fù)渚幋a[11, 26]是一種類Pfafstetter編碼體系。該方法采用{O, S, B : U}四元形式編碼,其中O是水系序列碼,用以標(biāo)識相互獨(dú)立的水系;S是干流流程碼,表示被編碼河段到流域出口所流經(jīng)的各級河道中河段個數(shù),編碼對象是各個河段;B是支流流程碼,表示被編碼河段到流域出口所流經(jīng)的各級別河道的支流標(biāo)識,編碼對象是整個河流,用于區(qū)別流入相同河段的支流;U是上游入流數(shù),表示被編碼河段上游流入河段數(shù)。其中,OSB組合稱之為主碼,能夠唯一標(biāo)識流域中各河段;而U則是輔碼,用于擴(kuò)展編碼功能。上游子流域編碼的主碼是在其直接流入的下游子流域編碼基礎(chǔ)上拓展得出的,因此,方法能夠反映河段上下游拓?fù)潢P(guān)系。編碼示例見圖1(e)(由于只有一個水系,省略了O編碼)。
圖1 不同編碼方法編碼示例Fig. 1 Examples of coding of different coding methods
根據(jù)各子流域編碼規(guī)則以及分布式水文模型應(yīng)用要求,筆者分別從編碼特性、編碼能力、拓?fù)潢P(guān)系分析能力3個方面對現(xiàn)有5種子流域編碼方法優(yōu)缺點(diǎn)進(jìn)行比較分析,對比分析結(jié)果見表1。
表1 不同編碼方法優(yōu)缺點(diǎn)比較
Table 1 Comparison of advantages and disadvantages of different coding methods
編碼方法編碼特性編碼能力拓?fù)潢P(guān)系分析能力拓?fù)鋵傩员矸á僮匀粩?shù)順序編碼方式,編碼載體是數(shù)字;②編碼本身不能夠反映河網(wǎng)拓?fù)潢P(guān)系,需要查找拓?fù)鋵傩员矸从匙恿饔蛑g上下游拓?fù)潢P(guān)系;③能對任何水系編碼,需要精細(xì)河段信息,編碼級別不是河流級別①支持單一河段匯流編碼;支持多河段匯流編碼;②無損編碼,無冗余子流域產(chǎn)生;③編碼無容量限制;④編碼無特殊要求,拓?fù)浞€(wěn)定性最高,編碼更新容易①不能直接計(jì)算相鄰上下游子流域編碼,需要通過查找拓?fù)鋵傩员?②無法直接判別任意2個子流域編碼之間的上下游關(guān)系,需要遍歷整個拓?fù)鋵傩员慝@得相關(guān)關(guān)系Pfafstetter編碼①繼承式編碼方式,編碼載體是數(shù)字字符;②編碼本身能夠反映河網(wǎng)拓?fù)潢P(guān)系,支流編碼擁有所流入干流河段所有編碼;③僅對樹狀水系編碼,不需要精細(xì)河段信息,編碼級別不是河流級別①支持單一河段匯流編碼;支持最多3河段匯流編碼;②有損編碼;無冗余子流域產(chǎn)生;③編碼無容量限制;④編碼采用最大4支流確定法,拓?fù)浞€(wěn)定性不高,不容易更新,往往需要重新編碼①不能直接計(jì)算相鄰上下游子流域編碼,需要通過搜索整個編碼體系獲取;②通過檢查子流域編碼不同級別編碼之間的包含繼承、大小比較等關(guān)系判別任意2個子流域之間的上下游關(guān)系二叉樹編碼①內(nèi)涵式編碼方式,編碼載體是數(shù)字;②編碼本身不能夠反映河網(wǎng)拓?fù)潢P(guān)系,主要通過編碼之間的倍比關(guān)系反映拓?fù)潢P(guān)系;③僅對樹狀水系編碼,需要精細(xì)河段信息,編碼級別不是河流級別①支持單一河段匯流編碼;可支持多河段匯流編碼,但會引入虛擬節(jié)點(diǎn)等冗余子流域信息,損失原有快捷計(jì)算優(yōu)勢;②有損編碼;引入虛擬河段實(shí)現(xiàn)無損編碼,但此時會產(chǎn)生冗余小子流域信息;③存在整數(shù)數(shù)據(jù)溢出問題導(dǎo)致編碼有容量限制,但可通過分區(qū)編碼實(shí)現(xiàn)無容量限制;④編碼無特殊要求,拓?fù)浞€(wěn)定性比較高,編碼更新相對復(fù)雜,特殊情況需要重新編碼①能直接計(jì)算相鄰上下游子流域編碼,但需檢查上游是否存在;②通過檢查子流域編碼之間的倍比關(guān)系判別任意2個子流域之間的上下游關(guān)系,如果位于不同的編碼分區(qū)則需要額外判別分區(qū)之間的關(guān)系多叉樹編碼①半內(nèi)涵半繼承式編碼方式,載體是數(shù)字;②編碼本身僅部分反映子流域拓?fù)潢P(guān)系,需要通過sql語句遍歷所有編碼體現(xiàn)完整的拓?fù)潢P(guān)系;③僅對樹狀水系編碼,需要精細(xì)河段信息,編碼級別不是河流級別①支持單一河段匯流編碼;支持多河段匯流編碼;②無損編碼;無冗余小子流域產(chǎn)生;③編碼無容量限制;④編碼無特殊要求,拓?fù)浞€(wěn)定性高,編碼更新相對容易①不能直接計(jì)算相鄰上游子流域編碼,需要通過sql搜索整個編碼體系獲取,可通過直接定位下游編碼存儲位置,獲取完整編碼;②無法直接判別任意2個子流域編碼之間的上下游關(guān)系,需要通過sql搜索整個編碼體系獲得相關(guān)關(guān)系干支拓?fù)渚幋a①繼承式編碼方式,編碼載體是數(shù)字字符;②編碼本身能夠反映河網(wǎng)拓?fù)潢P(guān)系,支流編碼擁有所流入干流河段所有編碼;③僅對樹狀水系編碼,需要精細(xì)河段信息,編碼級別是河流級別①支持單一河段匯流編碼;支持多河段匯流編碼;②無損編碼;無冗余小子流域產(chǎn)生;③編碼無容量限制;④編碼無特殊要求,拓?fù)浞€(wěn)定性高,編碼更新相對容易①能直接計(jì)算相鄰上下游子流域編碼;②通過檢查子流域編碼不同級別編碼之間的包含繼承、大小比較等關(guān)系判別任意兩個子流域之間的上下游關(guān)系
2.1 編碼特性
拓?fù)鋵傩员矸▽儆谧匀粩?shù)編碼方式,編碼載體是數(shù)字,編碼本身不能反映子流域拓?fù)潢P(guān)系,需要通過查找拓?fù)鋵傩员慝@得。Pfafstetter編碼和干支拓?fù)渚幋a屬于繼承式編碼方式,編碼載體是數(shù)字字符(也可擴(kuò)展為字母等其他可比較大小的字符集),編碼本身能夠反映子流域拓?fù)潢P(guān)系,支流的編碼擁有其所流入的干流河段的所有編碼。二叉樹編碼屬于內(nèi)涵式編碼,編碼載體是數(shù)字,主要通過編碼之間的倍比關(guān)系反映子流域拓?fù)潢P(guān)系。多叉樹編碼屬于半內(nèi)涵半繼承式編碼,編碼載體是數(shù)字,編碼本身僅部分反映子流域拓?fù)潢P(guān)系,需要通過sql語句遍歷所有編碼以反映完整的拓?fù)潢P(guān)系。
拓?fù)鋵傩员矸蓪θ魏嗡颠M(jìn)行編碼;其他4類編碼方法只能對樹狀水系進(jìn)行編碼(即每個子流域最多只有一個下游)。由于其他4類編碼能夠通過一定的運(yùn)算轉(zhuǎn)換成拓?fù)湫蛄芯幋a,因此對于樹狀水系而言,后面4種編碼方法均優(yōu)于拓?fù)鋵傩员矸āfafstetter編碼采用從河流到河段的逐步細(xì)分的編碼方式,即先對某條河段進(jìn)行編碼,然后對該河段再進(jìn)行細(xì)化編碼,換言之,編碼時不需要知道過于精細(xì)的河網(wǎng)河段劃分;其他4種方法均采用逐河段編碼的方式進(jìn)行,即在編碼時需要知道完整的河網(wǎng)河段劃分信息。
2.2 編碼能力
根據(jù)不同編碼規(guī)則以及圖1實(shí)例可以發(fā)現(xiàn),所有5種編碼方法都支持單一河段、二岔河段匯流編碼,但對3個以上河段匯流情況編碼支持程度不一樣。Pfafstetter編碼最多支持3個河段匯流情況,是一種有損編碼方案,即在特殊情況下,無法對某些河段進(jìn)行編碼。對二叉樹編碼而言,原始編碼規(guī)則是有損的,不能對多于2個匯流河段進(jìn)行編碼,但可通過引入虛擬河段的方式實(shí)現(xiàn)無損編碼,此時會產(chǎn)生冗余編碼信息;其他3種方法則均能夠支持單一、多個河段匯流編碼,是無損編碼方案。由于二叉樹編碼中Vn根據(jù)河網(wǎng)拓?fù)浣Y(jié)構(gòu)會呈現(xiàn)2n指數(shù)級增長,因此很容易就超出計(jì)算機(jī)整數(shù)范圍(264-1),從而導(dǎo)致數(shù)據(jù)溢出,限制了編碼容量大小;雖然改進(jìn)二叉樹采用分區(qū)編碼的方法解決了編碼容量限制問題,但增加了編碼復(fù)雜度,且破壞了上下游編碼快捷計(jì)算的優(yōu)勢。
當(dāng)流域水系拓?fù)浣Y(jié)構(gòu)發(fā)生變化(例如,增加刪除某條河流、增加刪除河段分割節(jié)點(diǎn)等),同一個河段編碼在變化前和變化后差異較大,則說明編碼的拓?fù)浞€(wěn)定性低;反之,如果只有受變動的局部區(qū)域編碼不同,而其他區(qū)域編碼變化前后保持一致,則說明編碼拓?fù)浞€(wěn)定性高。對Pfafstetter編碼而言,如果只是對原有河段進(jìn)行再細(xì)分,拓?fù)浞€(wěn)定性高,編碼更新容易;但是,如果對原河網(wǎng)進(jìn)行河流增加、減少操作,則拓?fù)浞€(wěn)定性差,編碼更新比較復(fù)雜,往往需要對整個流域進(jìn)行重新編碼。這主要是因?yàn)镻fafstetter編碼采用最大集水面積的4條支流作為劃分依據(jù),增減河流之后,最大集水面積4支流可能會被改變,進(jìn)而需要重新編碼。對原始的二叉樹編碼規(guī)則而言,拓?fù)浞€(wěn)定性高,編碼更新相對容易,但流域內(nèi)河網(wǎng)復(fù)雜度不宜過高;而對改進(jìn)的二叉樹編碼規(guī)則而言,由于虛擬河段和分區(qū)屬性表的引入,使得編碼拓?fù)浞€(wěn)定性降低,編碼更新復(fù)雜度增加,特殊情況需要對整個流域重新編碼。對多叉樹編碼和干支拓?fù)渚幋a而言,編碼拓?fù)浞€(wěn)定性高,編碼更新相對容易。
2.3 拓?fù)潢P(guān)系分析能力
首先是相鄰上下游編碼計(jì)算能力,即通過編碼獲取其相鄰的流入子流域(或流出子流域)的編碼。對于拓?fù)鋵傩员矸ǘ?,無法通過編碼自身進(jìn)行分析,而需要查找拓?fù)鋵傩员聿拍苤榔湎噜徤舷掠尉幋a。對于Pfafstetter編碼而言,因?yàn)椴恢栏骱佣蔚木幋a級別,因此不能夠計(jì)算其相鄰上下游編碼,需要對整個編碼體系進(jìn)行比較分析從而得出。例如,河段“3”的上游可能是“5”,也可能是“51”、“511”等,無法唯一確認(rèn)。對于原始二叉樹而言,可以通過倍比關(guān)系由原始編碼直接計(jì)算相鄰上下游編碼(見第1節(jié)二叉樹規(guī)則介紹),但計(jì)算所得上游可能是不存在的(葉節(jié)點(diǎn)沒有上游)。對于改進(jìn)二叉樹而言,在采用倍比關(guān)系計(jì)算之前需要檢測其上下游是否位于相同的編碼分區(qū),如果位于不同的分區(qū)則需要通過查分區(qū)屬性表確定,反之則通過倍比關(guān)系計(jì)算。此外,由于引入虛擬節(jié)點(diǎn)技術(shù),還需檢測計(jì)算所得上下游是否是虛擬節(jié)點(diǎn),如果是虛擬節(jié)點(diǎn),則還需繼續(xù)計(jì)算。雖然改進(jìn)二叉樹方法拓展了原始二叉樹編碼的編碼能力,但是卻破壞了原有快捷計(jì)算相鄰上下游編碼的能力,使得相鄰上下游編碼計(jì)算變的十分復(fù)雜。對于多叉樹編碼而言,無法直接計(jì)算上游子流域編碼,需要通過sql語言遍歷整個編碼體系獲??;但可以通過自身編碼計(jì)算得出下游編碼存儲地址,從而獲取完整編碼。對于干支拓?fù)渚幋a而言,可以直接計(jì)算相鄰上下游編碼的主碼。
其次是上下游關(guān)系判別能力,即通過任意2個子流域編碼判別其是否具有上下游關(guān)系。對于Pfafstetter編碼和干支拓?fù)渚幋a而言,由于采用繼承式編碼體系,可以直接判別兩者之間的上下游關(guān)系。對于拓?fù)鋵傩员矸ǘ?,無法直接判別上下游關(guān)系,需要通過遍歷整個拓?fù)鋵傩员磉M(jìn)行遞歸查詢。對于原始二叉樹編碼而言,可通過倍比關(guān)系進(jìn)行判別。而對改進(jìn)二叉樹編碼而言,如果2個編碼位于相同的編碼分區(qū)可直接通過倍比關(guān)系直接判斷,如果位于不同的分區(qū),則需要通過查詢分區(qū)屬性表判別。對于多叉樹編碼而言,無法直接判別上下游關(guān)系,需要通過sql語言搜索整個編碼體系進(jìn)行判別。
以松花江流域第二松花江為例進(jìn)行流域劃分以及編碼應(yīng)用對比。第二松花江子流域模擬河網(wǎng)和子流域劃分結(jié)果如圖2所示,并對各子流域劃分結(jié)果分別采用上述5種編碼方式,所得結(jié)果如圖3~7所示。從圖中可以看出,5種編碼方式都能夠?qū)ψ恿饔蜻M(jìn)行有效編碼。由于子流域數(shù)量較少以及拓?fù)浣Y(jié)果相對簡單,因此沒有出現(xiàn)前面所提到的各方法的缺點(diǎn)。圖3所對應(yīng)的拓?fù)鋵傩员砣绫?所示。
本文詳細(xì)介紹了現(xiàn)有的5種適用于子流域編碼規(guī)則,并在此基礎(chǔ)上從編碼特性、編碼能力、拓?fù)潢P(guān)系分析能力三方面對不同編碼方法之間的優(yōu)缺點(diǎn)進(jìn)行了比較。結(jié)果表明,多叉樹編碼和干支拓?fù)渚幋a方法在河段單一匯流、多河段匯流支持方面優(yōu)于其他編碼方法。在直接計(jì)算相鄰上下游子流域編碼方面,拓?fù)鋵傩员矸梢灾苯硬檎耀@取,二叉樹編碼和干支拓?fù)浯a編碼方法可直接計(jì)算,Pfafstetter編碼和多叉樹編碼均需要遍歷整個編碼體系進(jìn)行搜索獲取。在判別任意2個子流域上下游關(guān)系方面,Pfafstetter編碼和干支拓?fù)浯a均優(yōu)于其他3種方法。5種編碼方法具有各自的優(yōu)缺點(diǎn),在模型構(gòu)建開發(fā)過程中,需要根據(jù)模型具體的研究內(nèi)容和編碼要求,選擇適宜的編碼方式,從而提高模型效率。根據(jù)本文研究,如果子流域劃分?jǐn)?shù)量較少以及拓?fù)浣Y(jié)果相對簡單,則5種方法均能夠?qū)α饔蜻M(jìn)行編碼,但考慮到后期拓?fù)潢P(guān)系計(jì)算,推薦采用多叉樹編碼和干支拓?fù)渚幋a方式進(jìn)行子流域劃分和編碼。
圖2 流域模擬河網(wǎng)及子流域劃分Fig.2 Simulated river network and subwatershed division
圖3 拓?fù)鋵傩员矸ň幋a結(jié)果Fig.3 Subdivision results of topological property table coding method
圖4 二叉樹編碼結(jié)果Fig.4 Subdivision results of binary-tree coding method
圖5 多叉樹編碼結(jié)果Fig.5 Subdivision results of multi-tree coding method
子流域號下游上游1上游2子流域號下游上游1上游2子流域號下游上游1上游2102387910151300211819980016140032451080017140043001170018200536131260019220216571213514152019007681114131617211900
圖6 Pfafstetter編碼結(jié)果Fig.6 Subdivision results of Pfafstetter coding method
圖7 干支拓?fù)浯a編碼結(jié)果Fig.7 Subdivision results of stem-branch topological coding method
[ 1 ] 賈仰文, 王浩, 倪廣恒. 分布式流域水文模型原理與實(shí)踐[M]. 北京: 中國水利水電出版社, 2005.
[ 2 ] 王中根, 劉昌明, 左其亭,等. 基于DEM的分布式水文模型構(gòu)建方法[J]. 地理科學(xué)進(jìn)展, 2002, 21(5):430-439. (WANG Zhonggen, LIU Changming, ZUO Qiting, et al. Methods of constructing distributed hydrological model based on DEM [J]. Progress in Geography, 2002, 21(5): 430-439.(in Chinese))
[ 3 ] ABBOTT M B, REFSGAARD J C. Distributed hydrological modeling [M]. Kluwer Academic Publishers, 1996.
[ 4 ] JIA Y, WANG H, ZHOU Z, et al. Development of the WEP-L distributed hydrological model and dynamic assessment of water resources in the Yellow River Basin [J]. Journal of Hydrology, 2006, 331: 606-629.
[ 5 ] 陸垂裕, 秦大庸, 張俊娥, 等. 面向?qū)ο竽K化的分布式水文模型MODELCYCLE I:模型原理與開發(fā)篇[J]. 水利學(xué)報(bào), 2012, 43(10): 1135-1145. (LU Chuiyu, QIN Dayong, ZHANG Jun’e, et al. MODELCYCLE-an object oriented modularized hydrological model I: theory and development [J].Journal of Hydraulic Engineering,2012, 43(10): 1135-1145.(in Chinese))
[ 6 ] 楊大文, 李翀, 倪廣恒,等. 分布式水文模型在黃河流域的應(yīng)用[J]. 地理學(xué)報(bào), 2004, 59(1): 143-154. (YANG Dawen, LI Chong, NI Guangheng, et al. Application of a distributed hydrological model to the Yellow River basin [J]. Acta Geographica Sinica, 2004, 59(1): 143-154.(in Chinese))
[ 7 ] 賈仰文, 王浩, 周祖昊, 等. 海河流域二元水循環(huán)模型開發(fā)及其應(yīng)用:I.模型開發(fā)與驗(yàn)證[J]. 水科學(xué)進(jìn)展, 2010, 21(1): 1-8. (JIA Yangwen, WANG Hao, ZHOU Zuhao, et al. Development and application of dualistic water cycle model in Haihe River Basin: I. model development and validation [J]. Advances in Water Science, 2010, 21(1): 1-8.(in Chinese))
[ 8 ] 張峰, 廖衛(wèi)紅, 雷曉輝,等. 分布式水文模型子流域劃分方法[J]. 南水北調(diào)與水利科技, 2011, 9(3): 101-105. (ZHANG Feng, LIAO Weihong, LEI Xiaohui, et al. A review on subbasin delineation methods for distributed hydrological models [J]. South to North Water Diversion and Water Science & Technology, 2011, 9(3): 101-105.(in Chinese))
[ 9 ] 李滿, 王山東, 楊松,等. 基于DEM的數(shù)字流域河網(wǎng)編碼方法研究[J]. 計(jì)算機(jī)與數(shù)字工程, 2014, 42(2): 210-212. (LI Man, WANG Shandong, YANG Song, et al. Drainage network codification method based on DEM [J]. Computer & Digital Engineering, 2014, 42(2): 210-212.(in Chinese))
[10] LI T, WANG G, CHEN J. A modified binary tree codification of drainage networks to support complex hydrological models [J]. Computers & Geosciences, 2010, 36(11): 1427-1435.
[11] 劉佳嘉, 周祖昊, 賈仰文, 等. 基于DEM河網(wǎng)干支拓?fù)潢P(guān)系的子流域編碼規(guī)則[J]. 河海大學(xué)學(xué)報(bào)(自然科學(xué)版), 2013, 41(4): 288-293. (LIU Jiajia, ZHOU Zuhao, JIA Yangwen, et al. A rule for delineation and codification of subwatersheds based on stem-branch topological relationship of DEM digital river network [J]. Journal of Hohai University(Natural Sciences), 2013, 41(4): 288-293.(in Chinese))
[12] LEI X H, TIAN Y Z, JIANG Y, et al. General catchment delineation method and its application into the Middle Route Project of China’s South-to-North Water Diversion [J]. HKIE Transactions, 2010, 17(2): 27-33.
[13] WANG H, FU X, WANG G. Multi-tree coding method (MCM) for drainage networks supporting high-efficient search [J]. Computers & Geosciences, 2013, 52: 300-306.
[14] 雷曉輝, 王海潮, 田雨,等. 南水北調(diào)中線受水區(qū)分布式水文模型子流域劃分研究[J]. 南水北調(diào)與水利科技, 2009, 7(3): 10-13. (LEI Xiaohui, WANG Haichao, TIAN Yu, et al. Subbasin delineation for the service areas of South-to-North water diversion project [J]. South to North Water Diversion and Water Science & Technology, 2009, 7(3): 10-13.(in Chinese))[15] 李建新, 曹國榮, 余向勇. 國內(nèi)外河流編碼技術(shù)評述[J]. 水利信息化, 2010(2): 25-30. (LI Jianxin, CAO Guorong, YU Xiangyong. Overview of river coding technology at home and abroad [J]. Water Resources Informatization, 2010(2): 25-30.(in Chinese))[16] STRAHLER A N. Quantitative analysis of watershed geomorphology [J]. Transactions, American Geophysical Union, 1957, 38(6): 913-920.
[17] SHREVE R. Infinite topologically random channel networks [J]. Journal of Geology, 1967, 75: 178-186.
[18] HORTON R. Erosional development of streams and their drainage basins: hydrophysical approach to quantitative morphology [J]. Geological Society of America Bulletin, 1945, 56: 275-370.
[19] ARNOLD J, SRINIVASAN R, MUTTIAH R, et al. Large area hydrologic modeling and assessment part I: model development [J]. Journal of the American Water Resources Association, 1998, 34(1): 73-89.
[20] FüRST J, HORHAN T. Coding of watershed and river hierarchy to support GIS-based hydrological analyses at different scales [J]. Computers & Geosciences, 2009, 35(3): 688-696.
[21] VERDIN K, VERDIN J. A topological system for delineation and codification of the Earth’s river basins [J]. Journal of Hydrology, 1999, 218(1/2): 1-12.
[22] 羅翔宇, 賈仰文, 王建華,等. 基于DEM與實(shí)測河網(wǎng)的流域編碼方法[J]. 水科學(xué)進(jìn)展, 2006, 17(3): 259-264. (LUO Xiangyu, JIA Yangwen, WANG Jianhua, et al. Method for delineation and codification of a large basin based on DEM and surveyed river network [J]. Advances in Water Science, 2006, 17(3): 259-264.(in Chinese))
[23] BRILLY M, VIDMAR A. Watershed coding of large river basins [C] // IAHS. Modelling and management of sustainable basin-scale water resource systems. Boulder: IAHS, 1995.
[24] 李鐵鍵, 王光謙, 劉家宏. 數(shù)字流域模型的河網(wǎng)編碼方法[J]. 水科學(xué)進(jìn)展, 2006, 17(5): 658-664. (LI Tiejian, WANG Guangqian, LIU Jiahong. Drainage network codification method for digital watershed model [J]. Advances in Water Science, 2006, 17(5): 658-664.(in Chinese))
[25] 王皓, 李鐵鍵, 高潔,等. 大尺度流域河網(wǎng)二叉樹編碼方法[J]. 河海大學(xué)學(xué)報(bào)(自然科學(xué)版), 2009, 37(5): 499-504. (WANG Hao, LI Tiejian, GAO Jie, et al. Binary-tree coding for drainage network of large-scale basins [J]. Journal of Hohai University(Natural Sciences), 2009, 37(5): 499-504.(in Chinese))
[26] LIU J, ZHOU Z, JIA Y, et al. A stem-branch topological codification for watershed subdivision and identification to support distributed hydrological modelling at large river basins [J]. Hydrological Processes, 2014, 28(4): 2074-2081.
[27] 葉愛中, 夏軍, 王綱勝, 等. 基于數(shù)字高程模型的河網(wǎng)提取及子流域生成[J]. 水利學(xué)報(bào), 2005, 36(5): 1-9. (YE Aizhong, XIA Jun, WANG Gangsheng, et al. Drainage network extraction and subcatchment delineation based on digital elevation model [J]. Journal of Hydraulic Engineering,2005, 36(5): 1-9.(in Chinese))
[28] 李大鳴, 徐好梅, 傅長鋒,等. 子牙河流域河網(wǎng)編碼與流域劃分方法的研究[J]. 中國農(nóng)村水利水電, 2012(7): 70-76. (LI Daming, XU Haomei, FU Changfeng, et al. Research on the method of drainage network coding and watershed subdivision of Ziyahe Watershed [J]. China Rural Water and Hydropower, 2012(7): 70-76.(in Chinese))
[29] 任立良, 劉新仁. 數(shù)字高程模型在流域水系拓?fù)浣Y(jié)構(gòu)計(jì)算中的應(yīng)用[J]. 水科學(xué)進(jìn)展, 1999, 10(2): 129-134. (REN Liliang, LIU Xinren. Application of digital elevation model to topological evaluation of drainage system [J]. Advances in Water Science, 1999, 10(2): 129-134.(in Chinese))
[30] 舒棟才, 程根偉. 基于多叉樹的遍歷算法在數(shù)字水系拓?fù)潢P(guān)系計(jì)算中的應(yīng)用[J]. 長江流域資源與環(huán)境, 2006, 15(6): 733-739. (SHU Dongcai, CHENG Genwei. Traversal algorithm based on multi-subtrees and its application on the topological relationship in digital drainage network [J]. Resources and Environment in the Yangtze Basin, 2006, 15(6): 733-739.(in Chinese))
[31] 雷曉輝, 周祖昊, 丁相毅, 等. 分布式水文模型子流域劃分中界河、海岸線的處理研究[J]. 水文, 2009, 29(6): 1-5.(LEI Xiaohui, ZHOU Zuhao, DING Xiangyi, et al. How to process boundary rivers and coastline in watershed subdivision of distributed hydrological model [J]. Journal of China Hydrology, 2009, 29(6): 1-5.(in Chinese))
Comparison analysis of subwatershed codification methods for distributed hydrological model
LIU Jiajia1, 2, ZHOU Zuhao1, 2, JIA Yangwen1, 2, WANG Hao1, 2
(1.StateKeyLaboratoryofSimulationandRegulationofWaterCycleinRiverBasin,ChinaInstituteofWaterResourcesandHydropowerResearch(IWHR),Beijing100038,China;2.EngineeringandTechnologyResearchCenterforWaterResourcesandHydroecologyoftheMinistryofWaterResources,Beijing100038,China)
According to the requirements of subwatershed codification for distributed hydrological models, river and watershed codification methods described in literature were studied. It is found that only five coding methods can meet the requirements of distributed hydrological models: the topological property table coding method (TPTCM), binary-tree coding method (BCM), multi-tree coding method (MCM), Pfafstetter coding method (PCM), and stem-branch topological coding method (SBTOPO). The advantages and the disadvantages of the five methods were examined based on analysis of their coding rules. The second Songhua River was selected as the study area for subwatershed division and codification. The results show that the TPTCM, MCM, and SBTOPO are superior to the other two methods in one-way and multi-way confluence situations. The TPTCM can directly find and obtain the codes of adjacent inflow and outflow subwatersheds, and the BCM and SBTOPO can directly calculate their codes, but the PCM and MCM obtain their codes by searching the entire coding system. The PCM and SBTOPO are better than the other three methods in terms of analysis of the upstream and downstream relationships between any two subwatersheds. All five coding methods have their own advantages and disadvantages.A suitable coding method should be selected according to research contents and coding requirements of distributed hydrological models in practical applications.
distributed hydrological model; Pfafstetter coding; binary-tree coding; multi-tree coding; stem-branch topological coding; subwatershed division
10.3876/j.issn.1000-1980.2017.01.004
2016-01-26
國家水體污染控制與治理科技重大專項(xiàng)(2008ZX07207-006,2012ZX07201-006);江西省水利科技重大項(xiàng)目(KT201501,KT201411);國家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(973計(jì)劃)(2015CB452701)
劉佳嘉(1985—),男,江蘇揚(yáng)州人,工程師,博士,主要從事分布式水文模型、水循環(huán)演變規(guī)律等相關(guān)研究。E-mail:vaver@foxmail.com
TV212.4
A
1000-1980(2017)01-0022-08