楊 軍,石傳奎,閆浩文,程耀東
(1.蘭州交通大學研究生學院,甘肅蘭州 730070;2.江蘇省鎮江市規劃局規劃科技信息中心,江蘇鎮江 212004;3.蘭州交通大學數理與軟件工程學院,甘肅蘭州 730070)
漸進式傳輸可以有效地解決當前有限的網絡帶寬和無限增長的空間數據之間的突出矛盾,同時還可以滿足用戶自適應的空間信息閱讀和應用需求。河系是重要的地理要素之一,必然成為漸進式傳輸中不可回避的要素。河網漸進式傳輸中自適應可視化是指在小比例尺下顯示較少重要的河流,大比例尺下顯示較多河流,用戶可以通過調節比例尺來控制河流的顯示數量,從而滿足其不同的需求。同時,河流的顯示過程是由少到多、由主流到支流的漸變過程,這樣不僅縮短了客戶端用戶的等待時間,也符合人們由整體到局部的空間認知規律。
目前基于河網的漸進式傳輸的研究還很少,但基于河網綜合方面的研究成果卻很豐富。Rosso等人研究了河網的自相似性與分形特征,并推導出了適合地圖綜合層次化分析需要的河網分維估值公式[1];Richardson等人提出了基于Horton碼和長度的河流結構選取的方法[2];何宗宜總結了用于確定河流選取指標的一元回歸模型、多元回歸模型、開方根規律模型[3],這些模型常被用于河流資格(河長)或定額(數量)的選取;武芳等人研究了河網自動綜合中空間知識、屬性知識及綜合規則的策略和形式化表達方法,通過河網知識和綜合中各條規則的優先級和權重實現了河流選取[4],該方法在保持河網整體結構特征方面有較好的效果,但在保持河網密度差異和圖形相似性方面還不是很理想;艾廷華等人運用Delaunay三角網模型建立了各級河流分支匯水區域的層次化剖分模型,并基于該層次剖分模型計算了河流分布密度、相鄰河流間距、匯水范圍及層次關系,進而推算出河網中每一條河流的重要性系數,實現了不同尺度下河流的綜合選取[5],該方法較好地保持了河網的主體形態結構,兼顧考慮了選取河流的級別、長度、河流間距,但由于缺乏河網區域總體特征的考慮,使得河流分布疏密的對比沒有得到保持;張青年等人在構建河系樹的基礎上,結合上下文環境,提出了基于層次分解和各個層次上不同子流域之間選取數量比例分配的河系簡化方法[6],簡便而有效地保持了河網的密度差異。漸進式傳輸是制圖綜合的逆過程,關于河網綜合的研究為河網漸進式傳輸奠定了理論基礎。
從已有的研究成果可以看出,河系結構化組織有利于河流實體的整體選取與操作。因此,本文在構建河系樹的基礎上,運用河流層次、等級、數量密度和長度等因子對河系進行了詳細的描述,遵循保持河網自適應可視化前后河流密度差異與結構特征的規則,提出了將某一尺度下河流選取數量按河流數量密度逐級分攤到河系與河系內部各級子流域的方法;然后把所有選取的河流按其層次逐層輸出顯示,從而實現了漸進式傳輸中河網的自適應可視化;最后對該方法進行了試驗分析,驗證了該方法的有效性。
在空間數據庫中,河流通常是以河段為單元存儲的,被表示為一個相互鄰接的河段序列,只有在河段的基礎上構建河流實體,才有利于河流選取。在河系樹的自動構建過程中,可以獲得河流的層次結構、等級、長度、左右支流等重要信息。本文將利用河流主支流結構、等級、河流數量密度和長度等來對河系進行描述。
樹狀河系結構是由一條主流和若干級支流組成的,即主流有一批支流,而各級支流又可能擁有一批次級支流。主流在河系中的重要性最大,在地圖綜合中被優先選取。事實上,在手工地圖綜合中,河系簡化也是在選取主流的基礎上逐級增加各級支流實現的。本文基于這種主流優先選取的原則,對河系中的各級河流進行了層次劃分,定義主流的層次為1,由主流到支流再到次級支流的層次值逐級增1。標記后的河系層次如圖1所示。

圖1 河流層次描述
另外,河流的各級支流數量越多,河流的重要性就越高,因此,河流各級支流數量具有反映河流等級差別的意義。文獻[7]定義了如下河流等級規則:河流等級=該河流的各級支流的數量+1,即該河流自身和各級支流數量的總和,各級支流數量不僅僅局限于該河流的下一級支流。基于該等級規則得到的河流等級如圖2所示。

