Spatial Analyst クラス使用の概要

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

文字列よりクラスを使用した方が、パラメータの作成と管理がずっと簡単になります。パラメータにクラスを使用することには、次のような利点があります。

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

クラスの作成クラスのクエリクラス内の引数の変更Python でのクラスの使用方法

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

Spatial Analyst クラスの使用

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

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

読みやすくするために、クラスを変数に設定し、ツールではその変数を使用することをお勧めします。たとえば、次のような質問です。

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 PointsExtract by Rectangle など)は、一般に指定されたジオメトリによってデータを抽出します。

関連トピック

5/10/2014