データの定義
ジオプロセシング ツールは、ジオデータベース フィーチャクラス、シェープファイル、ラスタ、テーブル、トポロジ、ネットワークなど、あらゆる種類のデータを操作します。個々のデータには特定のプロパティが設定されており、スクリプトの流れを制御するために使用されたり、ツールのパラメータとして使用されたりします。たとえば、[インターセクト(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 データベースのタイプによって異なるので、定義済みの値のセットを持たないプロパティ セットに適しています。