圖2 河流等級描述
流域內河流數量在一定程度上反映了該流域內河網密度情況。在主流長度一定的情況下,子流域的河流總數越大,則河網密度越大,反之則密度較小。因此,在漸進式傳輸過程中,通過保持各個河系中河流數量與河流總量的對比關系,就能保持不同河系之間的河流密度差異;類似地,保持同一河系內各個子流域河流數量與該河系河流總量的對比關系,就能保持該河系內部子流域的河流密度差異。本文將以上對比關系定義為河流數量密度,其計算公式為

在計算河網中各個河系的河流數量密度時,式中,m為某一河系的主流等級(即該河系的河流數量);M為河網中河流總數量;D為該河系的河流數量密度值,該值被賦在該河系的主流(即層次為1的河流)上。在計算某一河系子流域的河流數量密度時,式中,m為該子流域的主流等級(即該子流域的河流數量);M為該子流域上一級流域的主流等級(即該子流域上一級流域的河流總數量);D為該子流域的河流數量密度值,該值被賦在該子流域的主流上。依此方法計算圖 2的河流數量密度,結果如圖3所示。

圖3 河流數量密度描述
河流長度也是河流選取時需要考慮的一個重要指標,以河流長度為分界尺度選取河流是河網綜合的基本方法。如大于指定長度的河流被選取,低于這一指標的則被舍棄。河系樹上相同層次的河流,長度大的應該被優先選取。然而,河流長度不能全面衡量河流的重要性,長度相似的兩條河流在不同的地理環境中,其重要性可能相差甚遠。
要實現空間數據漸進式傳輸的自適應可視化,關鍵是建立不同分辨率下空間數據與尺度之間的映射關系[8-10]。實現河網的自適應可視化需要解決以下3個問題:一是在某一尺度下,應該從河網地圖數據中選取多少條河流進行顯示;二是應該選取哪些河流顯示才能準確反映該尺度下河流的分布情況;三是如何控制河網漸進式傳輸中的傳輸順序。
開方根模型是通過建立方根數學模型來計算確定新比例尺地圖上的河流條數的。方根模型的公式為

式中,S1為原始地圖比例尺的分母;n1為原始地圖比例尺下顯示的河流數量;S2為新編地圖比例尺的分母;n2為新編地圖比例尺下顯示的河流數量,其隨著S2的變化而取不同的值;x為經驗系數,通過地圖綜合樣圖的統計分析可以得到n1和n2,從而確定x。利用開方根模型對河流進行選取,基本可以反映出河網的類型特點及河網各部分的密度對比。
通過開方根模型,可以得到某一尺度下新編河網地圖上應該選取顯示的河流數量。本文分以下兩個步驟把這些數量逐級分攤到河系的各個層次上:首先將選取數量分攤到各個河系中;其次將各個河系分攤的數量再分攤到各個子流域,并依次在子流域內部遞歸分攤選取數量。兩個過程中兼顧分攤出去的數量等于選取數量。
(1)選取數量分攤到各個河系
將用戶請求尺度下新編河網地圖上河流選取總數量分攤到各個河系的計算公式如下

式中,n2為開方根模型計算出的用戶請求尺度下河網地圖上河流選取總數量;D1為某河系的河流數量密度;W1為該河系分攤到的河流數量,該值按四舍五入法處理為整數。
當W1=0時,用戶請求尺度下,該河系的所有河流不具備顯示資格;當W1=1時,該河系只有第1層的主流具有顯示資格,此時停止繼續向子流域分攤;當W1﹥1時,除主流外,子流域上的河流也有顯示資格,此時應減去主流的數量,將剩余的選取數量再分攤到子流域。
按以上方法計算,支流少的小河系的分攤數量可能為0,如果存在大量這種情況,實際分攤的河流數量之和將小于應選取的河流數量;相反,實際分攤的河流數量之和也可能大于應選取的河流數量。此時,需要比較兩者的大小,如果∑W1=n2,則不作處理;如果∑W1<n2,將W1=0的小河系按河系主流長度排序,把前n2-∑W1個小河系的分攤指標W1值標記為1;如果∑W1>n2,對分攤到指標的河系按指標大小排序,從大到小依次減1,直到∑W1=n2為止,并更改各河系的W1值。
(2)河系內部再分攤
河系內部子流域上的數量再分攤和河系間的分攤略有不同,需減1之后再分攤,公式如下

同樣,當Wi+1=0時,該子流域內所有河流不具備顯示資格;當Wi+1=1時,該子流域內只有其主流具有顯示資格,此時停止繼續向下分攤;當Wi+1>1時,除該子流域主流外,下一級子流域上的河流也有顯示資格,此時應減去該子流域主流數量(值為1)后,再將剩余的選取數量遞歸分攤到下一級子流域。

