Skip to main content

Schema

汇总

数据集的 schema。

讨论

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

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

属性

名称 说明 数据类型

additionalChildren

(读取和写入)

将添加到工作空间方案的数据集的列表。

String

additionalFields

(读取和写入)

将由该工具创建的其他字段。 这些字段是应用 fieldsRule 属性添加的字段之外的字段。

Field

cellSize

(读取和写入)

输出的像元大小。 当 cellSizeRule 属性值为 AsSpecified 时,使用此属性。

Double

cellSizeRule

(读取和写入)

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

  • AsSpecified—输出像元大小将使用 cellSize 属性指定。

  • FirstDependency—像元大小将根据第一个依赖参数进行计算。 如果依赖参数是栅格,则将使用栅格的像元大小。 对于其他类型的依赖参数,例如要素类或要素数据集,数据范围将用于计算像元大小。 如果第一个依赖参数为多值(值列表),则会使用第一个值。

  • Max—将使用依赖参数的最大像元大小。

  • Min—将使用依赖参数的最小像元大小。

  • Environment—将根据 像元大小 环境计算像元大小。

String

clone

(读取和写入)

指定是否使用第一个依赖参数中的描述的精确复制(克隆)。 默认值为 False

Boolean

extent

(读取和写入)

extentRule 属性值为 AsSpecified 时将使用的范围。 可以使用空格分隔的字符串或具有四个值的列表来设置范围。 顺序为最小 x 值、最小 y 值、最大 x 值和最大 y 值。

Extent

extentRule

(读取和写入)

指定如何管理 extent 属性。

  • AsSpecified—输出范围将在 extent 属性中指定。

  • FirstDependency—输出范围将与第一个依赖参数相同。 如果第一个依存参数为多值(值列表),则将使用多值列表中的第一个值。

  • Intersection—输出范围将是所有依存参数的几何交集。

  • Union—输出范围将是所有依存参数的几何并集。

  • Environment—输出范围将基于 范围 环境进行计算。

String

featureType

(读取和写入)

指定 featureTypeRule 属性值为 AsSpecified 时输出的要素类型。

  • Simple—输出将包含简单要素。 geometryTypeRule 属性指定了要素的几何类型。

  • Annotation—输出将包含注记要素。

  • Dimension—输出将包含尺寸要素。

String

featureTypeRule

(读取和写入)

指定输出要素类的要素类型。 此规则对输出栅格或输出表不起作用。

  • Unknown—要素类型将是未知。通常,应该能够根据其他参数值确定 updateParameters 方法中的几何类型。 仅当没有足够的信息来确定要素类型时(例如在 initializeParameters 方法中),才将属性设置为 Unknown 。 这是默认设置。

  • AsSpecified—要素类型将通过 featureType 属性确定。

  • FirstDependency—要素类型将与依赖项中的第一个参数相同。 如果第一个依存参数为多值(值列表),则将使用多值列表中的第一个值。

String

fieldsRule

(读取和写入)

指定将存在于输出要素类或表中的字段。

  • None—除对象 ID 字段以外,将不输出任何字段。

  • FirstDependency—输出字段将与第一个依存参数相同。 如果第一个依存参数为多值(值列表),则将使用多值列表中的第一个值。

  • FirstDependencyFIDs—只有第一个依赖输入的对象 ID 字段会写入到输出中。

  • All—将输出依存参数列表中的所有字段。

  • AllNoFIDs—除对象 ID 字段以外的所有字段都将写入输出中。

  • AllFIDsOnly—所有对象 ID 字段都将写入到输出中,但是输入中的其他字段不会写入。

String

geometryType

(读取和写入)

指定输出的几何类型。 当 geometryTypeRule 属性值为 AsSpecified 时,值可以为 PointMultipointPolylinePolygon

String

geometryTypeRule

(读取和写入)

指定输出要素类的几何类型(例如点或面)。

  • Unknown—几何类型将是未知。通常,应该能够根据其他参数值确定 updateParameters 方法中的几何类型。 仅当没有足够的信息来确定几何类型时(例如在 initializeParameters 方法中),才将属性设置为 Unknown 。 这是默认设置。

  • FirstDependency—几何类型将与第一个依赖参数相同。 如果第一个依存参数为多值(值列表),则将使用多值列表中的第一个值。

  • Max—将输出几何类型设置为所有依赖参数中最大的类型。

  • Min—检查所有依存参数的几何,并将输出几何类型设置为找到的最小类型。

  • AsSpecified—几何类型将由 geometryType 属性值确定。

String

rasterFormatRule

(读取和写入)

指定输出栅格的格式, GRIDImg 。 默认值为 Img ,它是 ERDAS IMAGINE 格式。

String

rasterRule

(读取和写入)

指定将包含在输出栅格中的数据类型。

  • FirstDependency—数据类型(整型或浮点型)将与第一个依赖参数相同。 如果第一个依存参数为多值(值列表),则将使用多值列表中的第一个值。

  • Max—如果存在包括整型和浮点型的依赖参数,则数据类型将为浮点型。

  • Min—如果存在包括整型和浮点型的依赖参数,则数据类型将为整型。

  • Integer—数据类型将为整型。

  • Float—数据类型将为浮点型。

String

type

(只读)

指定输出方案类型: FeatureTableRasterContainer (针对工作空间和要素数据集)。

String

代码示例

Schema 示例 1

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

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 the value
for prop in properties:
    try:
        val = eval("schema." + prop)
        print("{:<18} : {}".format(prop, val))
    except (NameError, RuntimeError):
        # Properties unsupported by the parameter data type will be ignored
        pass