Describe
サマリ
Describe 関数は、データ タイプ、フィールド、インデックスなどの複数のプロパティを含む Describe オブジェクトを返します。このプロパティは動的です。つまり、Describe 対象のデータ タイプに応じて、別々の Describe プロパティが使用可能になります。
Describe プロパティは、一連のプロパティ グループに編成されています。個々のデータセットは、これらのうち少なくとも 1 つのグループのプロパティを取得します。たとえば、ジオデータベース フィーチャクラスの Describe を実行する場合は、GDB FeatureClass、FeatureClass、Table、および Dataset の各プロパティ グループからのプロパティにアクセスできます。データ タイプにかかわらず、すべてのデータは常に汎用の Describe オブジェクト プロパティを取得します。
説明
多くのデータ タイプは、他のプロパティ グループのプロパティを含んでいます。たとえば、ジオデータベース フィーチャクラスの Describe を実行する場合は、GDB FeatureClass、FeatureClass、Table、および Dataset の各プロパティ グループのプロパティにアクセスできます。
Describe が返すオブジェクトに、ドキュメント化されたプロパティのすべてが含まれていない場合があります。たとえば、ArcMap のコンテンツ ウィンドウでは、レイヤの Describe オブジェクトにレイヤ プロパティ セットが含まれません。このプロパティは、*.lyr ファイルの説明を定義する場合にのみ存在します。
Describe オブジェクトに存在しないプロパティにアクセスを試みると、エラーがスローされるか、空の値(None、0 または -1、空の文字列)が返されます。特定のプロパティが存在するかどうか不明の場合は、Python の hasattr() 関数を使用して確認できます。
構文
パラメータ | 説明 | データ タイプ |
value |
The specified data element or geoprocessing object to describe. | String |
データ タイプ | 説明 |
Describe |
対象データ エレメントの詳細を示すプロパティを持つオブジェクトを返します。返されるオブジェクトのプロパティには、リテラル値またはオブジェクトを含むものがあります。 |
コードのサンプル
次のスタンドアロン スクリプトは、スクリプトのパラメータで設定されたレイヤから、レイヤおよび Describe オブジェクトのプロパティを表示します。パラメータは、*.lyr ファイルまたは ArcMap のレイヤのいずれかに設定されます。
import arcpy # Get the layer as a parameter and describe it. # # The layer could be a layer in ArcMap (like "some_layer") # Or, it could be a .lyr file (like "C:/data/some.lyr") # layerString = arcpy.GetParameterAsText(0) desc = arcpy.Describe(layerString) # Print selected layer and describe object properties # print "Name:", desc.name if hasattr(desc, "layer"): print "Layer name:", desc.layer.name print "Layer data source:", desc.layer.catalogPath print ".lyr file:", desc.catalogPath else: print "Layer name:", desc.name print "Layer data source:", desc.catalogPath if desc.fidSet != '': print "Number of selected features:", str(len(desc.fidSet.split(";")))