按函数重设等级 (Spatial Analyst)

许可等级:BasicStandardAdvanced

摘要

重设输入栅格值的等级,方法为应用所选变换函数,然后将结果值变换为指定的连续评估等级。

了解有关“按函数重设等级”工作原理的详细信息

用法

语法

RescaleByFunction (in_raster, {transformation_function}, {from_scale}, {to_scale})
参数说明数据类型
in_raster

要重设等级的输入栅格。

Raster Layer
transformation_function
(可选)

指定连续函数以变换输入栅格。

变换函数类用于指定变换函数的类型。

变换函数类的类型有:

采用哪种变换函数取决于哪种函数能够最好地捕捉现象的优先级与输入值之间的相互作用。要更好地理解阈值上下限如何影响输出值,并获得控制阈值的参数的详细信息,请参阅阈值下限和阈值上限对输出值的交互作用

以下为变换函数类的形式:

  • TfExponential({shift}, {baseFactor}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfGaussian({midpoint}, {spread}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfLarge({midpoint}, {spread}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfLinear({minimum}, {maximum}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfLogarithm({shift}, {factor}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfLogisticDecay({minimum}, {maximum}, {yInterceptPercent}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfLogisticGrowth({minimum}, {maximum}, {yInterceptPercent}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfMSLarge({meanMultiplier}, {STDMultiplier}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfMSSmall({meanMultiplier}, {STDMultiplier}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfNear({midpoint}, {spread}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfPower({shift}, {exponent}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfSmall({midpoint}, {spread}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})
  • TfSymmetricLinear({minimum}, {maximum}, {lowerThreshold}, {valueBelowThreshold}, {upperThreshold}, {valueAboveThreshold})

默认的变换函数为 TfMSSmall。

各个变换函数的默认参数包括:

  • baseFactor(用于 TfExponential),从输入栅格中获取。
  • exponent(用于 TfPower),从输入栅格中获取。
  • factor(用于 TfLogarithm),从输入栅格中获取。
  • lowerThreshold(用于所有函数),设置为输入栅格的最小值。
  • maximum(用于 TfLinear、TfLogisticDecay、TfLogisticGrowth 和 TfSymmetricLinear),设置为输入栅格的最大值。
  • meanMultiplier(用于 TfMSLarge 和 TfMSSmall),其值为 1。
  • midpoint(用于 TfGaussian 和 TfNear),设置为输入栅格值范围的中点。
  • midpoint(用于 TfLarge 和 TfSmall),设置为输入栅格的平均值。
  • minimum(用于 TfLinear、TfLogisticDecay、TfLogisticGrowth 及 TfSymmetricLinear),设置为输入栅格的最小值。
  • shift(用于 TfExponential、TfLogarithm 和 TfPower),从输入栅格中获取。
  • spread(用于 TfGaussian 和 TfNear),从输入栅格中获取。
  • spread(用于 TfLarge 和 TfSmall),值为 5。
  • STDMultiplier(用于 TfMSLarge 和 TFMSSmall),值为 1。
  • upperThreshold(用于所有函数),设置为输入栅格的最大值。
  • valueAboveThreshold(用于所有函数),设置为 to_Scale 的值。
  • valueBelowThreshold(用于所有函数),设置为 from_Scale 的值。
  • yInterceptPercent(用于 TfLogisticDecay),值为 99.0000。
  • yInterceptPercent(用于 TfLogisticGrowth),值为 1.0000。

Transformation function
from_scale
(可选)

输出评估等级的起始值。

from_scale 的值不能等于 to_scale 的值。from_scale 的值可以低于或高于 to_scale 的值(例如,范围可以从 1 至 10 或从 10 至 1)。

该值必须为正,且可以是整型值或双精度值。

默认值为 1。

Double
to_scale
(可选)

输出评估等级的结束值。

to_scale 的值不能等于 from_scale 的值。to_scale 的值可以低于或高于 from_scale 的值(例如,范围可以从 1 至 10 或从 10 至 1)。

该值必须为正,且可以是整型值或双精度值。

默认值为 10。

Double

返回值

名称说明数据类型
out_raster

输出的已重设等级的栅格。

将输出浮点型栅格,其值的范围为 from_scale 评估值到 to_scale 评估值(或在两者之内)。

Raster

代码实例

RescaleByFunction 示例 1(Python 窗口)

本示例将创建一个栅格,该栅格的值使用 MS 小值函数重设等级。

import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("elevation", TfMSSmall(1.25, 1.5, "#", "#", 4000, "NoData"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfms1")
RescaleByFunction 示例 2(独立脚本)

演示使用此工具处理高程数据,其中高程较低的位置的优先级要远高于高程较高的位置。4,000 米以上的位置均设置为 NoData。

# Name: TfMSSmall_Ex_02.py
# Description: Rescales input raster data using a MSSmall 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 = "elevation"

# Create the TfMSSmall object
meanmult = 1.25
stdmult = 1.5
lowerthresh = "#"
valbelowthresh = "10"
upperthresh = 4000
valabovethresh = "NoData"
myTfFunction = TfMSSmall(meanmult, stdmult, 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/rescaletfms2")

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 需要 Spatial Analyst
ArcGIS for Desktop Standard: 需要 Spatial Analyst
ArcGIS for Desktop Advanced: 需要 Spatial Analyst
5/10/2014