ArcGIS 通視分析工作原理


通過通視分析工具可根據在 3D 空間中相對於某表面或多面體要素類提供的障礙的位置,計算各線要素的第一個和最后一個折點之間的通視性。前一個折點定義為觀測點,后一個折點為觀測目標。沿着這些點之間的視線確定可見性,同時忽略有兩個以上折點的線中的任何中間折點。

應用於觀察點位置的默認偏移為 1 的表面為 2D 線插入觀測點和目標點的高度值,以便其高於表面。而 3D 線要素的觀察點和目標高程從要素幾何單獨獲得。通過添加名為 OffsetAOffsetB 的字段可將其他偏移應用到觀測點和目標點。OffsetA 中的值將添加到觀察點的高程,而 OffsetB 將添加到目標。

如果未提供任何多面體要素,則輸出線將疊加到表面上。如果提供多面體要素,其要素將計入沿表面的可見性分析,並且生成的線將直接從觀察點延伸到目標位置。

輸出 3D 線為完全可見或不可見的每條通視線存儲一個要素,為部分可見的每條通視線存儲兩個要素。SourceOID 字段表示用於定義通視線的輸入要素,VisCode 字段中的值表示通視線的可見性,其中 1 表示可見,2 表示不可見。TarIsVis 字段表示是否能從觀察點看到目標點,值 1 表示可見、0 表示不可見。另添加一個名為 OBSTR_MPID 的字段,以標識阻礙通視線的多面體。如果目標被表面阻礙,則該字段的值為 -1。如果目標可見,則值為 -9999。

可選擇生成一個障礙點要素類,以使阻礙目標點對觀察點可見性的通視線的第一個位置可見。如果通視線在接觸要素之前被表面的某部分阻礙,則障礙點將落在表面上。如果視線在接觸表面上的任意位置之前已接觸到要素,則障礙點將位於實際交點處,並且視線的其余部分會被視為不可見。它包含一個 SourceOID 字段,可標識與障礙物相關聯的輸入線。

曲率和大氣折射校正

在執行通視線計算時,曲率選項會根據地球曲率進行調整。只能在輸入表面的空間參考位於投影坐標系統中、且 z 坐標單位已定義時使用。

啟用折射選項可補償大氣折射(強迫穿過大氣的光線彎曲)的影響。此偏差的量受氣壓和密度、濕度、溫度和高程的變化控制。同曲率一樣,校正大氣折射要求表面的空間參考位於投影坐標系中且其 z 坐標單位已定義。

用來進行校正的公式為:

Z = Z
0
 + D
2
(R - 1) ÷ d

其中:

  • Z - 計入大氣折射影響后的校正高程。
  • Z0 - 觀察位置的表面高程。
  • D - 觀測要素和觀測位置之間的平面距離。
  • d - 地球的直徑(12740 千米)。
  • R - 光的折射系數。默認值 0.13 適用於白天天空晴朗條件的標准氣壓下、高程范圍為 40 到 100 米的位置 (Yoeli, The Making of Intervisibility Maps with Computer and Plotter, Cartographica 22:88–103, 1985)。可使用不同的折射值模擬各種大氣條件和高程對可見性的影響。

 

將視域和視點用於可見性分析

視域可識別輸入柵格中能夠從一個或多個觀測位置看到的像元。輸出柵格中的每個像元都會獲得一個用於指示可從每個位置看到的視點數的值。如果只有一個視點,則會將可看到該視點的每個像元的值指定為 1,將所有無法看到該視點的像元值指定為 0。視點要素類可包含點或線。線的結點和折點將用作觀測點。

為什么計算視域?

視域分析工具在您想要知道可見對象的情況時很有用,舉例來說,如果將水塔放置在特定位置,則從地表上的哪些位置可以看到水塔,或者從道路上將看到什么風景?

在以下示例中,識別了觀測塔的視域。高程柵格數據顯示土地的高度(較淺的陰影表示較高的高程),並且觀測塔被標記為綠色三角形。觀測塔的高度可在分析中指定。綠色像元可從觀測塔處看到,而紅色像元則不可見。

視域示例

通過圖層透明度,可在高程柵格數據下面顯示山體陰影柵格數據,然后合並視域分析的輸出,從而顯示可見性與地形之間的關系。

