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

Spatial Analyst のライセンスで利用可能。

[関数によるリスケール (Rescale by Function)] ツールでは、数学関数 (ラインまたは曲線) を使用して、適合性の値を連続的なスケール (通常は、1 〜 10) で入力ラスターに割り当てることができます。リスケールは、適合性モデリングで特に役立ちます。適合性は、基準値が変化するとともに何度も連続的に変化し、多くの場合、非線形に変化します。たとえば、既存の道路に近いセルの位置は、その場所に電力を供給するためのコストが安いため、住宅の適合性モデルでは、最も優先されることがあります。道路からの距離が増すに従って、その場所に電力を供給するためのコストは、指数関数的に増加する場合があります。その結果、道路から遠い場所では、適合性は著しく減少します。コストの相互関係が確立されると、指数関数的な優先度の減少は、指定された連続的な適合性スケール (たとえば、1 〜 10) に変換されます。その後、スケールを変更されたコストの基準を、スケールを変更された他の基準 (傾斜角、傾斜方向、学校からの距離など) と統合して、住宅に最適な場所を特定できます。

このツールを適用する場合、主に次の 4 つの考慮事項があります。

  1. 現象と基準の間での優先度の相互関係を理解し、定義する。
  2. 優先度の相互関係を最もよく表す変換関数を選択する (たとえば、指数関数的増加)。
  3. 必要に応じて、さらに適合するように関数のパラメーターを変更する。
  4. 優先度関数の値を変換するために、適合性 (評価) スケールを定義する (たとえば、1 〜 10)。

[関数によるリスケール (Rescale by Function)] ツールは、データを適合性モデルに変換するための選択肢を広げます。[再分類 (Reclassify)] ツールを使用してデータをカテゴリに再分類できます。[関数によるリスケール (Rescale by Function)] ツールを使用して、離散的なカテゴリを作成することなく、連続的なデータのスケールを変更 (再分類) できます。[関数によるリスケール (Rescale by Function)] ツールは、連続的なスケールで変化する適合性をモデル化するための、さまざまな関数を提供します。このツールは、入力ラスターの値のスケールを、連続的な適合性スケールに変更するため、カテゴリへの集約は行われません。そのため、連続的に変化する特定の優先度の相互関係 (上の例では、道路からの距離が増すに従ってコストが変化する) を、適切に表すことができます。

提供される関数は、Exponential、Gaussian、Large、Linear、Logarithm、Logistic Decay、Logistic Growth、MSLarge、MSSmall、Near、Power、Small、および Symmetric Linear です。各関数の詳細については、以下をご参照ください。

最大閾値と最小閾値を定義して、入力値のスケールの変更の動作を、さらに詳細に制御できます。詳細については、「出力値に対する最大閾値と最小閾値の相互関係」をご参照ください。

基本用語

[関数によるリスケール (Rescale by Function)] を説明する際によく使用される用語を、以下で定義します。

  • 現象 - モデル化されているアイテム (たとえば、鹿、住宅、道路、ショッピング センター)。
  • 優先度の値 - 現象が特定の場所の特徴を優先する度合いを示す値。
  • 基準 - 現象が反応する特徴 (たとえば、傾斜角、傾斜方向、道路からの距離、土地利用タイプなど)。
  • 適合性の値 - 優先度の値と同じ。ただし、優先度は、適合性モデルの文脈で使用される。
  • 評価スケール - 優先度または適合性の値を配置する相対的なスケール。通常、より高い評価値が割り当てられたセルは、解析される基準に関して、現象がより優先する特徴を持ちます。一般的な評価スケールには、1 〜 10、0 〜 1、1 〜 100 などがあります。
  • 適合性スケール - 評価スケールと同じです。
  • 連続的な値 - 相対的な意味を持つラスター内の値です。たとえば、海面から 100 メートル上にあるセルの高さは、200 メートルが割り当てられたセルの高さの 1/2 です。連続的なデータの例には、標高、オゾン濃度、適合性の値などがあります。
  • カテゴリの値 - 相対的な意味を持たないラスター内の値です。たとえば、あるセルの土地利用タイプ 4 は、別のセルに割り当てられた土地利用タイプ 8 の 1/2 ではありません。カテゴリ データの例には、土地利用タイプ、国名、郵便番号などがあります。
  • 連続的な出力スケール - 離散的なクラスを使用せずに、指定された範囲内の値が連続的に増加または減少します。一般に、連続的な値は、浮動小数点値で表されます。

データの変換

