趙鵬輝,霍 亮,2,朱 杰,張正雄,宋繼哲
(1.北京建筑大學(xué) 測(cè)繪與城市空間信息學(xué)院,北京 102616;2.現(xiàn)代城市測(cè)繪國(guó)家測(cè)繪地理信息局重點(diǎn)實(shí)驗(yàn)室,北京 102616;3.國(guó)家基礎(chǔ)地理信息中心,北京 100830)
目前,傳統(tǒng)的數(shù)字地形分析串行計(jì)算模式已經(jīng)不能充分利用和發(fā)揮當(dāng)前新型硬件構(gòu)架(單機(jī)多核、多機(jī)多核、集群等)計(jì)算機(jī)資源的能力,更是難以滿足實(shí)際應(yīng)用的區(qū)域規(guī)模與計(jì)算時(shí)效需求[1]。在對(duì)地形數(shù)據(jù)進(jìn)行分析的并行化處理方面,雖然目前已經(jīng)有多種多樣的技術(shù)和系統(tǒng)能夠并行的處理海量地形數(shù)據(jù),但這些處理地形數(shù)據(jù)的技術(shù)都是依賴于硬件條件來(lái)實(shí)現(xiàn)的,在常規(guī)硬件條件下還沒(méi)有形成面向數(shù)字地形分析的高效、平穩(wěn)的任務(wù)分配機(jī)制,尤其是在計(jì)算過(guò)程中,很少考慮到系統(tǒng)的可靠性和結(jié)果的準(zhǔn)確性問(wèn)題。另外,這些技術(shù)以及系統(tǒng)的部署比較復(fù)雜,其實(shí)現(xiàn)的手段大多是基于高耦合的消息傳遞接口(Message Passing Interface,MPI)等,所以這些技術(shù)或者系統(tǒng)并沒(méi)有得到業(yè)界的廣泛認(rèn)可。
網(wǎng)絡(luò)地理信息系統(tǒng)(WebGIS)是在網(wǎng)絡(luò)環(huán)境下的一種存儲(chǔ)、處理和分析地理信息的計(jì)算機(jī)系統(tǒng),可將數(shù)據(jù)量較大的處理工作交由服務(wù)器執(zhí)行,把數(shù)據(jù)量較小的處理工作交由客戶端來(lái)執(zhí)行,這種模式在一定程度上可以實(shí)現(xiàn)服務(wù)器端和客戶端的合理分配[2-3]。本文基于WebGIS環(huán)境下對(duì)地形數(shù)據(jù)的計(jì)算和分析展開(kāi)研究,考慮到該環(huán)境下服務(wù)器端承載了大量的計(jì)算任務(wù),會(huì)增加網(wǎng)絡(luò)負(fù)載和響應(yīng)延遲,提出把一部分計(jì)算任務(wù)放在瀏覽器端進(jìn)行,以減輕服務(wù)器的壓力,提高地形分析效率。
地形因子是為了在數(shù)字地形分析中有效地表達(dá)與研究地表形態(tài)的特征所設(shè)定的一系列指標(biāo)[4]。地形因子在地形分析中起關(guān)鍵作用,如在水文分析、土地資源分析等方面有尤為重要的意義。不同的地形因子能夠從不同的角度描述地形特征,可以更詳細(xì)的表達(dá)地形情況。本文按照地形分析的復(fù)雜程度,把地形因子分為簡(jiǎn)單地形因子和復(fù)雜地形因子兩種類(lèi)型,簡(jiǎn)單地形因子主要包括坡度、坡向、等高線等,復(fù)雜地形因子主要包括坡度變率、坡向變率、平面曲率、剖面曲率等,如圖1所示。簡(jiǎn)單地形因子偏向于表達(dá)確定地貌的地表形態(tài)特征;而復(fù)雜地形因子則是在簡(jiǎn)單地形因子的基礎(chǔ)上對(duì)其進(jìn)一步表示,可以更細(xì)致地表達(dá)地形的相關(guān)情況[5]。
地形瓦片是指將一定范圍內(nèi)的地形數(shù)據(jù),以格網(wǎng)的形式對(duì)相應(yīng)范圍內(nèi)的地形數(shù)據(jù)進(jìn)行分割,計(jì)算并保存每個(gè)格網(wǎng)中所包含的地形要素。Web端在調(diào)用地形數(shù)據(jù)時(shí),并沒(méi)有讀取大量的地形數(shù)據(jù),而是根據(jù)用戶視點(diǎn)所在的地圖范圍,計(jì)算出其相對(duì)應(yīng)的地理格網(wǎng),將它映射成命名規(guī)則,組裝成地址請(qǐng)求并依一定規(guī)則加載地形數(shù)據(jù)[6]。地形瓦片在縱向上進(jìn)行分層,有效減少了地形數(shù)據(jù)的傳輸量;在橫向上進(jìn)行分塊,也在一定程度上降低了地形數(shù)據(jù)渲染計(jì)算的復(fù)雜度。地形瓦片按照金字塔的方式進(jìn)行調(diào)度,實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)加載?,F(xiàn)行主流的Cesium以及超圖公司的地形數(shù)據(jù)格式并不包含地形因子,如坡度、等高線、坡度曲率等,在進(jìn)行地形分析時(shí)需要對(duì)地形數(shù)據(jù)進(jìn)行解析并計(jì)算。本文對(duì)地形瓦片進(jìn)行了格式分析,它可以使用擴(kuò)展數(shù)據(jù)來(lái)補(bǔ)充具有附加信息的量化網(wǎng)格,通過(guò)向每個(gè)瓦片添加一個(gè)JSON對(duì)象,可以存儲(chǔ)有關(guān)瓦片的額外信息?;诘匦瓮咂鹱炙P吞崛〔煌燃?jí)地形瓦片的地形因子,把地形因子存入地形瓦片的擴(kuò)展數(shù)據(jù)中,形成自定義地形瓦片。
本文提出了一種地形瓦片的地形分析快速計(jì)算方法,首先,對(duì)所獲得的地形數(shù)據(jù)進(jìn)行預(yù)處理,以便對(duì)地形數(shù)據(jù)進(jìn)行格網(wǎng)化處理。其次,構(gòu)建地形瓦片金字塔模型,然后,基于金字塔模型提取不同等級(jí)地形瓦片的地形因子,把提取到的地形因子存入地形瓦片的擴(kuò)展數(shù)據(jù)中,使不同等級(jí)的地形瓦片包含相應(yīng)等級(jí)的地形因子。最后,根據(jù)用戶所在視點(diǎn)范圍內(nèi)的地形數(shù)據(jù)動(dòng)態(tài)獲取相對(duì)應(yīng)的地形因子,實(shí)現(xiàn)地形的快速分析。該方法的技術(shù)路線如圖2所示。
目前,地形數(shù)據(jù)通過(guò)金字塔數(shù)據(jù)組織模型將其空間范圍按照規(guī)則網(wǎng)格進(jìn)行劃分,并以遞歸的方式對(duì)地形數(shù)據(jù)進(jìn)行自上向下的分割。這樣的數(shù)據(jù)組織模型,讓地形數(shù)據(jù)可以通過(guò)層層遞進(jìn)的方式顯示,能有效地提高數(shù)據(jù)調(diào)度的性能[7]。在具體的實(shí)現(xiàn)上,地形金字塔模型按照四叉樹(shù)方式進(jìn)行層次劃分和管理,將目標(biāo)區(qū)域的數(shù)據(jù)進(jìn)行瓦片劃分,使每個(gè)瓦片塊劃分大小為N×N(N=2n,n為上一層的瓦片大小)。每一個(gè)地形瓦片通過(guò)唯一標(biāo)識(shí)碼進(jìn)行索引,地形瓦片唯一標(biāo)識(shí)碼由三方面信息組成:(L,(x,y))。L表示LOD的層級(jí);x表示地形瓦片行號(hào);y表示地形瓦片列號(hào)[7]。繪制時(shí)通過(guò)視距范圍和LOD層號(hào)的映射關(guān)系,首先,確定當(dāng)前需要調(diào)度的LOD層的層號(hào),然后,根據(jù)當(dāng)前視點(diǎn)所處的范圍和該LOD層級(jí)的瓦片的分割跨度計(jì)算地形瓦片的行列號(hào),最后,根據(jù)得到的LOD層號(hào)、瓦片行號(hào)、瓦片列號(hào)生成需要調(diào)度的瓦片ID,從數(shù)據(jù)庫(kù)中檢索、調(diào)度瓦片數(shù)據(jù)。
利用地形金字塔模型對(duì)大區(qū)域地形數(shù)據(jù)進(jìn)行分層分塊處理,不僅降低了原始地形數(shù)據(jù)存儲(chǔ)調(diào)度對(duì)網(wǎng)絡(luò)和繪制帶來(lái)的壓力,還細(xì)化了調(diào)度和繪制的粒度,可以滿足網(wǎng)絡(luò)環(huán)境下實(shí)時(shí)可視化的應(yīng)用需求[8]。
本文采取DEM數(shù)據(jù)作為地形因子提取的數(shù)據(jù)源,結(jié)合微觀和宏觀的提取方法來(lái)提取地形數(shù)據(jù)的地形因子。在提取算法的設(shè)計(jì)上,采用3×3的DEM柵格分析窗口,提取算法中用到了X和Y方向的高程變化率,這種方式已經(jīng)廣泛應(yīng)用于簡(jiǎn)單地形因子的提取中。宏觀地形因子提取主要描述的是一定區(qū)域范圍內(nèi)整體的地形特征,該區(qū)域(分析窗口)被看作一個(gè)整體進(jìn)行運(yùn)算,地形因子宏觀提取方法不僅需要考慮它所在點(diǎn)的高程值,同時(shí)還要綜合考慮分析窗口內(nèi)所有點(diǎn)的高程信息。分析窗口有多種類(lèi)型,主要有矩形分析窗口、圓形分析窗口和環(huán)形分析窗口,本文采用矩形分析窗口提取地形因子[9]。把提取到的地形因子存入地形瓦片的擴(kuò)展數(shù)據(jù)中,使不同等級(jí)的地形瓦片包含相應(yīng)等級(jí)的地形因子。
圖3 地形瓦片與地形因子對(duì)應(yīng)關(guān)系
地形因子以JSON對(duì)象的形式包含在自定義的地形瓦片中,客戶端可使用特定的HTTP標(biāo)頭請(qǐng)求此擴(kuò)展,從而實(shí)現(xiàn)對(duì)地形數(shù)據(jù)進(jìn)行分層的計(jì)算,達(dá)到了地形分析快速計(jì)算目的。進(jìn)行地形的計(jì)算與分析時(shí),瀏覽器端根據(jù)視點(diǎn)位置計(jì)算只調(diào)入視野范圍內(nèi)的自定義地形瓦片,解析讀取相關(guān)信息。通過(guò)對(duì)提取地形因子進(jìn)行計(jì)算,節(jié)省了對(duì)地形數(shù)據(jù)的解析,縮短了時(shí)間,可提高地形分析的效率。在地形漫游過(guò)程中動(dòng)態(tài)地對(duì)場(chǎng)景進(jìn)行更新,從而調(diào)入新的自定義地形瓦片和釋放掉不需要的自定義地形瓦片。另外,為了減少地形數(shù)據(jù)的計(jì)算量,降低地形數(shù)據(jù)對(duì)內(nèi)存的消耗,對(duì)每個(gè)自定義地形瓦片分別構(gòu)建四叉樹(shù)后利用LOD算法進(jìn)行地形數(shù)據(jù)的簡(jiǎn)化,這樣也提高了地形繪制和漫游的速度[10]。
為進(jìn)一步驗(yàn)證地形瓦片快速分析的結(jié)果精度,以30 m精度的DEM數(shù)據(jù)進(jìn)行實(shí)驗(yàn),引入國(guó)家公共服務(wù)電子地圖瓦片數(shù)據(jù)規(guī)范(GB/T 5634-2017 公共服務(wù)電子地圖瓦片數(shù)據(jù)規(guī)范)作為約束,建立結(jié)果精度、比例尺、地面分辨率的對(duì)應(yīng)關(guān)系。表1為公共服務(wù)電子地圖瓦片數(shù)據(jù)規(guī)范中瓦片分級(jí)的描述,可以根據(jù)瓦片等級(jí)來(lái)計(jì)算相關(guān)分析的結(jié)果。本文以坡度分析為例進(jìn)行實(shí)驗(yàn),圖4為坡度分析的結(jié)果,通過(guò)觀察可以發(fā)現(xiàn)隨著瓦片級(jí)別越來(lái)越高,分析結(jié)果的精度也越來(lái)越高。
表1 瓦片數(shù)據(jù)分級(jí)
圖4 不同瓦片等級(jí)對(duì)應(yīng)的坡度分析結(jié)果
在進(jìn)行地形分析的時(shí)候,瓦片等級(jí)一般為15或16級(jí),采用16級(jí)的坡度分析結(jié)果與使用ArcGIS軟件得出的坡度分析結(jié)果對(duì)比,選取指定區(qū)域的一些點(diǎn)進(jìn)行精度評(píng)估,誤差結(jié)果為0.8 cm,在誤差范圍內(nèi)。表2展示了不同瓦片等級(jí)對(duì)應(yīng)的坡度分析結(jié)果的誤差,通過(guò)觀察發(fā)現(xiàn),隨著瓦片級(jí)別的增大,誤差結(jié)果越小,可以通過(guò)根據(jù)瓦片級(jí)別來(lái)控制分析結(jié)果的精度。
表2 指定區(qū)域坡度分析結(jié)果的精度
本文以地形瓦片為研究對(duì)象,提出了一種基于地形瓦片的地形分析快速計(jì)算方法。試驗(yàn)結(jié)果表明,該方法可以降低地形數(shù)據(jù)的網(wǎng)絡(luò)傳輸量,提高了地形分析效率,在保證精度的前提下可滿足地形的快速分析。