Describe (arcpy)
Резюме
Функция Описать (Describe) возвращает объект Описать (Describe) с несколькими свойствами, например, тип данных, поля, индексы и многие другие. Свойства объекта являются динамическими, то есть в зависимости от описываемого типа данных доступны для использования различные свойства описания.
Свойства описания организованы в серии групп свойств. Любой определенный набор данных содержит свойства хотя бы одной из этих групп. Например, если описывается класс объектов базы геоданных, можно получить свойства из групп свойств GDB FeatureClass, FeatureClass, Table и Dataset. Все данные независимо от типа данных всегда получают общие свойства Описать объект (Describe Object).
Обсуждение
Многие типы данных содержат свойства из других групп свойства. Например, если описывается класс объектов базы геоданных, можно получить свойства из групп свойств GDB FeatureClass, FeatureClass, Table и Dataset.
В некоторых случаях объект, возвращаемый функцией Describe, не будет содержать все документированные свойства. Например, у объекта Describe для слоя в таблице содержания ArcMap не будет набора свойств слоя. Это свойство существует только при описании файла .lyr.
При попытке получить доступ к свойству, которого нет в объекте Describe, возникает ошибка или возвращается пустое значение (None, 0 или -1, пустая строка). Если вы не уверены в определенном свойстве, можно использовать функцию hasattr() Python для проверки.
Синтаксис
Параметр | Объяснение | Тип данных |
value |
Указанный элемент данных или объект геообработки для описания. | String |
Тип данных | Объяснение |
Describe |
Возвращает объект со свойствами, описывающие элемент данных. Некоторые возвращаемые свойства объекта будут содержать буквенные значения или объекты. |
Пример кода
Следующий автономный скрипт демонстрирует свойства объекта layer и 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(";")))