[関数によるリスケール (Rescale by Function)] ツールは、選択可能な数学関数 (Exponential、Power、Logarithm など) を使用して、連続的なデータのスケールを、指定された適合性スケールに変更します。入力データの変換は、概念的には、次の 2 つのステップで処理されます。まず、変換関数が適用され、次に、関数値が適合性スケール (通常は、1 〜 10) にマップされます。

変換関数の適用

指定した関数は、最小閾値から最大閾値までの範囲内にある値に適用されます。

変換されたデータのスケールの評価スケールへの変更

関数値が評価スケールにどのようにマップされるかを、以下のグラフに示します。

Power 関数の値を評価スケールに変換する例
Power 関数の値を評価スケールに変換する例

変換関数 (f(x)) の最小値と最大値のスケールは、評価スケールの最小値と最大値にそれぞれ変更されます。多くの関数は、単調です (つまり、連続的に増加または減少します)。その結果、最小閾値と最大閾値は、f(x) の最小値と最大値であるため、通常は評価スケールの最小値と最大値にマップされます。

前の例では、最小閾値と最大閾値は、入力データの最小値と最大値 (それぞれ、3,000 と 5,000) です。その結果、1 〜 10 の範囲の評価スケールでは、最小の入力値に 1 が割り当てられ、最大の入力値に 10 が割り当てられます。ただし、常にこのように割り当てる必要はありません。たとえば、Power 関数が同じ (3,000 〜 5,000 の範囲の) 入力データに適用され、下限が 3,500、上限が 4,500 に設定された場合、1 〜 10 の出力評価スケールでは、3,500 の入力値を持つセルの位置に 1 が割り当てられ、4,500 の入力値に 10 が割り当てられます。変換された他のすべての値は、これらの 2 つの値の間に収まります。最小閾値を下回る入力値と最大閾値を超える入力値には、ユーザーが指定した値が割り当てられます。

Gaussian 関数の値を評価スケールに変換する例
Gaussian 関数の値を評価スケールに変換する例

ただし、すべての関数が連続的に増加または減少するわけではありません。そのため、最小の入力値と最大の入力値が、必ず最小の評価値と最大の評価値にマップされるとは限りません。Gaussian 関数の場合、デフォルトでは、中点が関数の最大値 (最も優先される値) を決定する値になります。この関数値が、入力データの中点に設定されます。Gaussian 関数を適用すると、最小の入力値と最大の入力値を持つ位置では、最小の関数値 (f(x)) が生成されます。したがって、出力ラスター内の最小の入力値と最大の入力値を持つセルには、1 が割り当てられます。中点の値によって、最大の関数値 (f(x)) が生成されます。その結果、出力ラスターでは、この中点と同じ値の入力値を含むセルに 10 の値が割り当てられます。

Gaussian 関数は、マスデバリア属の蘭のうちの希少種に最も適した生息地を特定する適合性モデルに役立ちます。この蘭は、標高に対して敏感です。この蘭は、約 4,000 メートルの標高で最もよく成長します。これよりも標高が高くなると、この蘭にとって急に寒すぎる環境になり、これよりも標高が低くなると、この蘭にとって暑すぎる環境になります。この標高のスケールを変更する場合、4,000 メートルの値の優先度を最も高くし、その他の (低いか高い) 標高の優先度を最も低くします。

最小閾値よりも低いか最大閾値よりも高い任意の入力値を、[最小閾値に満たない場合の出力スケール] パラメーターと [最大閾値を超える場合の出力スケール] パラメーターを使用して目的の出力値 (評価スケールの範囲内または範囲外、あるいは NoData) に割り当てることができます。変換関数は、これらの位置には適用されません。

変換の定義

連続的な関数を定義する場合、主に考慮するべき以下の 2 つの方法があります。

  • デフォルト設定を使用します。

    関数が入力ラスターの最小値と最大値の間に合うように、形状制御パラメーター (下記の説明を参照) が計算されます。関数をデータに合わせるので、関数の形状はデータによって変わります。

  • 適合性を最も適切にモデル化する関数を選択します。

    関数の形状制御パラメーターを変更し、適合性を最も適切に反映するように関数の形状を微調整します。関数がデータに依存しないようにするには、入力データ値にかかわらず、基準値に対する現象の優先度に合わせて、最小閾値と最大閾値を適切な値に設定します。

変換関数のパラメーター

関数パラメーターのタイプ

各変換関数に関連付けられた、2 種類のパラメーターがあります。これらのパラメーターは、以下を制御します。

  1. 関数の形状

    このパラメーターの例は、[ベース ファクター][入力シフト]、および [中点] です。これらのパラメーターは、関数が増加または減少する傾き、関数の評価を開始する位置、関数内の遷移点を定義します。

  2. 適合性の評価スケールへの関数のマッピング

    このパラメーターの例は、[最小閾値] および [最大閾値を超える場合の出力スケール] です。

