変換関数の式

このセクションでは、[関数によるリスケール (Rescale by Function)] ツールの変換関数で使用される式について説明します。 変換関数の式は Spatial Analyst マップ代数演算の式として表されます。

各変換関数の一般式を示します。 デフォルトでは、入力データセットの最小値 (lowerThreshold) と最大値 (upperThreshold) に適合するように一般式が変更されます。 デフォルト パラメーターの指定方法も以下に示します。

一般式を使用して、任意の数の関数曲線を定義でき、関数曲線の任意の部分を取り込むことができます。 デフォルト バージョンの式では、入力データセットの最小値と最大値に適合する関数の曲線が 1 つだけ存在します。 その結果、変換された値の線形スケールを適用することに加え、摂氏や華氏などの異なる単位で表されるデータから同じ出力評価値が生成されます。

変換関数の適用

概念的には、変換関数を適用する手順は次のとおりです。

  1. 入力データセットと関数パラメーターを指定します。
  2. 変換式を適用します。
  3. 変換された値を評価スケールに線形変換します。

上記の手順 3 の、変換された値を評価スケールに変換する際に使用される線形変換式は次のとおりです。

ScaledY = fromScale + (Y - min(Y)) * r

ここで、

  • Y = F(In) は式 F を使用して変換された値であり、次のような一般的な形式で示されます。
  • In は入力値
  • r(toScale - fromScale) / (max(Y) - min(Y)) の結果
  • min(Y)Y の最小値
  • max(Y)Y の最大値
  • fromScale は評価スケールの最小値 (例: 1)
  • toScale は評価スケールの最大値 (例: 10)

指数

Exponential 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

Exp((In – inShift) * baseFactor)

ここで、

  • In は入力値
  • inShift は、入力値から引かれる値
  • baseFactor は、シフトされた入力値の乗数であり、指数関数が増加する傾きを制御します

デフォルト値

inShiftbaseFactor のデフォルト値は次のように計算されます。

inShift = Con(toScale > fromScale, A, B)
baseFactor = Con(toScale > fromScale, C, D)

ここで、

  • A = (minIn * Ln(toScale) - maxIn * Ln(fromScale)) / (Ln(toScale) - Ln(fromScale))
  • B = (minIn * Ln(fromScale) - maxIn * Ln(toScale)) / (Ln(fromScale) - Ln(toScale))
  • C = (Ln(toScale) - Ln(fromScale)) / (maxIn - minIn)
  • D = (Ln(fromScale) - Ln(toScale)) / (maxIn - minIn)
  • Ln は e を底とする値の対数
  • minIn は入力の最小値
  • maxIn は入力の最大値

ガウス

Gaussian 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

Exp(-Spread * Square(In - MidPoint))

ここで、

  • Spread は拡散パラメーターであり、中点から減少する傾きを制御します
  • In は入力値
  • MidPoint は中点パラメーターであり、ガウス曲線の中央を定義します

デフォルト値

SpreadMidPoint のデフォルト値は次のように計算されます。

Spread = Ln(10) * 4 / Pow(MidPoint - minIn, 2)
MidPoint = (maxIn + minIn) / 2

ここで、

  • Ln(10) は e を底とする 10 の対数
  • Pow(MidPoint - minIn, 2)MidPoint - minIn の値の 2 乗
  • minIn は入力の最小値
  • maxIn は入力の最大値

Large 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

1.0 / (1.0 + Pow(In / MidPoint, - Spread))

ここで、

  • In は入力値
  • MidPoint は中点パラメーターであり、関数の遷移点を定義します
  • Spread は拡散パラメーターであり、優先度が増加または減少する割合を制御します

デフォルト値

SpreadMidPoint のデフォルト値は以下のように計算されます。

Spread = 5
MidPoint = (maxIn + minIn) / 2

ここで、

  • minIn は入力の最小値
  • maxIn は入力の最大値

リニア

Linear 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は、傾きタイプに応じて次のようになります。

正の傾き (Min < Max):

Con(In < Min, 0, Con(In > Max, 1, (In - Min) / Diff))

負の傾き (Min > Max):

Con(In > Min, 0, Con(In < Max, 1, (In - Min) / Diff))

ここで、

  • In は入力値
  • Min は指定された最小値であり、Linear 関数が通過する最初の点を定めます
  • Max は指定された最大値であり、Linear 関数が通過する 2 番目の点を定めます
  • DiffMax - Min に相当します

デフォルト値

MinMax のデフォルト値は以下のように計算されます。

Min = minIn
Max = maxIn

ここで、

  • minIn は入力の最小値
  • maxIn は入力の最大値

Logarithm

Logarithm 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

Ln((In – inShift) * baseFactor)

ここで、

  • In は入力値
  • InShift は、入力値から引かれる値
  • baseFactor は、シフトされた入力値の乗数であり、Logarithm 関数値の増加を制御します

デフォルト値

inShiftbaseFactor のデフォルト値は以下のように計算されます。

inShift = Con(toScale > fromScale, A, B)
baseFactor = Con(toScale > fromScale, C, D)

ここで、

  • A = (minIn * Exp(toScale) - maxIn * Exp(fromScale)) / (Exp(toScale) - Exp(fromScale))
  • B = (minIn * Exp(fromScale) - maxIn * Exp(toScale)) / (Exp(fromScale) - Exp(toScale))
  • C = (Exp(toScale) - Exp(fromScale)) / (maxIn - minIn)
  • D = (Exp(fromScale) - Exp(toScale)) / (maxIn - minIn)
  • Exp は e を底とする値の指数
  • minIn は入力の最小値
  • maxIn は入力の最大値

LogisticDecay

Logistic Decay 変換関数の式を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

