视域 (3D Analyst)

摘要

确定对一组观察点要素可见的栅格表面位置。

测地线视域工具可提供增强的功能或性能。

了解有关视域工作原理的详细信息

插图

视域图示
显示在山体阴影高程表面上的视域输出

使用情况

  • 确定观察点是信息密集型处理。 处理时间取决于分辨率。 对于初级研究,您可以使用粗糙像元大小来减少输入中的像元数。 已准备好生成最终结果时,将使用全分辨率栅格。

  • 如果输入栅格含有因采样错误导致的不希望出现的噪点,则在运行此工具之前,可使用低通滤波器(如焦点统计工具的“平均值”选项)对栅格进行平滑处理。

  • 每个像元中心的可见性可通过比较与像元中心所成的高度角和与本地地平线所成的高度角来确定。 计算本地地平线时要考虑观测点和当前像元中心之间的中间地形。 如果该点位于本地地平线之上,则将其视为可见点。

  • 该工具提供一个可选的地平面以上 (AGL) 输出栅格。 AGL 输出栅格上的每一个像元都记录了为保证像元至少对一个观察点可见而需要向该像元添加的最小高度。

    如果输入观察点要素包含多个观察点时,则输出值是所有单个观察点中 AGL 值的最小值。

  • 若要对输入栅格进行重采样,需使用双线性技术。 例如,当输出栅格与输入栅格的坐标系统、范围或像元大小不同时,可对输入栅格进行重采样。

参数

标注说明数据类型
输入栅格

输入表面栅格。

Raster Layer
输入观察点或观察折线要素

用于识别观察点位置的要素类。

输入可以是点要素或折线 (polyline) 要素。

Feature Layer
输出栅格

输出栅格。

输出将只记录输入表面栅格中每个像元位置对于输入观测点(或折线的折点)可见的次数。 观测频数将记录在输出栅格属性表的 VALUE 项中。

Raster Dataset
Z 因子
(可选)

一个表面 z 单位中地面 x,y 单位的数量。

z 单位与输入表面的 x,y 单位不同时,可使用 z 因子调整 z 单位的测量单位。 计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。

如果 x,y 单位和 z 单位采用相同的测量单位,则 z 因子为 1。 这是默认设置。

如果 x,y 单位和 z 单位采用不同的测量单位,则必须将 z 因子设置为适当的因子,否则会得到错误的结果。 例如,如果 z 单位是英尺,而 x,y 单位是米,则应使用 z 因子 0.3048 将 z 单位从英尺转换为米(1 英尺 = 0.3048 米)。

Double
使用地球曲率校正
(可选)

指定是否将应用地球曲率校正。

  • 未选中 - 不应用任何曲率校正。 这是默认设置。
  • 选中 - 应用曲率校正。
Boolean
折射系数
(可选)

空气中可见光的折射系数。

默认值为 0.13。

Double
输出地面以上栅格
(可选)

地面以上 (AGL) 输出栅格。

AGL 结果是一个栅格,其中每个像元值都记录了为保证像元至少对一个观察点可见而需要向该像元添加的最小高度(若不添加此高度,像元不可见)。

在输出栅格中已可见像元的值为 0。

Raster Dataset

返回值

标注说明数据类型
输出栅格

输出栅格。

输出将只记录输入表面栅格中每个像元位置对于输入观测点(或折线的折点)可见的次数。 观测频数将记录在输出栅格属性表的 VALUE 项中。

Raster

arcpy.ddd.Viewshed(in_raster, in_observer_features, out_raster, {z_factor}, {curvature_correction}, {refractivity_coefficient}, {out_agl_raster})
名称说明数据类型
in_raster

输入表面栅格。

Raster Layer
in_observer_features

用于识别观察点位置的要素类。

输入可以是点要素或折线 (polyline) 要素。

Feature Layer
out_raster

输出栅格。

输出将只记录输入表面栅格中每个像元位置对于输入观测点(或折线的折点)可见的次数。 观测频数将记录在输出栅格属性表的 VALUE 项中。

Raster Dataset
z_factor
(可选)

一个表面 z 单位中地面 x,y 单位的数量。

z 单位与输入表面的 x,y 单位不同时,可使用 z 因子调整 z 单位的测量单位。 计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。

如果 x,y 单位和 z 单位采用相同的测量单位,则 z 因子为 1。 这是默认设置。

如果 x,y 单位和 z 单位采用不同的测量单位,则必须将 z 因子设置为适当的因子,否则会得到错误的结果。 例如,如果 z 单位是英尺,而 x,y 单位是米,则应使用 z 因子 0.3048 将 z 单位从英尺转换为米(1 英尺 = 0.3048 米)。

Double
curvature_correction
(可选)

指定是否将应用地球曲率校正。

  • FLAT_EARTH不应用任何曲率校正。 这是默认设置。
  • CURVED_EARTH应用曲率校正。
Boolean
refractivity_coefficient
(可选)

空气中可见光的折射系数。

默认值为 0.13。

Double
out_agl_raster
(可选)

地面以上 (AGL) 输出栅格。

AGL 结果是一个栅格,其中每个像元值都记录了为保证像元至少对一个观察点可见而需要向该像元添加的最小高度(若不添加此高度,像元不可见)。

在输出栅格中已可见像元的值为 0。

Raster Dataset

返回值

名称说明数据类型
out_raster

输出栅格。

输出将只记录输入表面栅格中每个像元位置对于输入观测点(或折线的折点)可见的次数。 观测频数将记录在输出栅格属性表的 VALUE 项中。

Raster

代码示例

视域示例 1(Python 窗口)

此示例确定了对在 shapefile 中定义的一组观察点可见的表面位置。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outViewshed = Viewshed("elevation","observers.shp",2,"CURVED_EARTH",0.15)
outViewshed.save("C:/sapyexamples/output/outvwshd01")
视域示例 2(独立脚本)

此示例确定了对在 shapefile 中定义的一组观察点可见的表面位置。

# Name: Viewshed_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
#              observer features.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "elevation"
inObserverFeatures = "observers.shp"
zFactor = 2
useEarthCurvature = "CURVED_EARTH"
refractivityCoefficient = 0.15

# Execute Viewshed
outViewshed = Viewshed(inRaster, inObserverFeatures, zFactor, 
                       useEarthCurvature, refractivityCoefficient)

# Save the output 
outViewshed.save("C:/sapyexamples/output/outvwshd02")
视域示例 1(Python 窗口)

此示例确定了对在 shapefile 中定义的一组观察点可见的表面位置。

import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.Viewshed_3d("elevation", "observers.shp", "C:/output/outvwshd01", 2,
                  "CURVED_EARTH", 0.15)
视域示例 2(独立脚本)

此示例确定了对在 shapefile 中定义的一组观察点可见的表面位置。

# Name: Viewshed_3d_Ex_02.py
# Description: Determines the raster surface locations visible to a set of
#              observer features.
# Requirements: 3D Analyst Extension

# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Set local variables
inRaster = "elevation"
inObserverFeatures = "observers.shp"
outViewshed = "C:/output/outvwshd02"
zFactor = 2
useEarthCurvature = "CURVED_EARTH"
refractivityCoefficient = 0.15

# Execute Viewshed
arcpy.ddd.Viewshed(inRaster, inObserverFeatures, outViewshed, zFactor,
                   useEarthCurvature, refractivityCoefficient)

相关主题