TfSymmetricLinear

需要 Spatial Analyst 许可。

描述

定义一个对称线性变换函数,该函数是根据最大值和最小值这两个形状控制参数,以及确定函数应用范围的阈值上限和下限确定的。

了解有关各参数对此变换函数作用的详细信息

讨论

使用 TfSymmetricLinear 对象的工具为按函数重设等级

在指定的最小值和最大值之间应用一个线性函数,该函数在 minimummaximum 的中点两边相对称。对称点对应的输入值将具有最高优先级(最高的输出评估值),而随着输入值远离该对称点值,优先级表现为线性降低。

要为变换函数创建一个正斜率,则 minimum 的设置值应小于 maximum 的设置值。要为函数创建一个负斜率,则 minimum 的设置值应大于 maximum 的设置值。

有必要了解以下 minimummaximum 参数与阈值之间的关系:

  • 如果设置的 minimum 参数小于 maximum 参数,并且 minimum 大于 lowerThreshold,则任何小于 minimum 且大于 lowerThreshold 的输入值都将在输出栅格中获得自等级的值。
  • 如果设置的 maximum 参数大于 minimum 参数,并且 maximum 小于 upperThreshold,则任何大于 maximum 且小于 upperThreshold 的输入值将在输出栅格中获得至等级的值。
  • 如果为 minimum 参数设置小于 lowerThreshold 的值,则函数按 minimum 进行定义。如果 lowerThreshold 保持与最低输入值相等,并且 upperThreshold 保持与最大输入值相等(默认情况下等于 maximum 参数),则会将最小输入值分配给一个由函数 y 轴截距定义的评估值 (lowerThreshold)。因此,由 lowerThreshold 分配的输入像元位置的输出评估值将大于自等级值。如果定义的 maximum 大于 upperThreshold,则最高输入值也适用同样的逻辑。

函数值的范围为从 0 到 1,此范围随后将转换为评估等级。

语法

TfSymmetricLinear ({minimum}, {maximum}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
参数说明数据类型
minimum

对称线性变换函数的起点。用于镜像处理函数的拐点由 minimummaximum 的中点决定。如果 minimum 小于 maximum,则线性函数的斜率为正。如果 minimum 大于 maximum,则线性函数的斜率为负。

最小值不能等于最大值。

(默认值为 None)

Double
maximum

对称线性变换函数的终点。用于镜像处理函数的拐点由 minimummaximum 的中点决定。如果 minimum 小于 maximum,则线性函数的斜率为正。如果 minimum 大于 maximum,则线性函数的斜率为负。

最小值不能等于最大值。

(默认值为 None)

Double
lowerThreshold

定义开始应用指定变换函数的起始值。在输出栅格上与 lowerThreshold 对应的输入值将分配到自等级评估等级值。低于 lowerThreshold 的输入值将分配到 valueBelowThreshold,并且不会计入函数值范围。

lowerThreshold 必须小于 upperThreshold

(默认值为 None)

Double
valueBelowThreshold

此用户定义的值用于分配输入值小于 lowerThreshold 的输出像元位置。

valueBelowThreshold 的值可以为浮点数、整数或 NoData。在工具对话框内,NoData 左右不使用引号;但在编写脚本时需要使用引号,即 "NoData"

(默认值为 None)

Variant
upperThreshold

定义终止应用指定变换函数的结束值。在输出栅格上与 upperThreshold 对应的输入值将分配到至等级评估等级值。高于 upperThreshold 的输入值将分配到 valueAboveThreshold,并且不会计入函数值范围。

lowerThreshold 必须小于 upperThreshold

(默认值为 None)

Double
valueAboveThreshold

此用户定义的值用于分配输入值大于 upperThreshold 的输出像元位置。

valueAboveThreshold 的值可以为浮点数、整数或 NoData。在工具对话框内,NoData 左右不使用引号;但在编写脚本时需要使用引号,即 "NoData"

(默认值为 None)

Variant

属性

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

变换函数的最小值,用于定义对称线性函数的起点。

Double
maximum
(可读写)

变换函数的最大值,用于定义对称线性函数的终点。

Double
lowerThreshold
(可读写)

变换函数的 lowerThreshold 的值,用于定义开始应用指定变换函数的起始值。

Double
valueBelowThreshold
(可读写)

输入值低于 lowerThreshold 的值将被分配到输出像元。

Variant
upperThreshold
(可读写)

变换函数的 upperThreshold 值,用于定义停止应用指定函数的终止值。

Double
valueAboveThreshold
(可读写)

输入值高于 upperThreshold 的值将被分配到输出像元。

Variant

代码示例

对称线性变换函数示例 1(Python 窗口)

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

import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("distroads", TfSymmetricLinear(30, 8500, "#", "#", "#", "#"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfli1")
对称线性变换函数示例 2(独立脚本)

演示如何通过 TfSymmetricLinear 类在 RescaleByFunction 工具中转换输入数据。

# Name: TfSymmetricLinear_Ex_02.py
# Description: Rescales input raster data using a SymmetricLinear function and
#     transforms the function values onto a specified evaluation scale. 
# Requirements: Spatial Analyst Extension
# Author: esri

# 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 = "distroads"

# Create the TfSymmetricLinear object
minimum = 30
maximum = 8500
lowerthresh = "#"
valbelowthresh = "#"
upperthresh = "#"
valabovethresh = "#"
myTfFunction = TfSymmetricLinear(minimum, maximum, lowerthresh, valbelowthresh, upperthresh, valabovethresh)

# Set evaluation scale
fromscale = 1
toscale = 10

# Execute RescaleByFunction
outRescale = RescaleByFunction(inRaster, myTfFunction, fromscale, toscale)

# Save the output
outRescale.save("c:/sapyexamples/rescaletfsl2")

相关主题