関数パラメーターの一般的な形式

各関数のパラメーターの一般的な形式と、それらの特徴を以下に示します。

  • 関数 ({形状パラメーター 1}、{形状パラメーター 2}、{形状パラメーター 3}、{最小閾値}、{最小閾値に満たない場合の出力スケール}、{最大閾値}、{最大閾値を超える場合の出力スケール})

各パラメーターの特徴

  1. 各関数は、形状制御パラメーターと、各閾値パラメーターで構成されます。
  2. 形状制御パラメーターの数は、変換関数によって異なります。ほとんどの関数は 2 つのパラメーターを持ちますが、3 つのパラメーターを持つ場合もあります。
  3. 閾値パラメーターは、すべての関数で一貫しています。
  4. 形状制御パラメーターのデフォルト値は、入力ラスターのデータ値を使用して計算されます。
  5. 関数のパラメーターの指定は、すべて任意です。
  6. [最小閾値に満たない場合の出力スケール] パラメーターと [最大閾値を超える場合の出力スケール] パラメーターには、数値 (倍精度) または「NoData」という文字列を指定できます。他のすべてのパラメーターのタイプは、倍精度数値です。

Exponential 関数の一般的な形式の例

上で説明した一般的な形式を特定の変換関数に適用する方法を示すために、[変換関数] を Exponential に設定した場合の各パラメーターを以下に示します。

  • Exponential ([入力シフト][ベース ファクター][最小閾値][最小閾値に満たない場合の出力スケール][最大閾値][最大閾値を超える場合の出力スケール])

[入力シフト][ベース ファクター] は、形状制御パラメーターです。[最小閾値][最小閾値に満たない場合の出力スケール][最大閾値]、および [最大閾値を超える場合の出力スケール] は、閾値パラメーターです。

デフォルトでは、データの最小値と最大値によって関数の最小閾値と最大閾値が定義されます。

ツール ダイアログ内の各パラメーターの相互関係

[入力ラスター] パラメーターの場合、[最小閾値] はラスターの最小値に設定され、[最大閾値] はラスターの最大値に設定され、形状制御パラメーター (たとえば、[入力シフト][ベース ファクター][中点]) は関数が [最小閾値][最大閾値] の間に最もよく合う (制約される) ように自動的に計算されます。

適合性スケールへの関数値のマッピングを制御する閾値パラメーターと関数の曲線を定義する形状制御パラメーターの間には、相互関係があります。たとえば、デフォルト値が決定されている場合、それよりも大きな値を [最大閾値] に入力できます。関連する形状制御パラメーター (たとえば、[入力シフト][ベース ファクター]) が再計算されて、ダイアログが更新されます。ただし、形状制御パラメーターのうちのいずれかに新しい値 (たとえば、新しい [ベース ファクター]) を入力した場合、適合性スケールへのマッピングを制御する関連する閾値パラメーターとの関係が絶たれ、その後、ユーザーによって制御されます。たとえば、Exponential 関数を使用し、[ベース ファクター] に新しい値を入力してから [最大閾値] を変更した場合、新しく入力された [ベース ファクター] は自動的に再計算されません。ツールは、指定された [ベース ファクター] を使用します。別の例として Linear 関数を使用した場合、デフォルトでは、[最大閾値][入力ラスター] の最大値に設定されます。これよりも大きな値を [最大閾値] に入力した場合、Linear 関数の[最大値] パラメーターが自動的に更新されます。ところが、[最大値] に新しい値を入力した場合、[最大閾値] を変更しても、[最大値] は変更されません。

このダイアログの相互関係によって、関数は、デフォルトでは、[入力ラスター] の最小値と最大値に初期設定された [最小閾値][最大閾値] の間に合わせられます。一方、独自の値を入力することによって、関数の形状を完全に制御して評価スケールにマップできます。

関数のパラメーターを変更したが、それをデフォルト値に戻したい場合、値を選択して削除してから、別のパラメーターのフィールドをクリックすると、空のパラメーターが再計算されて、デフォルト値に戻すことができます。たとえば、[ベース ファクター] に値を入力したが、その後、値を元に戻して、関数が [最小閾値][最大閾値] の間に合うようにする場合、[ベース ファクター] パラメーターの値を削除し、別のパラメーターのフィールドをクリックすると、関数が閾値の間に合うように [ベース ファクター] の新しい値が計算されます。

メモ:

MSSmall 関数と MSLarge 関数は、入力データセットの平均と標準偏差に依存しているため、この相互関係の動作には従いません。

関連トピック