标注 | 说明 | 数据类型 |
输入栅格 | 输入表面栅格。 | Raster Layer |
输入观察点或观察折线要素 | 用于识别观察点位置的要素类。 输入可以是点要素或折线 (polyline) 要素。 | Feature Layer |
输出栅格 | 输出栅格。 输出将记录输入表面栅格中每个像元位置对于输入观测位置可见的次数(频数分析类型),或记录栅格表面中每个像元可见的观察点位置(观察点类型选项)。 | Raster Dataset |
输出地面以上栅格 (可选) | 地表以上 (AGL) 输出栅格。 AGL 结果是一个栅格,其中每个像元值都记录了为保证像元至少对一个观察点可见而需要向该像元添加的最小高度(若不添加此高度,像元不可见)。 在输出栅格中已可见像元的值为 0。 | Raster Dataset |
分析类型 (可选) | 可见性分析类型。
| String |
针对不可见像元使用 NoData (可选) | 分配到不可见像元的值。
| Boolean |
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 |
表面偏移 (可选) | 要添加到各像元 z 值的垂直距离,因为分析可见性时需要考虑该距离。 它必须为正整数值或浮点值。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 OFFSETB 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则默认值为 0。 | Double; Field |
观察点高程 (可选) | 观察点或折点的表面高程。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 SPOT 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则可通过双线性插值法使用观察点位置相邻像元的表面高程值对其进行估算。 | Double; Field |
观察点偏移 (可选) | 要添加到观察点高程的垂直距离。 它必须为正整数值或浮点值。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 OFFSETA 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为 1。 | Double; Field |
内半径 (可选) | 确定可见性的起始距离。 小于此距离的像元在输出中不可见,但仍会妨碍内半径和外半径之间像元的可见性。 它应为正/负整数值或浮点值。 若为正值,则将解释为三维视线距离。 若为负值,则将解释为二维平面距离。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 RADIUS1 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则默认值为 0。 | Double; Field |
外半径 (可选) | 确定可见性的最大距离。 超出此距离的像元将从分析中排除。 它应为正/负整数值或浮点值。 若为正值,则将解释为三维视线距离。 若为负值,则将解释为二维平面距离。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 RADIUS2 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为无穷大。 | Double; Field |
水平起始角 (可选) | 水平扫描范围的起始角度。 请以度为单位在 0 至 360 之间指定该值;该值可为整数或浮点数,其中 0 指向北。 默认值为 0。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 AZIMUTH1 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则默认值为 0。 | Double; Field |
水平终止角 (可选) | 水平扫描范围的终止角度。 请以度为单位在 0 至 360 之间指定该值;该值可为整数或浮点数,其中 0 指向北。 默认值为 360。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 AZIMUTH2 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为 360。 | Double; Field |
垂直上角 (可选) | 扫描的(相对于水平面的)垂直角上限。 该值以度为单位,且可为整数或浮点数。 允许的范围为 -90 到(并包括) 90。 此参数值必须大于垂直下角参数值。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 VERT1 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为 90。 | Double; Field |
垂直下角 (可选) | 扫描的(位于水平面下的)垂直角上限。 该值以度为单位,且可为整数或浮点数。 允许的范围是从 -90 到(但不包括)90。 此参数值必须小于垂直上角参数值。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 VERT2 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为 -90。 | Double; Field |
需要 Spatial Analyst 许可。
需要 3D Analyst 许可。
插图
使用情况
此工具支持两种可见的分析类型(频率和观察点),由分析类型工具参数控制。 针对第一种类型,该工具可确定对一组观察点可见的栅格表面位置。 对于另一种类型,可识别从各栅格表面位置进行观察时可见的观察点。
如果输入栅格含有因采样错误导致的不希望出现的噪点,且您拥有 ArcGIS Spatial Analyst 扩展模块,则在运行此工具之前,可使用低通滤波器(如焦点统计的“平均值”选项)对栅格进行平滑处理。
每个像元中心的可见性可通过比较与像元中心所成的高度角和与本地地平线所成的高度角来确定。 计算本地地平线时要考虑观测点和当前像元中心之间的中间地形。 如果该点位于本地地平线之上,则将其视为可见点。
该工具提供一个可选的地平面以上 (AGL) 输出栅格。 AGL 输出栅格上的每一个像元都记录了为保证像元至少对一个观察点可见而需要向该像元添加的最小高度。
如果输入观察点要素包含多个观察点时,则输出值是所有单个观察点中 AGL 值的最小值。
使用观察点参数以对可见性分析过程进行更多的控制。 例如,可通过观察点偏移参数指定可见性分析中的观察点高程的偏移。
若要对输入栅格进行重采样,需使用双线性技术。 当输出坐标系、范围或像元大小与输入不同时,可以对输入栅格进行重新采样的示例。
参数
arcpy.ddd.Visibility(in_raster, in_observer_features, out_raster, {out_agl_raster}, {analysis_type}, {nonvisible_cell_value}, {z_factor}, {curvature_correction}, {refractivity_coefficient}, {surface_offset}, {observer_elevation}, {observer_offset}, {inner_radius}, {outer_radius}, {horizontal_start_angle}, {horizontal_end_angle}, {vertical_upper_angle}, {vertical_lower_angle})
名称 | 说明 | 数据类型 |
in_raster | 输入表面栅格。 | Raster Layer |
in_observer_features | 用于识别观察点位置的要素类。 输入可以是点要素或折线 (polyline) 要素。 | Feature Layer |
out_raster | 输出栅格。 输出将记录输入表面栅格中每个像元位置对于输入观测位置可见的次数(频数分析类型),或记录栅格表面中每个像元可见的观察点位置(观察点类型选项)。 | Raster Dataset |
out_agl_raster (可选) | 地表以上 (AGL) 输出栅格。 AGL 结果是一个栅格,其中每个像元值都记录了为保证像元至少对一个观察点可见而需要向该像元添加的最小高度(若不添加此高度,像元不可见)。 在输出栅格中已可见像元的值为 0。 | Raster Dataset |
analysis_type (可选) | 可见性分析类型。
| String |
nonvisible_cell_value (可选) | 分配到不可见像元的值。
| Boolean |
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 (可选) | 指定是否将应用地球曲率校正。
| Boolean |
refractivity_coefficient (可选) | 空气中可见光的折射系数。 默认值为 0.13。 | Double |
surface_offset (可选) | 要添加到各像元 z 值的垂直距离,因为分析可见性时需要考虑该距离。 它必须为正整数值或浮点值。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 OFFSETB 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则默认值为 0。 | Double; Field |
observer_elevation (可选) | 观察点或折点的表面高程。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 SPOT 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则可通过双线性插值法使用观察点位置相邻像元的表面高程值对其进行估算。 | Double; Field |
observer_offset (可选) | 要添加到观察点高程的垂直距离。 它必须为正整数值或浮点值。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 OFFSETA 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为 1。 | Double; Field |
inner_radius (可选) | 确定可见性的起始距离。 小于此距离的像元在输出中不可见,但仍会妨碍内半径和外半径之间像元的可见性。 它应为正/负整数值或浮点值。 若为正值,则将解释为三维视线距离。 若为负值,则将解释为二维平面距离。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 RADIUS1 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则默认值为 0。 | Double; Field |
outer_radius (可选) | 确定可见性的最大距离。 超出此距离的像元将从分析中排除。 它应为正/负整数值或浮点值。 若为正值,则将解释为三维视线距离。 若为负值,则将解释为二维平面距离。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 RADIUS2 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为无穷大。 | Double; Field |
horizontal_start_angle (可选) | 水平扫描范围的起始角度。 请以度为单位在 0 至 360 之间指定该值;该值可为整数或浮点数,其中 0 指向北。 默认值为 0。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 AZIMUTH1 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则默认值为 0。 | Double; Field |
horizontal_end_angle (可选) | 水平扫描范围的终止角度。 请以度为单位在 0 至 360 之间指定该值;该值可为整数或浮点数,其中 0 指向北。 默认值为 360。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 AZIMUTH2 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为 360。 | Double; Field |
vertical_upper_angle (可选) | 扫描的(相对于水平面的)垂直角上限。 该值以度为单位,且可为整数或浮点数。 允许的范围为 -90 到(并包括) 90。 此参数值必须大于垂直下角参数值。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 VERT1 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为 90。 | Double; Field |
vertical_lower_angle (可选) | 扫描的(位于水平面下的)垂直角上限。 该值以度为单位,且可为整数或浮点数。 允许的范围是从 -90 到(但不包括)90。 此参数值必须小于垂直上角参数值。 可以选择输入观察点数据集中的字段,也可以指定数值。 默认情况下,若输入观察点要素属性表中存在 VERT2 数值字段,将使用该字段。 可通过指定其他数值字段或值将其覆盖。 若未指定此参数且输入观察点要素属性表中不存在默认字段,则其默认为 -90。 | Double; Field |
代码示例
此示例确定了对在 shapefile 中定义的一组观察点可见的表面位置。
import arcpy
from arcpy import env
env.workspace = "c:/data"
arcpy.Visibility_3d("elevation", "observers.shp", "c:/output/visiout1",
"c:/output/aglout1", "FREQUENCY", "NODATA", "1",
"CURVED_EARTH", "0.13", "OFFSETB", "SPOT", "OFFSETA",
"RADIUS1", "RADIUS2", "AZIMUTH1", "AZIMUTH2",
"VERT1", "VERT2")
此示例确定了在每个表面位置可见的观察点。
# 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"
outRaster = "c:/output/visiout1"
aglOutput = "c:/output/aglout1"
analysisType = "OBSERVERS"
nonVisibleValue = "ZERO"
zFactor = 1
useEarthCurvature = "CURVED_EARTH"
refractivityCoefficient = 0.13
surfaceOffset = 500
observerElevation = 2000
observerOffset = 500
innerRadius = 20000
outerRadius = 100000
horizStartAngle = 45
horizEndAngle = 215
vertUpperAngle = 5
vertLowerAngle = -5
# Execute Visibility
arcpy.ddd.Visibility(inRaster, inObserverFeatures, outRaster, algOutput,
analysisType, nonVisibleValue, zFactor, useEarthCurvature,
refractivityCoefficient, surfaceOffset, observerElevation,
observerOffset, innerRadius, outerRadius, horizStartAngle,
horizEndAngle, vertUpperAngle, vertLowerAngle)
许可信息
- Basic: 需要 3D Analyst 或 Spatial Analyst
- Standard: 需要 3D Analyst 或 Spatial Analyst
- Advanced: 需要 3D Analyst 或 Spatial Analyst