前文中,筆者把河系和各級子流域的河流數量密度D賦給了其各自的主流,而河系和各級子流域的分攤數量W是根據河流數量密度D計算得到的,因此,河系和各級子流域分攤數量W就和每一條河流都建立了聯系。又因為當河系或各級子流域分攤數量W值大于或等于1時,其主流是必選的。由此分析,分攤數量大于或等于1所對應的河流就是用戶請求尺度下需要輸出顯示的河流。
漸進式傳輸中數據按照重要性次序輸出,決定數據重要性的因素包括語義特征和空間尺度。發育很小的河系因為其特定的地理位置,重要性突出,與類似大小卻沒有語義特征上獨特性的河流相比,將其歸為重要的河流而被優先輸出。另外,重要的、幾何特征顯著的信息才能在小比例尺地圖上得以表達,因此,表達尺度也是地理目標重要與否的衡量標準。本文主要考慮河流尺度特征,按所選取河流的層次進行輸出顯示,即傳輸時逐級輸出層次為1、層次為2、層次為3的河流等。河網中層次為1的河流數量較少,首先傳輸可在客戶端快速地顯示,給用戶一個初步印象。同時,這種由主流到支流再到次級支流的顯示過程符合人們由整體到局部、由簡單到復雜的空間認知規律。
本文在Visual Studio.NET 2005環境下進行了試驗。在河系樹構建和描述的基礎上,當客戶端用戶向服務器提出某一尺度的地圖請求時,首先,服務器根據用戶請求比例尺信息利用開方根模型計算出該尺度下應該輸出顯示的河流數量;然后,利用逐層分攤指標法將這些數量分攤到河網的各個層次上;最后,檢索與分攤指標大于或等于1的河流,并按河流層次依次輸出顯示。部分試驗結果如圖4所示。

圖4 河網漸進式傳輸過程中的自適應可視化
圖4(1)是甘肅省南部1∶20萬水系圖的局部,共有56條河流;圖4(2)是比例尺為1∶50萬時河系的自適應可視化過程,式(2)中的指數x取2,共選取了22條河流。暫且不討論河系間的密度差異,單從河系內部看,原圖上河系子流域a、b、c的河流數量分別是14、9、6,在新編圖上,此3個子流域顯示的河流數量分別為5、3、2。可見,本文的方法較好地保持了可視化前后河流數量的對比關系。而河流數量對比關系又反映了河系內部河流的密度差異。從圖4(2)河流自適應可視化的過程來看,第1步首先顯示1條主流,第2步增加了10條支流,第3步增加了11條次級支流,數據傳輸漸變粒度劃分均勻,層次顯示順序合理,較好地展現了河系的結構特征。
某一尺度下的河流選取是漸進式傳輸中河網自適應可視化的關鍵,需要兼顧河網可視化前后的密度差異與結構特征。本文在構建河系樹的基礎上,結合河流層次、等級、數量密度和長度等河流描述因子,提出了將河流選取數量按河流數量密度逐級分攤到河系與河系內部各級子流域的方法,并把選取的河流按其層次逐層輸出可視化。該方法在試驗中取得了較好的效果,但筆者也發現位于河系樹底層的部分河流的選取難以控制,河系局部樹狀結構不明顯的地方選取不盡合理,如圖4(1)中標記部分,局部密度大卻選取了較少的河流顯示,這說明依據河流長度補選河流存在不足之處,需要進一步考慮其他因子對其加以控制。此外,河網漸進式傳輸的自適應可視化效率還有待進一步提高。這些問題都是河網漸進式傳輸可視化需要繼續研究的內容。
[1] ROSSO R,BACCHI B,LA BARBERA P.Fractal Relation of Mainstream Length to Catchment Area in River Networks[J].Water Resources Research,1991,27(3):381-387.
[2] RICHARDSON D E.Automatic Spatial and Thematic Generalization Using a Context Transformation Model[D].Holland:Wageningen Agricultural University,1993.
[3] 何宗宜.地圖數據處理模型的原理與方法[M].武漢:武漢大學出版社,2004.
[4] 武芳,譚笑,翟仁健,等.基于知識表達和推理的河網自動選取[J].遼寧工程技術大學學報:自然科學版,2007,26(2):183-186.
[5] 艾廷華,劉耀林,黃亞鋒.河網匯水區域的層次化剖分與地圖綜合[J].測繪學報,2007,36(2):231-236,243.
[6] 張青年.逐層分解選取指標的河系簡化方法[J].地理研究,2007,26(2):222-228.
[7] 張青年.顧及密度差異的河系簡化[J].測繪學報,2006,35(2):191-196.
[8] 楊必勝,李必軍.空間數據網絡漸進傳輸的概念、關鍵技術與研究進展[J].中國圖象圖形學報,2009,14(6):1018-1023.
[9] 艾廷華,成建國.對空間數據多尺度表達有關問題的思考[J].武漢大學學報:信息科學版,2005,30(5):377-382.
[10] 艾廷華.網絡地圖漸進式傳輸中的粒度控制與順序控制[J].中國圖象圖形學報,2009,14(6):999-1006.