将视域和视点用于可见性分析
视域可识别输入栅格中能够从一个或多个观测位置看到的像元。输出栅格中的每个像元都会获得一个用于指示可从每个位置看到的视点数的值。如果只有一个视点,则会将可看到该视点的每个像元的值指定为 1,将所有无法看到该视点的像元值指定为 0。视点要素类可包含点或线。线的结点和折点将用作观测点。
为什么计算视域?
视域分析工具在您想要知道可见对象的情况时很有用,举例来说,如果将水塔放置在特定位置,则从地表上的哪些位置可以看到水塔,或者从道路上将看到什么风景?
在以下示例中,识别了观测塔的视域。高程栅格数据显示土地的高度(较浅的阴影表示较高的高程),并且观测塔被标记为绿色三角形。观测塔的高度可在分析中指定。绿色像元可从观测塔处看到,而红色像元则不可见。
通过图层透明度,可在高程栅格数据下面显示山体阴影栅格数据,然后合并视域分析的输出,从而显示可见性与地形之间的关系。
您不仅可以确定哪些像元可从观测塔处看到,而且在您拥有多个观测点的情况下,还可以确定哪些视点可以看到每一个被观测的位置。了解哪个视点能够看到哪些位置,可对决策产生影响。例如,在为垃圾填埋场选址的显示效果研究中,如果确定只能从土路而不是主要和次要道路看到所提议的垃圾填埋场,则它可能被认为是适合的位置。
视域工具
视域工具会创建一个栅格数据,以记录可从输入视点或视点折线要素位置看到每个区域的次数。该值记录在输出栅格表的 VALUE 项中。输入栅格上已指定 NoData 的所有像元位置在输出栅格上被指定为 NoData。
- 当使用输入折线时,沿每条输入弧的各个结点和折点都会作为单独的观测点进行处理。输出栅格的 VALUE 项中的值给出了对于每个像元可见的结点和折点数。
- 如果输入视点要素表中不存在 SPOT 属性项,则会使用双线性插值确定每个观测点的高程。如果距某观测点或折点最近的栅格像元具有 NoData 值,该工具将无法确定它的高程。在这种情况下,该观测点将从视域分析中排除。
- 观测点与其他像元之间介入的 NoData 像元将被计为不可见,因此不会影响可见性。
视域的应用示例
下表介绍了一些可使用视域工具回答的问题类型的示例:
问题 |
视域选项 |
---|---|
从 15 米高的火警瞭望塔可看到哪些区域? |
点数据,OFFSETA |
从现有高速公路可看到所提议的垃圾堆置场的频率? |
线 |
某系列中的下一个通信中继塔应位于何处? |
点数据,OFFSETA、OFFSETB、VERT1、VERT2、AZIMUTH1、AZIMUTH2 |
视域示例
“视域”工具的一个应用示例是识别研究区域中可看到所提议的传输线塔的区域。分析的输入如下:
- 一个表面高程栅格
- 一个用于记录冠层高度(即每个位置的地表上植被顶部的高度)的栅格
- 一个线要素类(其中每条线的折点表示要支撑电缆的塔的位置)
步骤 1:使用加工具将植被高度栅格添加到表面高程栅格。
输入栅格数据或常数值 1:canopy_height
输入栅格数据或常数值 1:elev_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 单位必须为英尺、米或单位/米。用来进行校正的公式如下:
Dist2 Dist2 Zactual = Zsurface - --------- + Rrefr * --------- Diamearth Diamearth
- 其中:
Dist:观测要素与被观测位置之间的平面距离。
Diam:地球的直径。
Rrefr:光的折射系数。
地球直径 (Diamearth) 的默认值被定义为 12,740,000 米,折射系数 (Rrefr) 的默认值为 0.13。不同的 Rrefr 值可列为在可见性方面的一种大气条件变化因素。