データの定義

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

# 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 データベースのタイプによって異なるので、定義済みの値のセットを持たないプロパティ セットに適しています。

関連トピック

9/14/2013