Spatial Analyst クラス

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

クラスはオブジェクトの作成に使用でき、よくインスタンスと呼ばれます。 オブジェクトをインスタンス化すると、そのプロパティとメソッドを使用できます。 近傍クラスやリマップ クラスなどの Spatial Analyst クラスは、ジオプロセシング ツールのパラメーターを実行するためのショートカットとしてよく使用されます。Spatial Analyst クラスを使用しない場合、これらのパラメーターに対応する文字列はより複雑なものになります。

文字列でパラメーターを作成するよりも、クラスで作成および管理するほうがはるかに簡単です。 パラメーターにクラスを使用することには、次のような利点があります。

  • クラスは、パラメーターの多様な引数に対するヘルプとオートコンプリート機能を提供します。
  • 結果オブジェクトから、パラメーターの個々の引数をクエリできます。
  • クラスの個々の引数を変更して、さらに解析することができます。

マップ代数演算における Spatial Analyst クラスの使用の詳細については、以下をご参照ください。

クラスを使用すると簡単に実装できるアプリケーションの例を以下に示します。

  • クラス タイプまたは個々の引数値の判定:

    たとえば、入力半径タイプと検索距離をクエリすると、IDW 内挿法に適用する乗数値がわかります。

  • 入力値の変更:

    たとえば、フォーラムでの公開された入力に基づいて、適合性モデルの入力再分類値を変更して、リマップ テーブルを再作成せずに、さまざまなシナリオの出力への影響を調べることができます。

  • 感度解析の実行:

    たとえば、適合性モデルのリマップ テーブルで、[終了][開始] の値を 5 パーセントずつ増やしながら何度も変更することで、入力条件のわずかな変更が出力にどのような影響するかを調べることができます。

  • エラー解析の実行:

    たとえば、パラメーターの引数をランダムに変更しながらモデルを複数回実行し、データのエラーや不確実性に対する影響を調べることができます。

Spatial Analyst クラスの使用

Spatial Analyst ジオプロセシング ツールの一部のパラメーターは、入力としてクラス オブジェクトを使用します。 通常、パラメーターは、単純な文字列、データセット名、パス、キーワード、フィールド名、許容値、およびドメイン名として定義されます。 パラメーターの中には、一連のプロパティまたは値を定義する複雑なパラメーターもあります。 長く複雑なテキスト文字列を使用してこれらのパラメーターを定義する代わりに、クラス (近隣テーブル、リマップ テーブルなど) を使用できます。 クラス コンストラクターの入力要件を理解すると、クラス オブジェクトの作成、クエリ、変更、保存が容易になります。

Spatial Analyst クラスの引数として使用される入力には、次のさまざまなタイプがあります。

  • スカラー
  • 文字列
  • Python リストまたはリストのリスト
  • その他のクラス

読みやすくするために、クラスを変数に設定し、その変数をツールで使用することをお勧めします。 例:

Neighborhood = NbrRectangle(5, 5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MEAN")

ただし、クラスをツールのパラメーター内に定義することもできます。

outRas = FocalStatistics("inRas", NbrRectangle(5, 5, "MAP"), "MEAN")

固定数の入力で作成したクラス

クラスの中には、固定数の単純なスカラーまたは文字列引数で構成されているクラスもあります。 たとえば、5 マップ単位の半径で円形の近傍を作成する場合、次のようになります。

Neighborhood = NbrCircle(5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MAXIMUM")

次の各クラスは、入力引数の位置が事前に指定されています。 これらのクラスは、処理するツール パラメーターに基づいてグループ化できます。

Python リストを使用して作成したクラス

TopoBoundaryTopoLake、および TopoStream クラスなど、もっと複雑なクラスもあります。 これらには複数の入力が必要で、[トポ → ラスター (Topo to Raster)] ツールのパラメーターに使用されます。 複数の入力は Python リストを使って定義され、リストへの入力の数は状況によって (言い換えると、解析に必要な入力の数) によって変わります。

たとえば、TopoBoundary クラス コンストラクターは、1 つ以上の inFeature 入力を含むリストを想定しています。 この inFeatures として識別されるリストは、結果オブジェクトのプロパティになります。 inFeatures リスト内のアイテムをクエリまたは操作するには、リスト内のエントリとしてそれぞれを処理する必要があります (「クラスのクエリ」をご参照ください)。

inBoundary = TopoBoundary(["inBound1.shp", "inBound2.shp"])

リスト内のリストで作成したクラス

他のツールでは、特定の状況によって、パラメーターに入力されるエントリ数が決まります。 このタイプの入力パラメーターは、リスト内のリストを使用して作成されたクラスから生成されます。 リスト内のリストからクラスが作成されるツールとしては、次の 3 つのグループがあります。

たとえば、リマップ クラスは入力にテーブルを想定しています。 テーブルは、startValue、endValue、および分類される newValue を示すレコードのリストによってモデル化されます。 テーブルは、結果オブジェクトのプロパティになります。 テーブル入力をクエリまたは操作するには、リスト内のリストにあるエントリとして処理する必要があります (「クラスのクエリ」をご参照ください)。

# Usage: RemapRange([[startValue, endValue, newValue],...])
myRemapRange = RemapRange([[-3, -1.75, 1], [-1.75, -0.5, 2], [-0.5, 0.75, 3], 
                           [0.75, 2, 4], [2, 3.25, 5], [3.25, 4.5, 6],
                           [4.5, 5.75, 7], [5.75, 7, 8]])
outReclassRR = Reclassify("inRas", "VALUE", myRemapRange)

リスト内の一連のクラスから作成されたクラス

ツールの中には、一連のクラスが入力として必要なクラス パラメーターを使用するツールもあります。 クラスはリスト内で構成されます。 リスト内の一連のクラスを必要とするツール ([ポイントで抽出 (Extract by Points)][長方形で抽出 (Extract by Rectangle)] など) は、一般に指定されたジオメトリによってデータを抽出します。

関連トピック


このトピックの内容
  1. Spatial Analyst クラスの使用