1. 程式人生 > >GIS 緩衝區應用及演算法實現

GIS 緩衝區應用及演算法實現

        地理資訊空間幾何關係分析主要包括鄰近度 (proximity) 分析、疊加分析、網路分析等。緩衝區分析是鄰近度分析的一種,緩衝區是為了識別某一地理實體或空間物體對其周圍地物的影響度而在其周圍建立具有一定寬度的帶狀區域。緩衝區作為獨立的資料層進行疊加分析,可應用到道路、河流、環境汙染源、居民點、輻射源等的空間分析,為某種應用目的提供科學依據,另外,結合不同的專業模型,可以在生活、軍事、城鄉規劃等領域發揮重要的作用。

        針對點、線、面不同的幾何型別,建立緩衝區的方式相互有所不同。建立點緩衝區比較簡單,即以某點要素為圓心,以緩衝半徑 R 作圓,得到點要素的緩衝區;線要素的緩衝區是以線為軸,以 R

為距離作兩側的平行線,線上的兩端構建兩個半圓弧段,和平行線一起組成緩衝區;面緩衝區的建立,是以面要素的邊界為基線向內外側作平行線,平行線和基線裡的區域就是面緩衝區。除此之外,還可以對柵格資料建立緩衝區,根據不同的模型方程建立動態緩衝區,不論對什麼樣的資料建立緩衝區,其基本方法都是相似的。

        緩衝區實現演算法有向量方法和柵格方法兩種。其中向量方法資料量小,方法相對成熟,柵格影象需要進行柵格像元之間進行布林運算,當緩衝區較大時會帶來較重的運算負荷,實際運用中存在一定的侷限性。向量方法演算法一般遵循以下步驟:

:確定中心點——以中心點為圓心、 R 為半徑生成一個圓——得到緩衝區邊界

線、面 :確定軸線——以距離 R 生成中心軸線的平行曲線——處理轉角弧段——對生成的弧段進行求交、合併運算——生成緩衝區邊界

常用的向量資料中心線擴張演算法:

角分線法

基本思想:即“簡單平行線法”,在軸線的兩邊作出平行線,在轉角處形成尖角,兩端形成弧段,組成緩衝區。

缺陷:難以保證在尖角處緩衝區左右邊線等寬;校正過程複雜,主要體現在軸線折角很大和很小時的情況;演算法模型複雜,主要是因為幾何生成過程中需要處理較多的異常。

凸角圓弧法

基本思想:顧名思義,即是在轉角外側用圓弧來代替尖角,內側仍然使用尖角的方法,生成緩衝區。

實施步驟:

1. 直線性判斷,判斷相鄰三點是否在同一直線上;

2.折點凸凹性判斷,確定轉角的地方哪側使用直線求交,哪側使用圓弧連線;

3.凸點圓弧的嵌入,即將轉角外側形成的圓弧和兩邊的線段相連;

4.邊線關係的判別與處理,島嶼多邊形參與緩衝區邊界的構成,重疊多邊形不參與緩衝區邊界的構成;

5. 緩衝區邊界的形成,具體是將重疊區域進行合併,繪製外圍的邊線,包括島嶼多邊形的輪廓,形成最終的緩衝區邊界。

在緩衝區演算法中,需要注意的一個問題是緩衝區多邊形的重疊與合併,包括同一要素緩衝區的重疊和多個要素之間緩衝區的重疊。柵格資料緩衝區內的柵格具有一個與其影響度對應的一個值,如果重疊區域具有相同影響度則任取一值,如果不同則採取影響度大的代替影響度小的方法處理。對於向量資料的處理演算法有三種:數學運演算法;向量-柵格轉換法;向量-柵格混合法。