概要
Describe 関数は、データ タイプ、フィールド、インデックスなどの複数のプロパティを含む Describe オブジェクトを返します。 このプロパティは動的です。つまり、Describe 対象のデータ タイプに応じて、別々の Describe プロパティが使用可能になります。
Describe プロパティは、一連のプロパティ グループに編成されています。 個々のデータセットは、これらのうち少なくとも 1 つのグループのプロパティを取得します。 たとえば、ジオデータベース フィーチャクラスの Describe を実行する場合は、GDB FeatureClass、FeatureClass、Table、および Dataset の各プロパティ グループからのプロパティにアクセスできます。 データ タイプに関係なく、すべてのデータは常に汎用の Describe オブジェクト プロパティを取得します。
ディスカッション
多くのデータ タイプは、他のプロパティ グループのプロパティを含んでいます。 たとえば、ジオデータベース フィーチャクラスの Describe を実行する場合は、GDB FeatureClass、FeatureClass、Table、および Dataset の各プロパティ グループのプロパティにアクセスできます。
arcpy.da.Describe をご参照ください。これは、同じ情報をディクショナリとして返します。
メモ:
Describe が返すオブジェクトに、ドキュメント化されたプロパティのすべてが含まれていない場合があります。 たとえば、マップ内のレイヤーの Describe オブジェクトには、layer プロパティ セットが含まれません。 そのプロパティは、.lyr ファイルを説明する場合のみ存在します。
Describe オブジェクトに存在しないプロパティにアクセスしようとすると、エラーが返されるか、空の値 (None、0 または -1、空の文字列) が返されます。 特定のプロパティがわからない場合は、Python の hasattr() 関数を使用して確認できます。
- Describe オブジェクト プロパティ
- ArcInfo Workstation アイテム プロパティ
- ArcInfo Workstation テーブル プロパティ
- 属性ルール プロパティ
- CAD ドローイング データセット プロパティ
- CAD フィーチャクラス プロパティ
- カバレッジ フィーチャクラス プロパティ
- カバレッジ プロパティ
- データセット プロパティ
- dBASE テーブル プロパティ
- 編集情報の記録プロパティ
- フィーチャクラス プロパティ
- フィールド グループ プロパティ
- ファイル プロパティ
- フォルダー プロパティ
- GDB フィーチャクラス プロパティ
- GDB テーブル プロパティ
- ジオメトリック ネットワーク プロパティ
- Geostatistical レイヤー プロパティ
- LAS データセット プロパティ
- レイヤー プロパティ
- マップ ドキュメント プロパティ
- モザイク データセット プロパティ
- Network Analyst レイヤー プロパティ
- ネットワーク データセット プロパティ
- パーセル ファブリック データセット プロパティ
- パーセル ファブリック プロパティ
- Prj ファイル プロパティ
- ラスター バンド プロパティ
- ラスター カタログ プロパティ
- ラスター データセット プロパティ
- RecordSet および FeatureSet プロパティ
- RelationshipClass プロパティ
- RepresentationClass プロパティ
- スケマティック データセット プロパティ
- スケマティック ダイアグラム プロパティ
- スケマティック フォルダー プロパティ
- SDC フィーチャクラス プロパティ
- シェープファイル フィーチャクラス プロパティ
- テーブル プロパティ
- TableView プロパティ
- テキスト ファイル プロパティ
- TIN プロパティ
- ツール プロパティ
- ツールボックス プロパティ
- トポロジ プロパティ
- トレース ネットワーク プロパティ
- ユーティリティ ネットワーク プロパティ
- VPF カバレッジ プロパティ
- VPF フィーチャクラス プロパティ
- VPF テーブル プロパティ
- ワークスペース プロパティ
構文
Describe (value, {datatype})
パラメーター | 説明 | データ タイプ |
value | The specified data element or geoprocessing object to describe. | String |
datatype | The type of data. This is only necessary when naming conflicts exists, for example, if a geodatabase contains a feature dataset (FeatureDataset) and a feature class (FeatureClass) with the same name. In this case, the data type is used to clarify which dataset you want to describe. (デフォルト値は次のとおりです None) | String |
データ タイプ | 説明 |
Describe | 対象データ エレメントの詳細を示すプロパティを持つオブジェクトを返します。 返されるオブジェクトのプロパティには、リテラル値またはオブジェクトを含むものがあります。 |
コードのサンプル
次のスタンドアロン スクリプトは、スクリプトのパラメーターで設定されたレイヤーから、レイヤーおよび Describe オブジェクトのプロパティを表示します。 パラメーターは、レイヤー ファイルまたはマップ内のレイヤーのいずれかに設定できます。
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: {}".format(desc.name))
if hasattr(desc, "layer"):
print("Layer name: {}".format(desc.layer.name))
print("Layer data source: {}".format(desc.layer.catalogPath))
print(".lyr file: {}".format(desc.catalogPath))
else:
print("Layer name: {}".format(desc.name))
print("Layer data source: {}".format(desc.catalogPath))
if desc.FIDSet != '':
print("Number of selected features: {}".format(len(desc.FIDSet.split(";"))))