視域範圍分析

參考文獻(網址):

https://www.researchgate.net/publication/2611491_A_Fast_Voxel_Traversal_Algorithm_for_Ray_Tracing

計算公式說明:

本計畫的視域分析開發,是由使用者指定一塊區域及觀察者位置及眼睛高度,而系統會將使用者指定區域,轉成DTM資料,其中包含這指定區域內的網格資料(座標/高度),藉由自行開發之程式接受以上輸入資料來做視域分析。
演算方法以下圖說明:

  • 計算可視/不可視區域:依使用者點出之觀察者位置(藍點)以及設定可視半徑(藍線),檢查與DTM資料之格點間有沒有被遮蔽,如果中間沒有地形阻擋,則格點為可見。
  • 判斷有無地形阻擋:先找出連結觀察者位置(藍點)和目標格點(大紅點)間的線段與DTM網格線的交點(小紅點),然後以內插法計算這些交點的高度(右圖黑點的高度)。由交點高度,可以判斷是否會遮住從觀察點和目標點間的射線(視線),以右圖為例,目標格點並沒有被遮蔽,所以會被標為可視。
如此重覆掃描DTM資料裡的每個格點,分別標明為可視或不可視,最後產生一個PNG圖檔的可視區域遮罩(mask)來算出視域範圍。為了加速尋找格線交點,套用John Amanatides & Andrew Woo於1987年發表的演算法 (“A Fast Voxel Traversal Algorithm for Ray Tracing”)。