データの定義
ジオプロセシング ツールは、ジオデータベース フィーチャクラス、シェープファイル、ラスタ、テーブル、トポロジ、ネットワークなど、あらゆる種類のデータを操作します。個々のデータには特定のプロパティが設定されており、スクリプトの流れを制御するために使用されたり、ツールのパラメータとして使用されたりします。たとえば、[インターセクト(Intersect)] ツールの出力フィーチャ タイプは、インターセクト対象のデータの形状タイプ(ポイント、ライン、またはポリゴン)によって異なります。[インターセクト(Intersect)] ツールがスクリプト内で実行され、入力データセットのリストが渡された場合は、正しい出力形状タイプを設定できるように入力データセットの形状タイプを判別できることが必要です。Describe 関数を使用して、入力データセットすべての形状タイプを判別できます。
Describe 関数を使用すれば、データセットのプロパティを判別して処理方法の決定に使用できます。たとえば、次の例に示すスクリプトでは、Describe 関数を使用して入力データの形状タイプ(ポリライン、ポリゴン、ポイントなど)を評価し、適切なジオプロセシング ツールを判別しています。
import arcpy
inFC = arcpy.GetParameterAsText(0)
outFC = arcpy.GetParameterAsText(1)
# Describe a feature class
#
desc = arcpy.Describe(inFC)
# Get the shape type (Polygon, Polyline) of the feature class
#
type = desc.shapeType
# If the shapeType is Polygon convert the data to polylines
# using the FeatureToLine tool, otherwise just copy the
# data using the CopyFeatures tool.
#
if type == "Polygon":
arcpy.FeatureToLine_management(inFC, outFC)
else:
arcpy.CopyFeatures_management(inFC, outFC)
Describe 関数は、データ タイプ、フィールド、インデックスなどの複数のプロパティを含む Describe オブジェクトを返します。このプロパティは動的です。つまり、Describe 対象のデータ タイプに応じて、別々の Describe プロパティが使用可能になります。
Describe プロパティは、一連のプロパティ グループに編成されています。個々のデータセットは、これらのうち少なくとも 1 つのグループのプロパティを取得します。たとえば、ジオデータベース フィーチャクラスの Describe を実行する場合は、GDB FeatureClass、FeatureClass、Table、および Dataset の各プロパティ グループからのプロパティにアクセスできます。データ タイプにかかわらず、すべてのデータは常に汎用の Describe オブジェクト プロパティを取得します。
プロパティ セットの操作
一部のプロパティはプロパティ セットのメンバーです。たとえば、カバレッジの許容値やワークスペースの接続プロパティは、プロパティ セットとして返されます。プロパティ セットには名前付きのプロパティがあり、これらのプロパティはプロパティ セット自身から呼び出すことができます。次の例では、カバレッジの許容値(Fuzzy、Dangle、TicMatch、Edit、NodeSnap、Weed、Grain、および Snap)が標準出力に書き込まれます。
import arcpy
# Create a describe object from a coverage feature class
#
desc = arcpy.Describe("D:/St_Johns/covs/freshwater")
# Create a property set of coverage tolerances
#
covTols = desc.tolerances
# Print each coverage tolerance
#
print covTols.fuzzy
print covTols.dangle
print covTols.ticMatch
print covTols.edit
print covTols.nodeSnap
print covTols.weed
print covTols.grain
print covTols.snap
プロパティ セットは一般に、Describe 対象のオブジェクトのプロパティが変化する場合に使用されます。エンタープライズ ジオデータベース ワークスペースの接続プロパティ(サーバ、インスタンス、データベース、ユーザ、およびバージョン)は使用される ArcSDE データベースのタイプによって異なるので、定義済みの値のセットを持たないプロパティ セットに適しています。