將視域與山體陰影一起顯示
將視域與山體陰影一起顯示

您不僅可以確定哪些像元可從觀測塔處看到,而且在您擁有多個觀測點的情況下,還可以確定哪些視點可以看到每一個被觀測的位置。了解哪個視點能夠看到哪些位置,可對決策產生影響。例如,在為垃圾填埋場選址的顯示效果研究中,如果確定只能從土路而不是主要和次要道路看到所提議的垃圾填埋場,則它可能被認為是適合的位置。

用於視域和視點分析的工具

有兩個工具可用於可見性分析,即視域視點。它們均可用來生成輸出視域柵格數據。另外,視點的輸出會精確識別可從每個柵格表面位置看到哪些視點。

視域工具

視域工具會創建一個柵格數據,以記錄可從輸入視點或視點折線要素位置看到每個區域的次數。該值記錄在輸出柵格表的 VALUE 項中。輸入柵格上已指定 NoData 的所有像元位置在輸出柵格上被指定為 NoData。

  • 當使用輸入折線時,沿每條輸入弧的各個結點和折點都會作為單獨的觀測點進行處理。輸出柵格的 VALUE 項中的值給出了對於每個像元可見的結點和折點數。
  • 如果輸入視點要素表中不存在 SPOT 屬性項,則會使用雙線性插值確定每個觀測點的高程。如果距某觀測點或折點最近的柵格像元具有 NoData 值,該工具將無法確定它的高程。在這種情況下,該觀測點將從視域分析中排除。
  • 觀測點與其他像元之間介入的 NoData 像元將被計為不可見,因此不會影響可見性。

視域的應用示例

下表介紹了一些可使用視域工具回答的問題類型的示例:

問題

視域選項

從 15 米高的火警瞭望塔可看到哪些區域?

點數據,OFFSETA

從現有高速公路可看到所提議的垃圾堆置場的頻率?

某系列中的下一個通信中繼塔應位於何處?

點數據,OFFSETA、OFFSETB、VERT1、VERT2、AZIMUTH1、AZIMUTH2

視域工具的應用

視域示例

“視域”工具的一個應用示例是識別研究區域中可看到所提議的傳輸線塔的區域。分析的輸入如下:

  • 一個表面高程柵格
  • 一個用於記錄冠層高度(即每個位置的地表上植被頂部的高度)的柵格
  • 一個線要素類(其中每條線的折點表示要支撐電纜的塔的位置)

 

步驟 1:使用工具將植被高度柵格添加到表面高程柵格。

  • 輸入柵格數據或常數值 1canopy_height

    輸入柵格數據或常數值 1elev_surface

    輸出柵格elev_canopy

 

步驟 2:在視域工具中執行視域分析。

  • 輸入柵格elev_canopy

    輸入視點或視點折線要素powerline

    輸出柵格elev_viewshed

    Z 因子:{default}

    使用地球曲率校正選項:{default}

    折射系數:{default}

 

此操作的結果是視域柵格數據。

視點分析工具

視點工具會存儲關於哪些觀測點能夠看到每個柵格像元的二進制編碼信息。此信息存儲在 VALUE 項中。

要顯示只能通過視點 3 看到的所有柵格區域,打開輸出柵格屬性表,然后選擇視點 3 (OBS3) 等於 1 而其他所有視點等於 0 的行。只能通過視點 3 看到的柵格區域將在地圖上高亮顯示。

  • 要將線狀數據與視點結合使用,使用數據管理 > 要素工具集中的要素折點轉點工具對線要素類進行轉換。點被限制為 16 個。

  • 如果要素屬性表中不存在 SPOT 屬性項,則會使用雙線性插值確定每個觀測點的高程。如果距某觀測點最近的輸入柵格像元具有 NoData 值,該工具將無法確定它的高程。在這種情況下,該觀測點將從可見性分析中排除。

  • 觀測點與其他像元之間介入的 NoData 像元將被計為不可見,因此不會影響可見性。

視點的詳細信息

視點會存儲關於哪些觀測點可以看到每個柵格像元的二進制編碼信息。此信息存儲在 VALUE 項中。

