TfNear (arcpy.sa)

摘要

定义一个邻近分析变换函数,该函数是根据中点和散度这两个形状控制参数,以及确定函数应用范围的阈值上限和下限确定的。

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

讨论

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

邻近分析变换函数的方程为:

邻近分析变换函数方程

方程的输入为 f1(散度 (spread))和 f2(中点 (midpoint))。

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

散度 (spread) 定义了变换函数值从中点向两边下降的快慢程度。如果中点位于上下限阈值之间,则散度 (spread) 定义函数值从至等级自等级下降的快慢程度。值越大,函数值在中点附近变化越急剧。换言之,随着散度 (spread) 的减小,变换函数值接近中点的速度越慢。合适散度 (spread) 值的选择是一个主观过程,它取决于输入值的数值范围。建议从默认值 0.1 开始尝试。通常,值分别在 0.01 到 1 或 0.001 到 1 的范围内变化。默认散度 (spread) 将按照适合函数输入数据集的最小值和最大值进行计算。

邻近分析函数的适用情况为:需要将最高输出评估值(优先级最高)分配给输入值接近指定值的像元,并且评估值(优先级)会随着输入值远离而降低。

邻近分析函数与高斯变换函数类似,只是邻近分析函数的散度 (spread) 更小。

语法

TfNear ({midpoint}, {spread}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
参数说明数据类型
midpoint

此用户定义的值用于定义邻近分析变换函数曲线的最高点。如果中点值介于阈值下限和上限之间,含相应值的输入像元位置将在输出栅格上获得至等级评估等级值。

(默认值为 None)

Double
spread

定义邻近分析函数的散度,用于控制函数自中点开始向两侧衰减的急剧程度。散度的范围通常在 0.001 到 1 之间,值越大,自中点起衰减的幅度越大。

(默认值为 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

属性

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

变换函数的中点值,用于定义函数曲线的最高点。

Double
spread
(读写)

变换函数的散度值,用于控制函数从中点开始向两侧的衰减程度。

Double
lowerThreshold
(读写)

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

Double
valueBelowThreshold
(读写)

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

Variant
upperThreshold
(读写)

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

Double
valueAboveThreshold
(读写)

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

Variant

代码实例

邻近分析变换函数示例 1(Python 窗口)

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

import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("solar", TfNear(180, 0.002, "#", "#", "#", "#"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfne1")
邻近分析变换函数示例 2(独立脚本)

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

# Name: TfNear_Ex_02.py
# Description: Rescales input raster data using a Near 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 = "solar"

# Create the TfNear object
midpoint = 180
spread = 0.002
lowerthresh = "#"
valbelowthresh = "#"
upperthresh = "#"
valabovethresh = "#"
myTfFunction = TfNear(midpoint, spread, lowerthresh, valbelowthresh, upperthresh, valabovethresh)

# Set evaluation scale
fromscale = 1
toscale = 10

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

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

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

相关主题

5/10/2014