TfLarge
汇总
定义一个大值变换函数,该函数是根据中点和散度这两个形状控制参数,以及确定函数应用范围的阈值上限和下限确定的。
讨论
使用 TfLarge 对象的工具为 按函数重设等级 。
大值变换函数的方程为:

方程的输入为 f1(散度 (spread))和 f2(中点 (midpoint))。
函数值的范围为从 0 到 1,此范围随后将转换为评估等级。
散度 (spread) 定义了变换函数值从中点向两边升高和下降的快慢程度。如果中点位于阈值上下限之间,则散度 (spread) 定义函数值提高到 至等级 以及下降到 自等级 的快慢程度。散度越大,函数值在中点附近变化越急剧。换言之,随着散度 (spread) 的减小,变换函数值接近中点的速度越慢。
合适散度 (spread) 值的选择是一个主观过程,它取决于输入值的数值范围。建议从默认值 5 开始尝试。
将负输入值(小于零)分配给已分配至零的评估值。
大值函数最适用于希望使用较大输入值时获得较高输出评估值的情况(即较大值优先级较高)。
语法
TfLarge({midpoint}, {spread}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
| 名称 | 说明 | 数据类型 |
|---|---|---|
|
midpoint (可选) |
定义变换函数的转折点,在此小于中点的值所对应的曲线将变得更凸出,大于此中点的值所对应的曲线将变得更凹陷。将中点平移至小于输入数据中点的位置会更改转折点,进而导致中点上方优先级较高的较大值的范围增大,而且相应优先级的提升速度也会加快。 The midpoint cannot equal 0. (默认值为 None) |
Double |
|
spread (可选) |
定义大值变换函数的散度,用于控制函数值自中点开始向两边升高和降低的速度。散度的范围通常在 1 到 10 之间,值越大,中点两侧值分布的幅度越大。 The spread must be > 0. (默认值为 5) |
Double |
|
lowerThreshold (可选) |
定义开始应用指定变换函数的起始值。在输出栅格上与
(默认值为 None) |
Double |
|
valueBelowThreshold (可选) |
此用户定义的值用于分配输入值小于
(默认值为 None) |
Variant |
|
upperThreshold (可选) |
定义终止应用指定变换函数的结束值。在输出栅格上与
(默认值为 None) |
Double |
|
valueAboveThreshold (可选) |
此用户定义的值用于分配输入值大于
(默认值为 None) |
Variant |
属性
| 名称 | 说明 | 数据类型 |
|---|---|---|
|
midpoint (读取和写入) |
变换函数的 |
Double |
|
spread (读取和写入) |
变换函数的 |
Double |
|
lowerThreshold (读取和写入) |
变换函数的 |
Double |
|
valueBelowThreshold (读取和写入) |
输入值低于 |
Variant |
|
upperThreshold (读取和写入) |
变换函数的 |
Double |
|
valueAboveThreshold (读取和写入) |
输入值高于 |
Variant |
代码示例
演示如何创建 TfLarge 类以及如何在 Python 窗口的 RescaleByFunction 工具中使用该类。
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("distroads", TfLarge(4075, 4.5, "#", "#", "#", "#"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfla1")
演示如何通过 TfLarge 类在 RescaleByFunction 工具中转换输入数据。
# Name: TfLarge_Ex_02.py
# Description: Rescales input raster data using a Large 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 TfLarge object
midpoint = 4075
spread = 4.5
lowerthresh = "#"
valbelowthresh = "#"
upperthresh = "#"
valabovethresh = "#"
myTfFunction = TfLarge(midpoint, spread, 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/rescaletfla2")