このセクションでは、[関数によるリスケール (Rescale by Function)] ツールの変換関数で使用される式について説明します。 変換関数の式は Spatial Analyst マップ代数演算の式として表されます。
各変換関数の一般式を示します。 デフォルトでは、入力データセットの最小値 (lowerThreshold) と最大値 (upperThreshold) に適合するように一般式が変更されます。 デフォルト パラメーターの指定方法も以下に示します。
一般式を使用して、任意の数の関数曲線を定義でき、関数曲線の任意の部分を取り込むことができます。 デフォルト バージョンの式では、入力データセットの最小値と最大値に適合する関数の曲線が 1 つだけ存在します。 その結果、変換された値の線形スケールを適用することに加え、摂氏や華氏などの異なる単位で表されるデータから同じ出力評価値が生成されます。
変換関数の適用
概念的には、変換関数を適用する手順は次のとおりです。
- 入力データセットと関数パラメーターを指定します。
- 変換式を適用します。
- 変換された値を評価スケールに線形変換します。
上記の手順 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 は、シフトされた入力値の乗数であり、指数関数が増加する傾きを制御します
デフォルト値
inShift と baseFactor のデフォルト値は次のように計算されます。
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 は中点パラメーターであり、ガウス曲線の中央を定義します
デフォルト値
Spread と MidPoint のデフォルト値は次のように計算されます。
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 は拡散パラメーターであり、優先度が増加または減少する割合を制御します
デフォルト値
Spread と MidPoint のデフォルト値は以下のように計算されます。
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 番目の点を定めます
- Diff は Max - Min に相当します
デフォルト値
Min と Max のデフォルト値は以下のように計算されます。
Min = minIn
Max = maxIn
ここで、
- minIn は入力の最小値
- maxIn は入力の最大値
Logarithm
Logarithm 変換関数の式とデフォルト値を次に示します。
一般的な形式
この式の一般的な形式は次のとおりです。
Ln((In – inShift) * baseFactor)
ここで、
- In は入力値
- InShift は、入力値から引かれる値
- baseFactor は、シフトされた入力値の乗数であり、Logarithm 関数値の増加を制御します
デフォルト値
inShift と baseFactor のデフォルト値は以下のように計算されます。
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 の底が決まります
デフォルト値
C、A、B のデフォルト値は次のように計算されます。
C = 100
A = C / yInterceptPercent - 1
B = Ln(A) / (0.5 * (Max + Min) - Min)
ここで、
- yInterceptPercent は C で割った切片のパーセントであり、LogisticGrowth ではデフォルトで 1 に設定され、LogisticDecay では 99 に設定されます。
- Min は指定された最小値であり、デフォルトでは入力の最小値に設定されます
- Max は指定された最大値であり、デフォルトでは入力の最大値に設定されます
- Ln(A) は e を底とする A の対数
- 0.5 * (Max + Min) は変曲点 y = C / 2 の X 座標であり、Min と Max の中点が変曲点になります
MSLarge
MSLarge 変換関数の式とデフォルト値を次に示します。
一般的な形式
この式の一般的な形式は次のとおりです。
Con(In > nMeans, 1 - (nStdv / (In - nMeans + nStdv)), 0)
ここで、
- In は入力値
- nMeans は meanMultiplier * mean に相当します
- nStdv は STDMultiplier * std に相当します (ここで、std は母集団全体での標準偏差を指します)
デフォルト値
meanMultiplier と STDMultiplier はデフォルトで 1 に設定されています。
MSSmall
MSSmall 変換関数の式とデフォルト値を次に示します。
一般的な形式
この式の一般的な形式は次のとおりです。
Con(In > nMeans, nStdv / (In - nMeans + nStdv), 1)
ここで、
- In は入力値
- nMeans は meanMultiplier * mean に相当します
- nStdv は STDMultiplier * std に相当します (ここで、std は母集団全体での標準偏差を指します)
デフォルト値
meanMultiplier と STDMultiplier はデフォルトで 1 に設定されています。
最近接
Near 変換関数の式とデフォルト値を次に示します。
一般的な形式
この式の一般的な形式は次のとおりです。
1.0 / (1.0 + Spread * Pow(In - MidPoint, 2))
ここで、
- In は入力値
- Spread は拡散パラメーターであり、中点から減少する傾きを制御します
- MidPoint は中点パラメーターであり、曲線の中央を定義します
デフォルト値
Spread と MidPoint のデフォルト値は次のように計算されます。
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 は関数を累乗するときの指数
デフォルト値
inShift と Exponent のデフォルト値は次のように計算されます。
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 は拡散パラメーターであり、優先度が減少または増加する割合を制御します
デフォルト値
Spread と MidPoint のデフォルト値は次のように計算されます。
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 関数が通過するもう一方の点を定めます
- Diff は Max - Min に相当します
- HDiff は 0.5 * Diff に相当します
- MidP は Min + HDiff に相当します
デフォルト値
Min と Max のデフォルト値は次のように計算されます。
Min = minIn
Max = maxIn
ここで、
- minIn は入力の最小値
- maxIn は入力の最大値