Schema

摘要

数据集的 schema。

说明

类型为要素类、表、栅格或工作空间的每个输出参数都具有 Schema 对象。只有输出要素类、表、栅格和工作空间具有 schema,其他类型则没有。将在地理处理工具验证中创建 Schema 对象。可以通过参数对象访问此方案,或者设置规则以便描述工具的输出。在验证中设置方案规则之后,地理处理内部验证代码会检查设置的规则并更新输出的描述。

了解有关 Schema 对象的详细信息

属性

属性说明数据类型
additionalChildren
(可读写)

要添加到工作空间方案的数据集的 Python 列表

String
additionalFields
(可读写)

指示字段属性的附加字段。除了通过 fieldsRule 应用添加的字段以外,还可向输出添加其他字段。

Field
cellSize
(可读写)

当 cellSizeRule 为 AsSpecified 时,将该属性设置为要使用的像元大小。

Double
cellSizeRule
(可读写)

定义输出栅格或格网的像元大小。

  • AsSpecified输出像元大小在 cellSize 属性中指定。
  • FirstDependency像元大小由第一个依存参数进行计算。如果依存参数是栅格,就会使用它的像元大小。对于其他类型的依存参数,例如要素类或要素数据集,数据范围用于计算像元大小。如果第一个依存参数为多值(值列表),则会使用多值列表中的第一个值。
  • Max依存参数的最大像元大小。
  • Min依存参数的最小像元大小。
  • Environment根据像元大小环境设置计算出的像元大小。
String
clone
(可读写)

如果为真,则精确复制(克隆)第一个依存参数中的描述。默认值为 False。

Boolean
extent
(可读写)

当 extentRule 为 AsSpecified 时,将该属性设置为要使用的范围。可使用以空格分隔的字符串或者使用含有四个值的 Python 列表对象来设置范围。顺序为 xmin、ymin、xmax、ymax。

Extent
extentRule
(可读写)

指示管理范围属性的方式。

  • AsSpecified输出范围将在 Extent 属性中进行指定。
  • FirstDependency输出范围与第一个依存参数相同。如果第一个依存参数为多值(值列表),则会使用多值列表中的第一个值。
  • Intersection输出范围将是所有依存参数的几何交集。
  • Union输出范围将是所有依存参数的几何并集。
  • Environment输出范围将基于输出范围环境设置进行计算。
String
featureType
(可读写)

当 featureTypeRule 为 AsSpecified 时,FeatureType 中的值用于指定输出的要素类型。

  • Simple输出将包含简单要素。要素的几何类型通过 geometryTypeRule 指定。
  • Annotation输出将包含注记要素。
  • Dimension输出将包含尺寸要素。
String
featureTypeRule
(可读写)

该设置用于确定输出要素类的要素类型。此规则对输出栅格或输出表不起作用。

  • AsSpecified要素类型将通过 featureType 属性确定。
  • FirstDependency要素类型将与依赖项中的第一个参数相同。如果第一个依存参数为多值(值列表),则会使用多值列表中的第一个值。
String
fieldsRule
(可读写)

用于确定将在输出要素类或输出表上存在的字段。

  • None除对象 ID 以外,将不输出任何字段。
  • FirstDependency输出字段将与第一个依存参数相同。如果第一个依存参数为多值(值列表),则会使用多值列表中的第一个值。
  • FirstDependencyFIDs只有第一个依存输入的 ObjectID 会写入到输出中。
  • All将输出依存参数列表中的所有字段。
  • AllNoFIDs除 ObjectID 以外的所有字段都将写入到输出中。
  • AllFIDsOnly所有 ObjectID 字段都将写入到输出中,但是输入中的其他字段不会写入。
String
geometryType
(可读写)

当 geometryTypeRule 为 AsSpecified 时,将该属性设置为要使用的几何类型(Point、Multipoint、Polyline 或 Polygon)。

String
geometryTypeRule
(可读写)

该设置用于确定输出要素类的几何类型(例如点或面)。

  • Unknown这是默认设置。通常,应该能够根据其他参数值确定 updateParameters() 中的几何类型。如果没有足够的信息用于确定几何类型(例如在 initializeParameters() 中),只需将规则设置为 Unknown 即可。
  • FirstDependency几何类型与第一个依存参数相同。如果第一个依存参数为多值(值列表),则会使用多值列表中的第一个值。
  • Max检查所有依存参数的几何,并将输出几何类型设置为找到的最大类型。
  • Min检查所有依存参数的几何,并将输出几何类型设置为找到的最小类型。
  • AsSpecified几何类型将通过 geometryType 属性的值确定。
String
rasterFormatRule
(可读写)

该属性确定输出栅格格式,GRID 或 Img。默认值为 Img,它是 ERDAS IMAGINE 格式。

String
rasterRule
(可读写)

该属性将确定输出栅格中包含的数据类型(整型或浮点型)。

  • FirstDependency数据类型(整型或浮点型)与第一个依存参数相同。如果第一个依存参数为多值(值列表),则会使用多值列表中的第一个值。
  • Max如果有包括整型和浮点型的依存参数,则 Max 会创建浮点型输出。
  • Min如果有包括整型和浮点型的依存参数,则 Min 会创建整型输出。
  • Integer输出栅格包含整型。
  • Float输出栅格包含浮点型。
String
type
(只读)

方案类型:“要素”、“表”、“栅格”、“容器”(针对工作空间和要素数据集)。

String

代码示例

Schema 示例 1

ToolValidator 类中,将输出参数的 schema 设置为第一个输入参数。

def initializeParameters(self):
    # Set the dependencies for the output and its schema properties. The two 
    # input parameters are feature classes.
    self.params[2].parameterDependencies = [0, 1]
    # Feature type, geometry type, and fields all come from the first dependency 
    # (parameter 0), the input features.
    self.params[2].schema.featureTypeRule = "FirstDependency"
    self.params[2].schema.geometryTypeRule = "FirstDependency"
    self.params[2].schema.fieldsRule = "FirstDependency"
    # The extent of the output is the intersection of the input features and 
    # the clip features (parameter 1).
    self.params[2].schema.extentRule = "Intersection"
    return
Schema 示例 2

可以使用 GetParameterInfo 函数查询特定工具输出参数的方案。

import arcpy
toolname = "Buffer_analysis"
parameter_index = 1
# Get the schema of the tool parameter
schema = arcpy.GetParameterInfo(toolname)[parameter_index].schema
properties = ['additionalChildren', 'additionalFields', 'cellSize',
              'cellSizeRule', 'clone', 'extent', 'extentRule',
              'featureType', 'featureTypeRule', 'fieldsRule',
              'geometryType', 'geometryTypeRule', 'rasterFormatRule',
              'rasterRule', 'type']
# Walk through all schema properties and print out the value
for prop in properties:
    try:
        val = eval("schema." + prop)
        print("{:<18} : {}".format(prop, val))
    except (NameError, RuntimeError):
        # Properties unsupported by the parameter datatype will be ignored
        pass

相关主题