楊宜舟, 吳立新, 郭甲騰, 劉善軍
(1. 東北大學 資源與土木工程學院, 遼寧 沈陽 110819; 2. 中南大學 地球科學與信息物理學院, 湖南 長沙 410083)
全球人數持續性增長、社會經濟飛速發展和自然資源深入開發,導致資源環境受到前所未有的威脅[1-2].資源環境承載能力和國土空間開發適宜性評價(簡稱“雙評價”)可反映當前資源環境的優勢與短板,可發現未來發展中的問題、沖突、風險和潛力[3],能為經濟、社會、資源和環境保護的可持續發展提供規劃決策基礎支撐.國土空間開發適宜性評價是在資源環境承載能力評價的基礎上,對生態保護的重要程度以及農業生產、城鎮建設的適宜程度進行評價[3].當前國土空間開發適宜性評價方法集中在評價視角擴展、評估框架構建及計算模型改進等方面的探索研究[4-5],其中基于疊加分析進行評價的方法適用于宏觀、微觀層次,是國土空間開發適宜性評價中最常用的分析方法[4].在國土空間大數據發展的背景下,基于傳統串行疊加分析計算的國土空間開發適宜性評價已不能滿足用戶的性能需求.在2017年中國國土勘測規劃院開展的全國尺度“雙評價”工作中發現,傳統商業GIS基于串行疊加分析無法完成評價任務.因此,亟需研發高性能架構下的國土空間適宜性評價計算方法.
近年來,以并行計算為核心的高性能計算技術得到廣泛應用[6-7],為高效分析大規模空間數據提供了理論和技術支撐[8-11].其中,以空間數據劃分方法實現疊加分析并行化[12-14],為實現基于并行疊加的國土空間開發適宜性評價提供了條件.然而,國土空間數據的復雜性導致現有空間數據劃分方法不能有效解決基于并行疊加的國土空間開發適宜性評價計算中數據傾斜的問題,如百萬頂點空間對象(大圖斑)之間的疊加分析,會急劇降低評價分析的性能.
因此,本文在分析空間開發適宜性評價算法模型的基礎上,為避免數據傾斜,引入了空間數據預處理方法;以兼顧空間數據劃分與檢索的方法實現了疊加計算并行化;在并行疊加分析基礎上實現并行化空間開發適宜性評價.
資源環境承載能力評價中的空間數據集為dsi={dij}(1≤i≤n,其中n為空間數據集數目),dsi的評價分級的結果為{Iij}(分級總數為N,1≤lij≤N),將Iij賦值于dij得到資源環境承載能力為foij={(Iij,dij)}.在對多個單項資源環境承載能力評價疊加分析的基礎上,利用fok(基于多因子的指標擬合分級)進行國土空間開發適宜性集成評價.首先,利用式(1)對{foij}進行疊加分析,{ovj}是疊加分析的結果(式(2)是ovj包含的信息);其次,若存在帶有空間屬性的約束條件cck(如斑塊集中度、地塊連片度等),Cu是cck的評價因子,則將cck與{ovj}進行疊加分析,其計算的結果為{vvj}(式(3)是vvj包含的信息);再次,以vvj中的評價因子(若cck=?,則在vvj中Cu=?,即ovj=vvj)作為fok的參數對空間開發適宜性ooj進行計算或分級(式(4)),并將ooj與dm組成新的空間對象(ooj,dm);最后,將{(ooj,dm)}輸出.
{ovj}=ol({fo1j},{fo2j},…,{fonj}) ,
(1)
ovj=(I1j,I2j,…,Inj,dm) ,
(2)
vvj=((I1j,I2j,…,Inj,Cu),dm) ,
(3)
ooj=fok(I1j,I2j,…,Inj,Cu) .
(4)
分析以上原理可知:基于疊加分析的國土空間開發適宜性評價主要包含了空間疊加分析算法和基于多因子的分級算法.
在疊加分析中(見圖1),空間數據層a中的矢量目標oi需要與空間數據層b進行疊加計算:①a中的空間對象oi采用式(5)在b中查詢獲取可能會與其進行計算的空間數據子集{fzi},即{fzi}為oi在b中疊加計算的影響域;②以(oi,{fzi})為疊加分析中最小計算單元進行計算分析;③計算結果輸出.分析上述算法模型發現:①在疊加計算中影響效率的關鍵是式(5)所用的方法,而空間索引滿足高效查詢獲取空間數據的需求;②(oi,{fzi})之間的計算相互獨立,具有可并行性,可基于空間數據劃分實現疊加計算的并行化.

圖1 空間疊加分析
{fzi}=index({oi}) .
(5)
基于多因子的分級算法是數值計算方法,對多個資源環境承載能力疊加結果vvj中的(l1j,l2j,…,lnj,Cu)通過式(6)加權求值后進行分級,各vvj之間的計算相互獨立,且計算量相等,具備很強的并行性.基于多因子分級的計算量遠小于疊加分析的計算量,在整個國土空間開發適宜性評價中基本可以忽略不計.
(6)
因此,疊加計算性能是影響國土空間開發適宜性評價的關鍵,而疊加分析的并行化能極大提升國土空間開發適宜性評價的效率.
在上述疊加分析算法中,最小的計算單元為(oi,{fzi}),各單元之間的計算互不影響,可利用數據域劃分的方法將{(oi,{fzi})}分配至各計算節點,實現并行化計算.由于空間數據的復雜性,各{(oi,{fzi})}之間的計算量相差極大,易導致各計算節點的數據傾斜,影響并行疊加分析的效率.從疊加分析的參與對象oi,{fzi}上分析其影響:①oi的影響分析,在實際中,有些空間對象的信息量非常“巨大”,包含幾萬甚至上百萬的頂點,極易導致數據傾斜,影響并行計算效率;②{fzn} 的影響分析,oi一般是通過空間索引實現對影響域數據集{fzn}的高效查詢與獲取,而空間索引的創建和查詢都是基于空間對象近似矩形(空間對象的最小包圍盒),查詢結果集合是大于真正發生計算的影響域,即查詢結果中部分空間對象與oi將會產生無效計算,從而導致計算效率的降低.
從上述分析可知,提升疊加計算效率的方法有:①對于空間對象本身oi,將“大問題”oi轉化為多個“小問題”{toi},以并行的計算方式解決串行計算的性能問題;②對于影響域{fzn},盡量精確檢索范圍以獲取有效的計算對象,排除其中的無效計算以提升計算效率.
利用空間數據預處理方法可降低信息量“巨大”的空間對象及其影響域中無效計算因素對疊加分析計算效率的影響.設定某一閾值?ρ,若疊加分析中所有數據集中的空間對象On中頂點數大于?ρ,則進行空間數據對象的拓撲分解,即將On分解為{tOn},其中tOn的頂點數小于等于?ρ.