関数によるリスケール(Rescale by Function) (Spatial Analyst)

ライセンス レベル:BasicStandardAdvanced

サマリ

選択された変換関数を適用し、得られた値を指定された連続的評価スケールに変換することによって、入力ラスタ値のスケールを変更します。

関数によるリスケール(Rescale by Function)の仕組みの詳細

使用法

構文

RescaleByFunction (in_raster, {transformation_function}, {from_scale}, {to_scale})
パラメータ説明データ タイプ
in_raster

リスケール対象の入力ラスタ。

Raster Layer
transformation_function
(オプション)

入力ラスタを変換する連続的な関数を指定します。

変換関数クラスを使用して変換関数のタイプを指定します。

変換関数クラスのタイプは次のとおりです。

どの変換関数を使用するかは、どの関数が、入力値と現象の優先度の相互関係を最もよく表すかによって決まります。最小閾値と最大閾値が出力値にどう影響するかをよく理解するために、閾値を制御するパラメータの詳細について、「出力値に対する最大閾値と最小閾値の相互関係」をご参照ください。

変換関数クラスの形式は以下のとおりです。

  • TfExponential({シフト}, {ベース ファクタ}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfGaussian({中点}, {拡散}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfLarge({中点}, {拡散}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfLinear({最小値}, {最大値}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfLogarithm({シフト}, {ファクタ}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfLogisticDecay({最小値}, {最大値}, {Y インターセプトの割合}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfLogisticGrowth({最小値}, {最大値}, {Y インターセプトの割合}, {l最小閾値}, {最小閾値に満たない値}, {最大閾値}, 最大{閾値を超える値})
  • TfMSLarge({平均乗数}, {標準偏差の乗数}, {最小閾値}, {最小閾値に満たない値}, {最小閾値}, {最大閾値を超える値})
  • TfMSSmall({平均乗数}, {標準偏差の乗数}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfNear({中点}, {拡散}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfPower({シフト}, {指数}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfSmall({中点}, {拡散}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})
  • TfSymmetricLinear({最小値}, {最大値}, {最小閾値}, {最小閾値に満たない値}, {最大閾値}, {最大閾値を超える値})

デフォルトの変換関数は、TfMSSmall です。

各変換関数のパラメータのデフォルトは、以下のとおりです。

  • ベース ファクタ(TfExponential 用)は、入力ラスタから生成されます。
  • 指数(TfPower 用)は、入力ラスタから生成されます。
  • ファクタ(TfLogarithm 用)は、入力ラスタから生成されます。
  • 最小閾値(すべての関数用)は、入力ラスタの最小値に設定されます。
  • 最小値(TfLinear、TfLogisticDecay、TfLogisticGrowth、および TfSymmetricLinear 用)は、入力ラスタの最大値に設定されます。
  • 平均乗数(TfMSLarge および TfMSSmall 用)は 1 です。
  • 中点(TfGaussian および TfNear 用)は、入力ラスタの値の範囲の中点に設定されます。
  • 中点(TfLarge および TfSmall 用)は、入力ラスタの平均に設定されます。
  • 最小値(TfLinear、TfLogisticDecay、TfLogisticGrowth、および TfSymmetricLinear 用)は、入力ラスタの最小値に設定されます。
  • シフト(TfExponential、TfLogarithm、および TfPower 用)は、入力ラスタから生成されます。
  • 拡散(TfGaussian および TfNear 用)は、入力ラスタから生成されます。
  • 拡散(TfLarge および TfSmall 用)は 5 です。
  • 標準偏差の乗数(TfMSLarge および TFMSSmall 用)は 1 です。
  • 最小閾値(すべての関数用)は、入力ラスタの最大値に設定されます。
  • 閾値を超える値(すべての関数用)は、終点スケールの値に設定されます。
  • 閾値に満たない値(すべての関数用)は、起点スケールの値に設定されます。
  • Y インターセプトの割合(TfLogisticDecay 用)は、99.0000 です。
  • Y インターセプトの割合(TfLogisticGrowth 用)は、1.0000 です。

Transformation function
from_scale
(オプション)

出力評価スケールの開始値。

from_scale の値を to_scale の値と同じにすることはできません。from_scale は、to_scale よりも小さい値または大きい値にすることができます(たとえば、1 ~ 10 または 10 ~ 1)。

この値は正の値でなければならず、整数または倍精度にすることができます。

デフォルトは 1 です。

Double
to_scale
(オプション)

出力評価スケールの終了値。

終点スケールの値を起点スケールの値と同じにすることはできません。終点スケールは、起点スケールよりも小さい値または大きい値にすることができます(たとえば、1 ~ 10 または 10 ~ 1)。

この値は正の値でなければならず、整数または倍精度にすることができます。

デフォルトは 10 です。

Double

戻り値

名前説明データ タイプ
out_raster

リスケールされた出力ラスタ。

出力は、評価値の範囲が起点スケール終点スケールの浮動小数点ラスタになります。

Raster

コードのサンプル

RescaleByFunction(関数によるリスケール)の例 1(Python ウィンドウ)

この例では、MSSmall 関数を使用してスケールを変更された値を持つラスタを作成します。

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
7/28/2014