ジオプロセシング ツールは、ジオデータベース フィーチャクラス、シェープファイル、ラスター、テーブル、トポロジ、ネットワークなど、あらゆる種類のデータを操作します。個々のデータには特定のプロパティが設定されており、スクリプトの流れを制御するために使用されたり、ツールのパラメーターとして使用されたりします。たとえば、[インターセクト (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 オブジェクト プロパティを取得します。
- Describe オブジェクト プロパティ
- ArcInfo Workstation アイテム プロパティ
- ArcInfo Workstation テーブル プロパティ
- CAD ドローイング データセット プロパティ
- CAD フィーチャクラス プロパティ
- Cadastral Fabric プロパティ
- カバレッジ フィーチャクラス プロパティ
- カバレッジ プロパティ
- データセット プロパティ
- dBASE テーブル プロパティ
- エディター トラッキング プロパティ
- フィーチャクラス プロパティ
- ファイル プロパティ
- フォルダー プロパティ
- GDB フィーチャクラス プロパティ
- GDB テーブル プロパティ
- ジオメトリック ネットワーク プロパティ
- LAS データセット プロパティ
- レイヤー プロパティ
- マップ ドキュメント プロパティ
- モザイク データセット プロパティ
- Network Analyst レイヤー プロパティ
- ネットワーク データセット プロパティ
- Prj ファイル プロパティ
- ラスター バンド プロパティ
- ラスター カタログ プロパティ
- ラスター データセット プロパティ
- RecordSet および FeatureSet プロパティ
- RelationshipClass プロパティ
- RepresentationClass プロパティ
- スケマティック データセット プロパティ
- スケマティック ダイアグラム プロパティ
- スケマティック フォルダー プロパティ
- SDC フィーチャクラス プロパティ
- シェープファイル フィーチャクラス プロパティ
- テーブル プロパティ
- TableView プロパティ
- テキスト ファイル プロパティ
- TIN プロパティ
- ツール プロパティ
- ツールボックス プロパティ
- トポロジ プロパティ
- VPF カバレッジ プロパティ
- VPF フィーチャクラス プロパティ
- VPF テーブル プロパティ
- ワークスペース プロパティ
プロパティ セットの操作
一部のプロパティはプロパティ セットのメンバーです。たとえば、カバレッジの許容値やワークスペースの接続プロパティは、プロパティ セットとして返されます。プロパティ セットには名前付きのプロパティがあり、これらのプロパティはプロパティ セットから呼び出すことができます。次の例では、カバレッジの許容値 (fuzzy、dangle、ticMatch、edit、nodeSnap、weed、grain、および snap) が標準出力に書き込まれます。
import arcpy
# Describe 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 データベースのタイプによって異なるので、定義済みの値のセットを持たないプロパティ セットに適しています。