TfPower
汇总
定义一个幂变换函数,该函数是根据平移和指数这两个形状控制参数,以及确定函数应用范围的阈值上限和下限确定的。
讨论
使用 TfPower 对象的工具为 按函数重设等级 。
可达的最高函数值限于最大单精度浮点值(FLT_MAX,值为 3.402823466 x 1038)的二分之一,即 1.701411733 x 1038。任何超出此限值的输入值都将在输出栅格中获得 至等级 的值。
语法
TfPower({shift}, {exponent}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
| 名称 | 说明 | 数据类型 |
|---|---|---|
|
shift (可选) |
定义每个输入值应平移的量。平移值是从输入值中减去的值。将变换函数应用于平移后的输入值以确定函数值。 默认情况下,通过平移进行调整,从而使函数从 转换可以为正也可以为负。 (默认值为 None) |
Double |
|
exponent (可选) |
在变换函数中提高输入值的幂。随着指数增加,较大输入值的优先级提升得更快。 指数不能等于 0 或 1。 (默认值为 None) |
Double |
|
lowerThreshold (可选) |
定义开始应用指定变换函数的起始值。在输出栅格上与
(默认值为 None) |
Double |
|
valueBelowThreshold (可选) |
此用户定义的值用于分配输入值小于
(默认值为 None) |
Variant |
|
upperThreshold (可选) |
定义终止应用指定变换函数的结束值。在输出栅格上与
(默认值为 None) |
Double |
|
valueAboveThreshold (可选) |
此用户定义的值用于分配输入值大于
(默认值为 None) |
Variant |
属性
| 名称 | 说明 | 数据类型 |
|---|---|---|
|
shift (读取和写入) |
函数的 |
Double |
|
exponent (读取和写入) |
在变换函数中用于增大输入值的指数值。 |
Double |
|
lowerThreshold (读取和写入) |
变换函数的 |
Double |
|
valueBelowThreshold (读取和写入) |
输入值低于 |
Variant |
|
upperThreshold (读取和写入) |
变换函数的 |
Double |
|
valueAboveThreshold (读取和写入) |
输入值高于 |
Variant |
代码示例
演示如何创建 TfPower 类以及如何在 Python 窗口的 RescaleByFunction 工具中使用该类。
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("distroads", TfPower(-2, 0.27, "#", "#", "#", "#"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfpo1")
演示如何通过 TfPower 类在 RescaleByFunction 工具中转换输入数据。
# Name: TfPower_Ex_02.py
# Description: Rescales input raster data using an Power 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 TfPower object
shift = -2
exponent = 0.27
lowerthresh = "#"
valbelowthresh = "#"
upperthresh = "#"
valabovethresh = "#"
myTfFunction = TfPower(shift, exponent, 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/rescaletfpo2")