Describe
Краткая информация
Описывает элемент данных и возвращает объект Describe с несколькими свойствами, например, тип данных, поля, индексы и многие другие. Свойства объекта являются динамическими, то есть в зависимости от описываемого типа данных доступны для использования различные свойства описания.
Свойства описания организованы в серии групп свойств. Любой определенный набор данных содержит свойства хотя бы одной из этих групп. Например, если описывается класс объектов базы геоданных, можно получить свойства из групп свойств Класс объектов базы геоданных, Класс объектов, Таблица и Набор данных. Все данные независимо от типа данных всегда получают общие свойства Describe.
Обсуждение
Многие типы данных содержат свойства из других групп свойства. Например, если описывается класс объектов базы геоданных, можно получить свойства из групп свойств Класс объектов базы геоданных, Класс объектов, Таблица и Набор данных.
Также см. arcpy.da.Describe, который возвращает ту же информацию, но в виде словаря.
Примечание:
В некоторых случаях объект, возвращаемый функцией Describe, не будет содержать все имеющиеся свойства. Например, объект Describe для слоя карты не будет содержать набор свойств layer. Это свойство существует только при описании файла .lyr.
При попытке получить доступ к свойству, которого нет в объекте Describe, возникает ошибка или возвращается пустое значение (None, 0 или -1, пустая строка). Если вы не уверены в определенном свойстве, можно использовать функцию Python hasattr() для проверки.
Синтаксис
Describe(value, {data_type})
| Параметр | Объяснение | Тип данных |
|---|---|---|
|
value |
The specified data element or geoprocessing object to describe. |
String |
|
data_type |
The type of data. This is only necessary when naming conflicts exist, for example, if a geodatabase contains a feature dataset ( (Значение по умолчанию — None) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Describe |
Возвращает объект со свойствами, описывающие элемент данных. Некоторые возвращаемые свойства объекта будут содержать буквенные значения или объекты. |
Пример кода
Следующий автономный скрипт демонстрирует свойства объекта layer и 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(";"))))