要顯示只能通過視點 3 看到的所有柵格區域,打開輸出柵格屬性表,然后選擇視點 3 (OBS3) 等於 1 而其他所有視點等於 0 的行。只能通過視點 3 看到的柵格區域將在地圖上高亮顯示。

柵格 OBSn 項

除了柵格屬性表中的標准項 VALUE 和 COUNT 外,還會在輸入點數據集中創建對應於每個視點的新項。這些項為 OBS1...OBSn,其中 n 是視點數。它們按以下方式進行定義:

ITEM NAME    WIDTH    OUTPUT    TYPE    N.DEC
OBSn         2        2         B       -

這些項通過每個“輸入視點要素”視點記錄每個像元的可見性。例如,可通過視點 8 (featurename# = 8) 看到的每個柵格像元將在名為 OBS8 的項中包含值 1。無法通過觀測點看到的像元將被指定值 0。輸入柵格上已指定 NoData 的像元位置會在輸出柵格上被指定為 NoData。

可使用 OBSn 項識別那些可從特定觀測點看到的柵格像元。這與之前的情況稍有不同,之前是根據 VALUE 參數所做的選擇。這種情況下,可通過視點 1 和視點 8 看到的像元也可通過其他視點(這種情況下,它們將各自具有不同的值)看到。

例如,要顯示可通過觀測點 1 和觀測點 8 看到的所有區域,打開柵格屬性表,然后選擇視點 1 (OBS1) 和視點 8 (OBS8) 均等於 1 而其他所有視點均等於 0 的行。

量化顯示效果

另外,也可以使用工具輸出中的信息來執行顯示效果分析。例如,您可通過在輸入柵格范圍內的每個重要的視覺要素處放置一個觀測點,來確定某表面上所有位置的顯示效果。此類點可能包括城市垃圾場、汽車修理廠、當地公園和該地區內的各個輸電塔等。

運行視點之后,使用輸出柵格的表中的 OBSn 項,來選擇那些能夠看到每個視覺要素的像元位置。使用各種其他工具中的任何一種工具,根據每個視點的顯示效果和權重累計正得分或負得分。對所有觀測點進行評估之后,那些得分最高的像元位置將呈現出最佳的顯示效果。

視點的應用示例

下表介紹了一些可使用視點工具回答的問題類型的示例:

問題

視點選項

如果給定一組火警瞭望塔位置,則看到整個研究區域所需的最少塔數是多少?

點數據,OFFSETA

哪些柵格位置只能看到垃圾堆置場和輸電塔 3?

點數據

如何確定哪些表面位置具有最佳視野?我想要根據每個地表要素的顯示效果為某個視域內的每個地表要素指定不同的權重。

點數據

視點工具的應用

控制可見性分析

通過在要素屬性數據集中指定不同的項,可限制所檢查的柵格區域,例如,觀測點高程值、垂直偏移、水平和垂直掃描角度,以及掃描距離。共有九項:SPOT、OFFSETA、OFFSETB、AZIMUTH1、AZIMUTH2、VERT1、VERT2、RADIUS1 和 RADIUS2。

下圖以圖形方式描繪了可見性分析的控制方式。觀測點在左側的山頂上(在圖中的 OF1 處)。視域的方向在朝向右側的圓錐體內。可控制偏移觀測點的量(例如,塔的高度)、觀察的方向以及可從地平線觀察的高低程度。

用於控制視域分析的參數
用於控制視域分析的參數

如果視點要素數據集是點要素類,則每個觀測點都可具有屬性表中的唯一一組觀測約束。如果視點要素數據集是折線要素類,則沿輸入折線的每個折點都會使用屬性表的折線記錄中包含的相同觀測約束。

只要這些項為數值形式,其定義就可能不同。如果某項不存在,將使用默認值。

SPOT

SPOT 項用來定義觀測點的表面高程。

偏移

偏移指的是要添加到表面上某個位置的 z 值中的垂直距離(以表面單位為單位)。

有兩個偏移項,一個用於定義將被添加到觀測位置的高程,另一個用於定義將被添加到每個像元以在分析可見性時考慮的內容。

可見性偏移

OFFSETA

OFFSETA 項將以表面單位指示要添加到觀測點 z 值的垂直距離。

如果 OFFSETA 存在於要素屬性表中,則它的值(如果存在)會被添加到 SPOT 高程中;否則,它將被添加到插值的表面 z 值中。OFFSETA 值必須為正。如果不存在 OFFSETA 項,則默認值為 1。

OFFSETB

OFFSETB 項將以表面單位指示要添加到各像元 z 值的垂直距離,因為分析可見性時需要考慮該距離。

如果要素屬性表中存在 OFFSETB 項,則在分析此項的值以確定可見性時會將其添加到各個像元位置的表面 z 值。該值必須為正。如果未在要素屬性表中找到任何 OFFSETB 項,則將默認為 0。

方位角

方位角項用於定義掃描的水平角限制。掃描將從第一個方位角到第二個方位角按順時針方向進行。角度值以度為單位,介於 0 至 360 度之間,其中 0 指向北。

可見性方位角方向

AZIMUTH1

AZIMUTH1 項定義掃描范圍的起始角度。

如果要素屬性表中不存在此項,則值將默認為 0。

AZIMUTH2

AZIMUTH2 項定義掃描范圍的結束角度。AZIMUTH2 的值必須大於 AZIMUTH1 的值。

如果要素屬性表中不存在此項,則值將默認為 360。如果 AZIMUTH1 和 AZIMUTH2 均未定義,則默認為完整的 360° 掃描。

垂直角

垂直角定義掃描的垂直角限制。角度以介於 90 和 -90 之間的度數表示,其中正值表示水平面之上的角度,而負值則表示水平面以下的角度。水平面(0 度)由觀測點的 z 值和 OFFSETA 值共同定義。兩個垂直角均可為負。

可見性垂直角限制

VERT1

VERT1 項用於定義掃描的水平角上限。

如果要素屬性表中不存在此項,則值將默認為 90。

VERT2

VERT2 項用於定義掃描的水平角下限。VERT2 的值必須小於 VERT1 的值。

如果要素屬性表中不存在此項,則值將默認為 -90。

半徑

在識別可從各觀測點看到的區域時,可使用半徑項限制搜索距離。超過某一特定距離的像元可從分析中排除。

可見性半徑

RADIUS1

RADIUS1 項用於定義確定可見性的起始距離。請注意,RADIUS1 搜索距離之內的像元在輸出柵格中不可見,但仍會妨礙 RADIUS1 和 RADIUS2 之間像元的可見性。

默認 RADIUS1 距離為 0。

RADIUS2

超出 RADIUS2 搜索距離的像元將從分析中排除。RADIUS2 的值應大於 RADIUS1 的值。

默認 RADIUS2 距離為無窮大。

平面與三維距離

默認情況下,限制距離 RADIUS1 和 RADIUS2 將被解釋為三維視線距離。為確保坡面距離計算正確,地面單位和表面 z 單位必須使用相同的測量單位。要將 RADIUS1 和 RADIUS2 作為二維平面距離處理,可在值的前面插入一個負號 (-)。

例如,如果將 RADIUS1 設置為 -1000,將 RADIUS2 設置為 -9000,視域將分析從視點進行平面測量的 1,000 到 9,000 地面單位之間的表面區域。

默認設置

下表顯示了用於控制可見性分析的選項的默認設置:

選項

默認設置

SPOT

使用雙線性插值進行估計

OFFSETA

1

OFFSETB

0

AZIMUTH1

0

AZIMUTH2

360

VERT1

90

VERT2

-90

RADIUS1

0

RADIUS2

無窮大

默認視域設置

曲率和折射校正

使用地球曲率校正選項來校正地球的曲率和折射。在存在表面的投影信息時進行校正。此外,地面單位和表面 z 單位必須為英尺、米或單位/米。用來進行校正的公式如下:

                      Dist
2
               Dist
2
    
 Z
actual
 = Z
surface
 - --------- + R
refr
 * ---------
                      Diam
earth
           Diam
earth
  • 其中:

    Dist:觀測要素與被觀測位置之間的平面距離。

    Diam:地球的直徑。

    Rrefr:光的折射系數。

 

地球直徑 (Diamearth) 的默認值被定義為 12,740,000 米,折射系數 (Rrefr) 的默認值為 0.13。不同的 Rrefr 值可列為在可見性方面的一種大氣條件變化因素。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM