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

相关主题