Spatial Analyst のライセンスで利用可能。
サマリー
選択された変換関数を適用し、得られた値を指定された連続的評価スケールに変換することによって、入力ラスター値のスケールを変更します。
使用法
このツールを使用する主なメリットは、以下に挙げるように、入力値の再分類を他の再分類方法よりも高度に制御できることです。
- このツールは、連続的な入力値をカテゴリにグループ化する必要がなく、それらの値を受け取って直接処理できます。
- 連続的な非線形および線形関数を入力データに適用できます。
- 入力値を、連続的な浮動小数点数の評価スケールに変換します。
このツールの基本用語を確認しておくと、以下の説明の理解に役立ちます。
入力データの連続的なスケールへの変換は、概念的には以下の 2 つのステップで処理されます。
- 指定された関数を入力ラスター値に適用します。
- 関数値を、指定された評価スケールに線形変換します。上昇する評価スケールでは、関数の最小値と最大値は、指定した評価スケールの最小値 ([起点スケール]) と最大値 ([終点スケール]) にそれぞれ設定されます。ただし、評価スケールを反転し、下降するスケールに変更することもできます。
以下の図で、Power 関数のグラフの例を示し、変換関数の適用に関連する一般的な概念と用語を紹介します。
この例の入力データの範囲は、3,000 〜 5,000 です。入力ラスターの最小値を [下限] に設定し、最大値を [上限] に設定しています (X 軸に示しています)。Power 関数は、各閾値の間に制約され (合わせられ) ます。形状制御パラメーター ([入力シフト]、[指数] など) は、関数の形状を定義します。これによって、関数が開始する位置および上昇する傾きを制御できます。Power 関数から得られた関数値は、その後、評価スケールに線形変換され、出力値に割り当てられます。上のグラフでは、[起点スケール] パラメーターと [終点スケール] パラメーターを使用して、1 〜 10 の評価スケールが定義されています (Y 軸に示しています)。
デフォルトでは、[入力ラスター] の最小値は [最小閾値] に割り当てられ、最大値は [最大閾値] に割り当てられます。
デフォルトでは、指定した関数は、可能であれば [入力ラスター] を使用して最小閾値と最大閾値の間に制約され (合わせられ) ます。関数を最小閾値と最大閾値の間に合わせる方法は、以下の方法で使用される特定の変換関数に応じて変わります。
- Linear 関数と Symmetrical Linear 関数は、これらの関数の最小値と最大値が、[入力ラスター] の最小値 (最小閾値) と最大値 (最大閾値) に設定されるため、定義に従って合わせられます。
- 合わせられた Exponential 関数と Logarithm 関数が、[入力ラスター] の値に適用されます。
- Gaussian、Near、Small、MS Small、Large、MS Large、Power、Logistic Growth、および Logistic Decay の各関数を最適に合わせるために、できるだけ多くのパラメーター (たとえば、[中点]、[ファクター]、[入力シフト]) が [入力ラスター] から生成されます。
[最小閾値] と [最大閾値] の値を変更すると、以下の相互関係が適用されます。
- 入力セルが [最小閾値] よりも小さい値を持つ場合、このセルは、[最小閾値に満たない場合の出力スケール] パラメーターに設定した値に割り当てられます。
- 入力セルが [最大閾値] よりも大きい値を持つ場合、このセルは、[最大閾値を超える場合の出力スケール] パラメーターに設定した値に割り当てられます。
- すべてのセルの値 ([最小閾値] 〜 [最大閾値] を含む) は、関数値 (f(x)) に基づいて、対応する評価スケールに割り当てられます。状況によっては、形状制御パラメーター (たとえば、[拡散]、[指数]) を変更した場合、出力ラスターのどのセルも [起点スケール] や [終点スケール] の値に割り当てることができません。
デフォルトでは、関数の形状を定義するパラメーター (たとえば、[拡散]、[ベース ファクター]) は、関数が [入力ラスター] の最小値と最大値に最もよく合う (制約される) ように計算されます。ただし、形状制御パラメーターを変更して、関数が基準値と現象の優先度との相互関係に合うように、調整することができます。最大閾値値および最小閾値値と共に、形状制御パラメーターに値を指定した場合、それによって得られた関数が、[入力ラスター] の値のリスケールに使用されます。合わせられた関数は、使用されません。
[起点スケール] と [終点スケール] は、連続的な評価スケールの最小値と最大値を定義します。関数の最小値は、[起点スケール] に設定した値に割り当てられ、関数の最大値は [終点スケール] に設定した値に割り当てられます。中間のすべての関数値は、適切な評価値に割り当てられます。
評価スケールは、小さい値から大きい値まで (たとえば、1 〜 10)、または大きい値から小さい値まで (たとえば、10 〜 1) の範囲に設定できます。
[最小閾値に満たない場合の出力スケール] の値は、閾値に満たない入力値を持つすべてのセルに割り当てられ、[最大閾値を超える場合の出力スケール] の値は、閾値を超える入力値を持つすべてのセルに割り当てられます。これらの値は、最終的な出力ラスターに直接割り当てられ、これらのセルは、変換関数の処理で考慮されません。
ツール ダイアログ ボックスでは、通常、[最小閾値] または [最大閾値] を変更した場合、形状制御パラメーター (関数の形状を定義するパラメーター。たとえば、[拡散] や [ベース ファクター]) が自動的に再計算されます。ただし、形状制御パラメーターを変更した場合、[最小閾値] と [最大閾値] の値は自動的に変更されません。その後、[最小閾値] または [最大閾値] を変更しても、変更した形状制御パラメーター (および、関連する他の形状制御パラメーター) の設定は値を維持し、再計算されません。
関数の形状制御パラメーター (たとえば、[拡散] や [ベース ファクター])、および最小閾値と最大閾値は、現在の処理の範囲、セル サイズ、およびスナップ対象ラスターの各環境設定に対して計算された統計情報に基づきます。これらが何も設定されていない場合、入力ラスターの全範囲に関連する統計情報が使用されます。
ツール ダイアログ ボックスでは、入力ラスターに、形状制御パラメーターを計算するため、または閾値を決定するための有効な統計情報がない場合、これらのパラメーターは空になり、警告メッセージが表示されます。現在の環境設定に対する統計情報を再計算してパラメーターを設定するには、[統計情報の計算] ボタンをクリックする必要があります。デフォルトでは、[最小閾値] は処理範囲内の最小値に設定され、[最大閾値] は最大値に設定され、形状制御パラメーターの値は適切に決定されます。以下の条件では、有効な統計情報がない場合があります。
- 環境の処理範囲、セルサイズ、またはスナップ対象ラスターが、ツール ダイアログ ボックスを起動する前に設定されている。
- 入力ラスターに統計情報がない。
ツール ダイアログ ボックスで、入力ラスターを入力して関数を指定した後に、環境の処理範囲、セルサイズ、またはスナップ対象ラスターを変更した場合、関数パラメーターが空(パラメーターに値がない)に設定されることがあります。パラメーターを再設定して新しい範囲の値を表示するには、[統計情報の計算] ボタンをクリックします。[最小閾値]、[最大閾値]、または形状制御パラメーターを、値を入力して変更した場合、ツールは、これらのパラメーターが変更された状態に従います。処理範囲を変更した場合、[統計情報の計算] ボタンのクリック後、これらのパラメーターは指定した値のままになります。
複数の関数を、入力ラスターの異なる範囲に適用できます。これを行うには、[関数によるリスケール (Rescale by Function)] ツールを複数回実行して各関数を連結します。まず、ある変換関数を指定して、入力値の特定の範囲に対して実行し、次に、別の変換関数を指定して、入力値の別の範囲に対して再実行します。その後、得られた出力ラスターを結合します。以下に例を示します。
- Liner 関数を 1,500 〜 3,200 の範囲の入力値に適用して [関数によるリスケール (Rescale by Function)] を実行し、閾値を超えるか下回る値を 0 に設定します。
- 同じ入力ラスターに対してもう一度ツールを実行します。このとき、3,200 よりも大きい 5,000 までの値に Exponential 関数を適用し、閾値を超えるか下回る値を 0 に設定します。
- 得られた 2 つの出力ラスターを、[Plus] ツールを使用して足し合わせます。
このツールは、並列処理をサポートしています。お使いのコンピューターに、複数のプロセッサや、複数のコアを持つプロセッサが搭載されている場合は、特に対象となるデータセットが大きいときにパフォーマンスが向上します。「Spatial Analyst による並列処理」ヘルプ トピックには、この機能と設定方法の詳細が記載されています。
並列処理を使用する場合、処理中のデータ チャンクを処理するために一時データが書き込まれます。デフォルトの一時フォルダーの場所は、ローカルの C ドライブ上です。このフォルダーの場所は、TempFolders という名前の [システム環境変数] を設定し、使用するフォルダーへのパスを指定することで変更できます (例: E:\RasterCache)。コンピューター上で管理権限を持っている場合は、レジストリ キー (例: [HKEY_CURRENT_USER\SOFTWARE\ESRI\Desktop10.6\Raster]) を使用することもできます。
デフォルトでは、このツールは使用可能なコアの 50% を使うようになっています。入力データのサイズが 5,000 セル x 5,000 セルよりも小さい場合、使用されるコア数はそれよりも少なくなります。並列処理ファクター環境で、ツールが使用するコアの数を制御できます。
このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。
構文
RescaleByFunction (in_raster, {transformation_function}, {from_scale}, {to_scale})
パラメーター | 説明 | データ タイプ |
in_raster | リスケール対象の入力ラスター。 | Raster Layer |
transformation_function (オプション) | 入力ラスターを変換する連続的な関数を指定します。 変換関数クラスを使用して変換関数のタイプを指定します。 変換関数クラスのタイプは次のとおりです。
どの変換関数を使用するかは、どの関数が、入力値と現象の優先度の相互関係を最もよく表すかによって決まります。最小閾値と最大閾値が出力値にどう影響するかをよく理解するために、閾値を制御するパラメーターの詳細について、「出力値に対する最大閾値と最小閾値の相互関係」をご参照ください。 変換関数クラスの形式は以下のとおりです。
デフォルトの変換関数は、TfMSSmall です。 各変換関数のパラメーターのデフォルトは、以下のとおりです。
| 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 ウィンドウ)
この例では、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 Desktop Basic: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Standard: 次のものが必要 Spatial Analyst
- ArcGIS Desktop Advanced: 次のものが必要 Spatial Analyst