殷甲偉,房曉亮,余 豪
(1. 中國電建集團 中南勘測設計研究院有限公司,湖南 長沙 410014;2. GIS技術應用研究中心,湖南 長沙 410014)
目前,各GIS 平臺及類庫均已實現(xiàn)各類插值算法生成等值線、等值面[1-3]。本文針對水環(huán)境治理工程中各類監(jiān)測數據生成等值線、等值面問題,對等值線、等值面生成的方法和流程進行了設計,提出一種結合反距離加權插值算法[4]、等值線追蹤算法、三次樣條平滑算法[5]直接在前端計算并渲染等值線、等值面的方法。并以10 個測站某一時段的臨時降雨量數據為例,對所提出的等值線、等值面生成方法進行驗證,結果表明所提出的方法可以快捷地在前端生成各類監(jiān)測數據的等值線、等值面。
等值線是在表示連續(xù)現(xiàn)象(如高程、溫度、降雨量、污染程度或大氣壓力)的柵格數據集中連接等值位置的線。這些線要素會將輸入中具有同一常量值的像元連接在一起。等值線的集合常被稱為等值線圖。
等值線、等值面的生成一般有2 種思路:①一種是先進行插值生成等值面柵格圖,然后將等值面提取成等值線;②進行插值后,根據等值線追蹤算法進行插值點連接生成一條盡量閉合且平滑的曲線。本文擬采用根據插值點直接連接成一條閉合曲線的思路生成等值線、等值面。
生成等值線、等值面的關鍵是離散點的插值。離散點插值的算法非常多,如克里金插值[6]、反距離加權插值(IDW)等。根據地理學第一定律[7]:地物之間的相關性與距離有關,一般而言,距離越近,地物間相關性越大;距離越遠,地物間相異性越大。所以本文擬采用反距離加權插值(IDW)算法實現(xiàn)根據已知點算出未知點的檢測值。
等值線、等值面的生成一般有2 種解決方案:一種是后臺算法計算結果,前端展示;另一種是前端直接計算結果并展示。本文擬采取前端直接生成等值線、等值面的解決方案。
本文提供一種基于各類監(jiān)測值,通過構建規(guī)則網格,利用反距離加權算法(IDW)計算出規(guī)則網格的值,并基于規(guī)則的等值線追蹤網格方法直接生成等值線、等值面的方法。
本文提供的一種基于反距離加權插值的等值線、等值面快速生成方法,其流程如圖1所示。具體步驟如下:
圖1 等值線、等值面算法流程
步驟1,根據所有不規(guī)則離散點的坐標構建規(guī)則網格。具體方法是找出所有不規(guī)則離散點不同經度、不同維度的交叉點集合P。離散點代表不規(guī)則點集,就是沒有規(guī)律分布的單個離散的點,如圖2a所示。規(guī)則網格通常是正方形、矩形、三角形等規(guī)則網格。此處的規(guī)則格網是根據不規(guī)則離散點的經維度構建的,每一個小單元格的實地距離長和實地距離寬都是相等的,如圖2b所示。規(guī)則網格構成的交叉點集合P,如圖2c所示。
圖2 構建網格
步驟2,根據不規(guī)則離散點的指標值(如降雨量),通過反距離加權插值(IDW)算法計算第一步中的交叉點集合P包含的所有值。此算法主要依賴于反距離的冪值,冪參數可基于距輸出點的距離來控制已知點對內插值的影響。冪參數是一個正實數,默認值為2。(一般0.5到3的值可獲得最合理的結果)。
通過定義更高的冪參數,進一步強調最近點。因此,鄰近數據將受到更大影響,表面會變得更加詳細(更不平滑)。隨著冪數的增大,內插值將逐漸接近最近采樣點的值。指定較小的冪值將對距離較遠的周圍點產生更大的影響,從而導致平面更加平滑。本算法中冪參數設置為2。
步驟3,生成等值線?;诘诙接嬎愕慕徊纥c的值,利用等值線追蹤算法生成等值線。
利用線性插值算法可以快速計算矩形邊界上的數值點。選定一個矩形開始追蹤等值線,等值線一定是連續(xù)的,所以在相鄰矩形邊界上的一個數值點,肯定會在下一個矩形中找到后續(xù)點,而且一定是成對出現(xiàn)的。
以降雨量為例,圖3是找數值50的等值點的追蹤軌跡,將此軌跡連接起來,就是等值線。
圖3 等值線追蹤原理
步驟4,采用改進分段三次樣條對等值線進行平滑,通過線段起始點、末端點、下一點進行控制點反算,對于閉環(huán)、折線分別處理確保平滑效果,如圖4所示。
圖4 等值線平滑流程
步驟5,根據最終生成的等值線對計算區(qū)域進行裁剪,生成等值面。不同項目中,計算區(qū)域的選取方式不同。以水環(huán)境治理項目為例,最終計算區(qū)域一般選取流域邊界。
根據計算區(qū)域對等值線進行裁剪,再把裁剪后的面進行合并,利用計算區(qū)域對生成的等值線進行裁剪,最終形成等值面。
步驟6,對最終生成等值面進行輪廓、填充顏色等渲染。
本文的實驗數據選擇10個測站某一時段的臨時降雨量數據為例。
數據存儲格式為json,x代表經度、y代表維度、z代表某測站在某一時段內的降雨量值。
本文設計的算法是直接在前端獲取監(jiān)測數據并生成等值線、等值面,實施環(huán)境是基于B/S架構的系統(tǒng)。
圖5 為本文算法在網頁端直接生成的等值線效果,圖6為相同數據在ArcGIS平臺下生成的效果,結果展示,本文算法和其他GIS 平臺算法生成等值線的結果基本一致,可以應用于各類數據生成等值線、等值面的案例,且本文算法只需要在前端計算、渲染,排除了網絡延時等因素的干擾,保證了生成等值線、等值面的效率。
圖5 本文算法生成的等值線圖
圖6 ArcGIS制作的等值線、等值面圖
綜上所述,實驗結果驗證了本文設計的等值線、等值面生成方法的可行性,本文提出的等值線、等值面生成方法可以實現(xiàn)各類監(jiān)測數據在前端直接生成等值線、等值面圖。
本文在借鑒等值線、等值面生成算法的基礎上,提出基于各類監(jiān)測指標值,通過構建規(guī)則網格,利用反距離加權算法計算出規(guī)則網格的值,并基于規(guī)則的等值線追蹤網格方法直接生成等值線、等值面的方法,最后以10個測站某一時段內的臨時降雨量數據為例,對提出的等值線、等值面生成方法進行了驗證。結果證明了本文設計的等值線、等值面生成方法的可行性,同時,這種等值線、等值面生成方法可以推廣應用于水環(huán)境治理工程的各類監(jiān)測數據,為在前端直接生成等值線、等值面提供了一定的參考。