ArcGIS 線簡化算法的使用及兩種方法的比較

D-P vs Bend Simplification

一 實驗流程

1.1 數據下載

本次實驗使用中國山東省海岸線數據(部分),該數據下載於OSM官網,使用ArcGIS轉換爲shp格式,圖像如下。

源數據 圖像
數據1 在這裏插入圖片描述
數據2 在這裏插入圖片描述

1.2 篩選海岸線數據

接着我們對原始數據進行篩選,選擇出海岸線數據,打開shp屬性表可以看到:

image-20200305164124499

所以使用ArcGIS按屬性選擇工具即可篩選出所有的海岸線數據。篩選結果爲:

篩選結果 圖像
數據1 在這裏插入圖片描述
數據2 在這裏插入圖片描述

1.3 線簡化

使用ArcGIS線簡化工具對海岸線進行簡化處理。在ArcGIS 10.2版本中提供了兩種方法–POINT_REMOVE & BEND_SIMPLIFY

POINT_REMOVE方法基於道格拉斯-普克算法,該方法的工作原理是識別並移除相對多餘的折點來簡化數據並以較小的比例顯示。它將保留所有構成線要素的基本形狀的關鍵點而移除其他點。該算法從使用趨勢線連接線要素的各端點開始。首先測量每個折點到趨勢線的垂直距離。與趨勢線的距離小於容差的折點將被刪除。線要素最先在距離趨勢線最遠的折點處斷開,從而構成兩條新趨勢線。然後再測量剩餘折點到這兩條線的垂直距離,整個過程將持續到與趨勢線的距離小於容差的所有折點全部被刪除爲止。它通常被用於數據壓縮或粗糙的簡化。隨着容差的增大,生成的線中有棱角的部分將顯著增大。

BEND_SIMPLIFY算法基於Wang和Mueller提出的折彎提取思想,把彎曲定義爲線上直線段繞動方向一致的幾條相鄰直線段的集合。通過形狀識別技術找出折彎並分析其特徵,然後消除無關緊要的折彎。算法將線狀要素視爲由一系列折彎組成,可將每個折彎的幾何屬性與直徑等於指定簡化容差的參考半圓的對應屬性進行比較。這些測量結果用於確定是保留折彎還是消除折彎,也就是說用基線(連接折彎端點的線)取代折彎。總結來說,算法更接近原始圖像,但需要更多的處理時間,速度較慢。

1.3.1 POINT_REMOVE

點擊簡化線工具:

在這裏插入圖片描述

**輸入要素:**要簡化的線要素

**輸出要素類:**簡化要素的輸出目錄

**簡化算法:**此處選擇POINT_REMOVE算法

**簡化容差:**表示創建的每個折點和新線之間的最大允許垂直距離。

容差 數據 結果
1 數據1 在這裏插入圖片描述
0.01 數據1 在這裏插入圖片描述
1 數據2 在這裏插入圖片描述
0.01 數據2 在這裏插入圖片描述

這也說明容差越大,簡化力度越大,有棱角的部分越大,且數據1與數據2對比可發現,數據很複雜的情況下簡化效果一般。

1.3.2 BEND_SIMPLIFY

在這裏插入圖片描述

**輸入要素:**要簡化的線要素

**輸出要素類:**簡化要素的輸出目錄

**簡化算法:**此處選擇BEND_SIMPLIFY算法

**簡化容差:**表示近似於有效折彎的圓的直徑

容差 數據 結果
1 數據1 在這裏插入圖片描述
0.01 數據1 在這裏插入圖片描述
1 數據2 在這裏插入圖片描述
0.01 數據2 在這裏插入圖片描述

實驗證明,簡化容差越大,簡化程度越大,且在逼近最佳容差時,使用該方法能較好地擬合原始圖像。

二 實驗結果分析

通過實際實驗使用POINT_REMOVE & BEND_SIMPLIFY兩種線簡化算法。我們可以獲得一些結論。

通過橫向和縱向比較兩種算法在不同容差時的結果,可以得到:

  • 簡化容差越大,簡化力度越大,有棱角的部分越大
  • 在簡化容差較大時,數據不太複雜時,兩者差距並不明顯,隨着簡化容差的減小,兩者差距逐漸增大
  • 簡化容差相同的情況下,BEND_SIMPLIFY算法較POINT_REMOVE算法更爲精細,對原始圖像的擬合程度更好

因此,POINT_REMOVE算法更適用於對製圖質量的要求不高的時候,它生成的線可能含有不必要的尖角和尖鋒,速度較快。而BEND_SIMPLIFY算法生成的簡化線與原始線的大體形狀十分接近,製圖質量也高於點移除算法,速度較慢,實際應用時,可以根據兩種方法的特點進行合理選擇。

參考

1 曲線的彎曲識別方法研究–郭慶勝 黃遠林 章莉萍

2 ArcGIS官方文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章