VfSymInverseLinear

需要 Spatial Analyst 许可。

摘要

通过 VRMA 正侧或负侧的对称反线性函数分别定义垂直成本系数和垂直相对移动角度 (VRMA) 之间的关系。 两个线性函数关于 VF (y) 轴对称。

插图

VfSymInverseLinear 垂直系数图
对称反线性垂直系数图。

说明

此对象用于距离累积距离分配 Spatial Analyst 工具,以及路径距离路径距离分配路径距离回溯链接旧的距离工具。

垂直系数 (VF) 对象用于定义垂直成本系数和垂直相对移动角度 (VRMA) 之间的关系。

VF 定义从一个像元移至下一像元时所遇到的垂直阻力。

VRMA 标识“起始”像元或处理像元与“终止”像元之间的坡度角度。

正如其名称所示,VfSymInverseLinear 类是 VfSymLinear 垂直系数类的反类。 它由两个与 VRMA 相关的线性函数组成,这两个函数关于 VF (y) 轴相对称。 两条线都在 zeroFactor 处截取 y 轴。 使用 slope 垂直系数参数将线的斜率定义为相对于正 VRMA 的单一斜率,该斜率与负 VRMA 呈镜像关系。

语法

VfSymInverseLinear ({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})
参数说明数据类型
zeroFactor

zeroFactor 将用于确定对称逆线性函数的 y 截距。

(默认值为 1.0)

Double
lowCutAngle

用于定义阈值下限的 VRMA 度数,如果低于(小于)该值,则将 VF 设置为无穷大。

(默认值为 -45.0)

Double
highCutAngle

用于定义阈值上限的 VRMA 度数,如果高于(大于)该值,则将 VF 设置为无穷大。

(默认值为 45.0)

Double
slope

在 VRMA-VF 坐标系中,确定直线的斜率。斜率被指定为垂直增量/水平增量。例如,30 度斜率是 1/30,指定为 0.03333(竖直增量/水平增量:y 轴 1 VF/x 轴 30 度);-45 度斜率为 -0.022222。

(默认值为 -0.022222)

Double

属性

属性说明数据类型
zeroFactor
(可读写)

zeroFactor 将用于确定垂直系数类的 y 截距。

Double
lowCutAngle
(可读写)

用于定义阈值下限的 VRMA 度数,如果低于(小于)该值,则将 VF 设置为无穷大。

Double
highCutAngle
(可读写)

用于定义阈值上限的 VRMA 度数,如果高于(大于)该值,则将 VF 设置为无穷大。

Double
slope
(可读写)

在 VRMA-VF 坐标系中,确定直线的斜率。斜率被指定为垂直增量与水平增量的比值。例如,30 度斜率是 1/30,指定为 0.03333(竖直增量/水平增量:y 轴 1 VF/x 轴 30 度);90 度斜率为 0.011111。

Double

代码示例

VFSymInverseLinear 示例 1(Python 窗口)。

演示了如何创建 VfSymInverseLinear 类以及如何在 Python 窗口的 DistanceAccumulation 工具中使用该类。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
myVerticalFactor = VfSymInverseLinear(1.0, -45, 45, -0.02222)
outDistAccum = DistanceAccumulation("Source.shp", "", "elev.tif",
                                   "cost.tif", "elev.tif",
                                    myVerticalFactor)
outDistAccum.save("C:/sapyexamples/output/distAccumVfIL.tif")
VFSymInverseLinear 示例 2(独立脚本)。

使用 VfSymInverseLinear 类执行 DistanceAccumulation 分析。

# Name: VfSymInverseLinear_Ex_02.py
# Description: ses the VfSymInverseLinear object to run the 
#              DistanceAccumulation tool
# 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
inSourceData = "source.shp"
inCostRaster = "costraster.tif"
inElevation = "elev.tif"

# Create the VfSymInverseLinear Object
zeroFactor = 1.0
lowCutAngle = -45
highCutAngle = 45
slope = -0.02222
myVerticalFactor = VfSymInverseLinear(zeroFactor, lowCutAngle, highCutAngle,
                                      slope)

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute PathDistance
outDistAccum = DistanceAccumulation(inSourceData, "", inElevation,
                                    inCostRaster, inElevation,
                                    myVerticalFactor)

# Save the output 
outDistAccum.save("C:/sapyexamples/output/distaccumvfIL2.tif")

相关主题