Краткая информация
Функция 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 Object
- ArcInfo Workstation Свойства Item
- ArcInfo Workstation Свойства Table
- Свойства Attribute Rule
- Свойства CAD Drawing Dataset
- Свойства CAD FeatureClass
- Свойства Coverage FeatureClass
- Свойства Coverage
- Свойства Dataset
- Свойства dBASE Table
- Свойства Editor Tracking
- Свойства FeatureClass
- Свойства Field Group
- Свойства File
- Свойства Folder
- Свойства GDB FeatureClass
- Свойства GDB Table
- Свойства Geometric Network
- Свойства Geostatistical Layer
- Свойства LAS Dataset
- Свойства Layer
- Свойства Map Document
- Свойства Mosaic Dataset
- Network AnalystСвойства Layer
- Свойства Network Dataset
- Свойства Parcel Fabric Dataset
- Свойства Parcel Fabric
- Свойства Prj File
- Свойства Raster Band
- Свойства Raster Catalog
- Свойства Raster Dataset
- Свойства RecordSet и FeatureSet
- Свойства RelationshipClass
- Свойства RepresentationClass
- Свойства Schematic Dataset
- Свойства Schematic Diagram
- Свойства Schematic Folder
- Свойства SDC FeatureClass
- Свойства Shapefile FeatureClass
- Свойства Table
- Свойства TableView
- Свойства Text File
- Свойства Tin
- Свойства Tool
- Свойства Toolbox
- Свойства Topology
- Свойства Trace Network
- Свойства Utility Network
- Свойства VPF Coverage
- Свойства VPF FeatureClass
- Свойства VPF Table
- Свойства Workspace
Синтаксис
Describe (value, {datatype})
Параметр | Описание | Тип данных |
value | Указанный элемент данных или объект геообработки для описания. | String |
datatype | Тип данных. Это необходимо только в случае, когда существуют конфликты имен, например, если база геоданных содержит одноименные набор классов объектов (FeatureDataset) и класс пространственных объектов (FeatureClass). В этом случае тип данных используется, чтобы указать, какой именно набор данных вы желаете описать. (Значение по умолчанию — 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(";"))))