C / (1 + A * Exp((In – Min) * B))

この式のパラメーターの定義は LogisticGrowth と同じです。

注意:

LogisticGrowth 式では、Exponential の計算値は指数計算対象の値の負値から求められます: Exp( - (In - Min) * B)。

LogisticGrowth

Logistic Growth 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

C / (1 + A * Exp( - (In – Min) * B))

ここで、

  • Min は指定された最小値であり、ロジスティック増加関数の増加の始点を制御します
  • C は容量 (水平漸近線) です
  • A によって In = Min の場合の切片が決まります
  • B によって指数関数 Exp の底が決まります

デフォルト値

CAB のデフォルト値は次のように計算されます。

C = 100
A = C / yInterceptPercent - 1
B = Ln(A) / (0.5 * (Max + Min) - Min)

ここで、

  • yInterceptPercentC で割った切片のパーセントであり、LogisticGrowth ではデフォルトで 1 に設定され、LogisticDecay では 99 に設定されます。
  • Min は指定された最小値であり、デフォルトでは入力の最小値に設定されます
  • Max は指定された最大値であり、デフォルトでは入力の最大値に設定されます
  • Ln(A) は e を底とする A の対数
  • 0.5 * (Max + Min) は変曲点 y = C / 2 の X 座標であり、MinMax の中点が変曲点になります

MSLarge

MSLarge 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

Con(In > nMeans, 1 - (nStdv / (In - nMeans + nStdv)), 0)

ここで、

  • In は入力値
  • nMeansmeanMultiplier * mean に相当します
  • nStdvSTDMultiplier * std に相当します (ここで、std は母集団全体での標準偏差を指します)

デフォルト値

meanMultiplierSTDMultiplier はデフォルトで 1 に設定されています。

MSSmall

MSSmall 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

Con(In > nMeans, nStdv / (In - nMeans + nStdv), 1)

ここで、

  • In は入力値
  • nMeansmeanMultiplier * mean に相当します
  • nStdvSTDMultiplier * std に相当します (ここで、std は母集団全体での標準偏差を指します)

デフォルト値

meanMultiplierSTDMultiplier はデフォルトで 1 に設定されています。

最近接

Near 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

1.0 / (1.0 + Spread * Pow(In - MidPoint, 2))

ここで、

  • In は入力値
  • Spread は拡散パラメーターであり、中点から減少する傾きを制御します
  • MidPoint は中点パラメーターであり、曲線の中央を定義します

デフォルト値

SpreadMidPoint のデフォルト値は次のように計算されます。

Spread = 36 / Pow(MidPoint - minIn, 2)
MidPoint = (maxIn + minIn) / 2

ここで、

  • Pow(MidPoint - minIn, 2)MidPoint - minIn の値の 2 乗
  • minIn は入力の最小値
  • maxIn は入力の最大値

累乗

Power 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

Pow(In – inShift, Exponent)

ここで、

  • In は入力値
  • inShift は、入力値から引かれる値
  • Exponent は関数を累乗するときの指数

デフォルト値

inShiftExponent のデフォルト値は次のように計算されます。

inShift = Con(toScale > fromScale, A, B)

ここで、

  • A = Con(fromScale == 1, minIn - 1, minIn)
  • B = Con(toScale == 1, minIn - 1, minIn)
  • minIn は入力の最小値
  • maxIn は入力の最大値

Exponent = Con(toScale > fromScale, C, D)

ここで、

  • C = Con(fromScale == 0, C1, Con(fromScale == 1, C2, 2))
  • C1 = Con(toScale <= 1, 1, Ln(toScale) / (maxIn - inShift))
  • C2 = Ln(toScale) / Ln(maxIn - inShift)
  • D = Con(toScale == 0, D1, Con(toScale == 1, D2, 2))
  • D1 = Con(fromScale <= 1, 1, Ln(fromScale) / (maxIn - inShift))
  • D2 = Ln(fromScale) / Ln(maxIn - inShift)
  • Ln は e を底とする値の対数
  • minIn は入力の最小値
  • maxIn は入力の最大値

Small 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は次のとおりです。

1.0 / (1.0 + Pow(In / MidPoint, Spread))

ここで、

  • In は入力値
  • MidPoint は中点パラメーターであり、関数の遷移点を定義します
  • Spread は拡散パラメーターであり、優先度が減少または増加する割合を制御します

デフォルト値

SpreadMidPoint のデフォルト値は次のように計算されます。

Spread = 5
MidPoint = (maxIn + minIn) / 2

ここで、

  • minIn は入力の最小値
  • maxIn は入力の最大値

SymmetricLinear

Symmetric Linear 変換関数の式とデフォルト値を次に示します。

一般的な形式

この式の一般的な形式は、傾きのタイプに応じて次のようになります。

正の傾き (Min < Max):

Con(In < Min , 0, Con(In < MidP, (In - Min) / HDiff, Con(In > Max, 0, (Max - In) / HDiff)))

負の傾き (Min > Max):

Con(In < Max, 1, Con(In < MidP, (In - MidP) / HDiff, Con(In > Min, 1, (MidP - In) / HDiff)))

ここで、

  • In は入力値
  • Min は指定された最小値であり、SymmetricLinear 関数が通過する一方の点を定めます
  • Max は指定された最大値であり、SymmetricLinear 関数が通過するもう一方の点を定めます
  • DiffMax - Min に相当します
  • HDiff0.5 * Diff に相当します
  • MidPMin + HDiff に相当します

デフォルト値

MinMax のデフォルト値は次のように計算されます。

Min = minIn
Max = maxIn

ここで、

  • minIn は入力の最小値
  • maxIn は入力の最大値

関連トピック