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")
これら各クラスは、入力引数の位置が事前に決定されています。これらのクラスは、処理するツール パラメーターに基づいてグループ化できます。
- ファジー クラス
FuzzyGaussian、FuzzyLarge、FuzzyLinear、FuzzyMSLarge、FuzzyMSSmall、FuzzyNear、FuzzySmall
- 水平方向ファクター クラス
- クリギング モデル クラス
- 近傍クラス
NbrAnnulus、NbrCircle、NbrIrregular、NbrRectangle、NbrWedge、NbrWeight
- 半径クラス
- 時間クラス
TimeWithinDay、TimeSpecialDays、TimeMultipleDays、TimeWholeYear
- 変換関数クラス
TfExponential、TfGaussian、TfLarge、TfLinear、TfLogarithm、TfLogisticDecay、TfLogisticGrowth、TfMSLarge、TfMSSmall、TfNear、TfPower、TfSmall、TfSymmetricLinear
- 垂直方向ファクター クラス
VfBinary、VfLinear、VfSymLinear、VfInverseLinear、VfSymInverseLinear、VfCos、VfSec、VfCosSec、VfSecCos、VfTable
Python リストを使用して作成したクラス
TopoBoundary、TopoLake、および TopoStream クラスなど、もっと複雑なクラスもあります。これらには複数の入力が必要で、[トポ → ラスター (Topo to Raster)] ツールのパラメーターに使用されます。複数の入力は Python リストを使って定義され、リストへの入力の数は状況によって (言い換えると、解析に必要な入力の数) によって変わります。
たとえば、TopoBoundary クラス コンストラクターは、1 つ以上の inFeature 入力を含むリストを想定しています。この inFeatures として識別されるリストは、結果オブジェクトのプロパティになります。inFeatures リスト内のアイテムをクエリまたは操作するには、リスト内のエントリとしてそれぞれを処理する必要があります (「クラスのクエリ」をご参照ください)。
inBoundary = TopoBoundary(["inBound1.shp", "inBound2.shp"])
リスト内のリストで作成したクラス
特定の状況によってパラメーターに入力される入力エントリの数が決まるツールもあります。この種の入力パラメーターは、リスト内のリストで作成されたクラスから生成されます。リスト内のリストからクラスが作成されるツールとしては、次の 3 つのグループがあります。
- 再分類テーブル (RemapRange、RemapValue)
- 加重再分類テーブル (オーバーレイおよび合計) (WOTable、WSTable)
- Topo クラス (サブセット) (TopoContour、TopoPointElevation、TopoSink)
たとえば、リマップ クラスは入力としてテーブルを想定しています。テーブルは、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 など) は、一般に指定されたジオメトリによってデータを抽出します。