TfSymmetricLinear
汇总
定义一个对称线性变换函数,该函数是根据最大值和最小值这两个形状控制参数,以及确定函数应用范围的阈值上限和下限确定的。
讨论
使用 TfSymmetricLinear 对象的工具为 按函数重设等级 。
在指定的最小值和最大值之间应用一个线性函数,该函数在 minimum 和 maximum 的中点两边相对称。对称点对应的输入值将具有最高优先级(最高的输出评估值),而随着输入值远离该对称点值,优先级表现为线性降低。
要为变换函数创建一个正斜率,则 minimum 的设置值应小于 maximum 的设置值。要为函数创建一个负斜率,则 minimum 的设置值应大于 maximum 的设置值。
有必要了解以下 minimum 和 maximum 参数与阈值之间的关系:
如果设置的
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 (可选) |
对称线性变换函数的起点。用于镜像处理函数的拐点由 最小值不能等于最大值。 (默认值为 None) |
Double |
|
maximum (可选) |
对称线性变换函数的终点。用于镜像处理函数的拐点由 最小值不能等于最大值。 (默认值为 None) |
Double |
|
lowerThreshold (可选) |
定义开始应用指定变换函数的起始值。在输出栅格上与
(默认值为 None) |
Double |
|
valueBelowThreshold (可选) |
此用户定义的值用于分配输入值小于
(默认值为 None) |
Variant |
|
upperThreshold (可选) |
定义终止应用指定变换函数的结束值。在输出栅格上与
(默认值为 None) |
Double |
|
valueAboveThreshold (可选) |
此用户定义的值用于分配输入值大于
(默认值为 None) |
Variant |
属性
| 名称 | 说明 | 数据类型 |
|---|---|---|
|
minimum (读取和写入) |
变换函数的最小值,用于定义对称线性函数的起点。 |
Double |
|
maximum (读取和写入) |
变换函数的最大值,用于定义对称线性函数的终点。 |
Double |
|
lowerThreshold (读取和写入) |
变换函数的 |
Double |
|
valueBelowThreshold (读取和写入) |
输入值低于 |
Variant |
|
upperThreshold (读取和写入) |
变换函数的 |
Double |
|
valueAboveThreshold (读取和写入) |
输入值高于 |
Variant |
代码示例
演示如何创建 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")
演示如何通过 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
# 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
# Run RescaleByFunction
outRescale = RescaleByFunction(inRaster, myTfFunction, fromscale, toscale)
# Save the output
outRescale.save("c:/sapyexamples/rescaletfsl2")