Describe

Краткая информация

Функция Describe возвращает объект Describe с несколькими свойствами, например, тип данных, поля, индексы и многие другие. Свойства объекта являются динамическими, то есть в зависимости от описываемого типа данных доступны для использования различные свойства описания.

Свойства описания организованы в серии групп свойств. Любой определенный набор данных содержит свойства хотя бы одной из этих групп. Например, если описывается класс объектов базы геоданных, можно получить свойства из групп свойств GDB FeatureClass, FeatureClass, Table и Dataset. Все данные независимо от типа данных всегда получают общие свойства Describe Object.

Обсуждение

Многие типы данных содержат свойства из других групп свойств. Например, если описывается класс объектов базы геоданных, можно получить свойства из групп свойств GDB FeatureClass, FeatureClass, Table и Dataset.

Также см. arcpy.da.Describe, который возвращает ту же информацию, но в виде словаря.

Примечание:

В некоторых случаях объект, возвращаемый функцией Describe, не будет содержать все имеющиеся свойства. Например, объект Describe для слоя карты не будет содержать набор свойств layer. Это свойство существует только при описании файла .lyr.

При попытке получить доступ к свойству, которого нет в объекте Describe, возникает ошибка или возвращается пустое значение (None, 0 или -1, пустая строка). Если вы не уверены в определенном свойстве, можно использовать функцию Python hasattr() для проверки.

Синтаксис

Describe (value, {datatype})
ПараметрОписаниеТип данных
value

Указанный элемент данных или объект геообработки для описания.

String
datatype

Тип данных. Это необходимо только в случае, когда существуют конфликты имен, например, если база геоданных содержит одноименные набор классов объектов (FeatureDataset) и класс пространственных объектов (FeatureClass). В этом случае тип данных используется, чтобы указать, какой именно набор данных вы желаете описать.

(Значение по умолчанию — None)

String
Возвращаемое значение
Тип данныхОписание
Describe

Возвращает объект со свойствами, описывающие элемент данных. Некоторые возвращаемые свойства объекта будут содержать буквенные значения или объекты.

Пример кода

Пример свойств объекта 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(";"))))