摘要
可描述数据元素并返回包含多个属性(例如数据类型、字段、索引等)的 Describe 对象。 该对象的属性是动态的,这意味着根据所描述的数据类型,会有不同的描述属性可供使用。
Describe 属性被组织成一系列属性组。 任何特定数据集都将获取其中至少一个组的属性。 例如,如果要描述一个地理数据库要素类,您可访问地理数据库要素类、要素类、表和数据集属性组中的属性。 所有数据,不管是哪种数据类型,总会获取通用 Describe 对象属性。
说明
许多数据类型包括其他属性组中的属性。 例如,如果要描述一个地理数据库要素类,您可访问地理数据库要素类、要素类、表和数据集属性组中的属性。
请注意,arcpy.da.Describe 将返回相同的信息(但将作为字典)。
注:
在某些情况下,Describe 返回的对象并不包含为其记录的所有属性。 例如,地图中图层的 Describe 对象不会包含 layer 属性集。 只有在描述 .lyr 文件时,该属性才会存在。
如果试图访问 Describe 对象不具有的属性,会返回错误或空值(None、0 或 -1 或空字符串)。 如果您对特定属性不是很确定,可以使用 Python 的 hasattr() 函数进行检查。
- Describe 对象属性
- ArcInfo Workstation 项目属性
- ArcInfo Workstation 表属性
- 属性规则属性
- BIM 文件工作空间属性
- CAD 工程图数据集属性
- CAD 要素类属性
- Coverage 要素类属性
- Coverage 属性
- 数据集属性
- dBASE 表属性
- 编辑者追踪属性
- 要素类属性
- 字段组属性
- 文件属性
- 文件夹属性
- 地理数据库要素类属性
- 地理数据库表属性
- 几何网络属性
- 地统计图层属性
- LAS 数据集属性
- 图层属性
- Location Referencing 数据集属性
- 地图文档属性
- 镶嵌数据集属性
- Network Analyst 图层属性
- 网络数据集属性
- 宗地结构属性
- ArcMap 宗地结构属性
- 投影文件属性
- 栅格波段属性
- 栅格目录属性
- 栅格数据集属性
- 记录集和要素集属性
- 关系类属性
- 制图表达类属性
- 逻辑示意图数据集属性
- 逻辑示意图属性
- 逻辑示意图文件夹属性
- SDC 要素类属性
- Shapefile 要素类属性
- 表属性
- 表视图属性
- 文本文件属性
- Tin 属性
- 工具属性
- 工具箱属性
- 拓扑属性
- 追踪网络属性
- 公共设施网络属性
- VPF Coverage 属性
- 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 exist, 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 will be described. (默认值为 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(";"))))