Zusammenfassung
The schema of a dataset.
Diskussion
Every output parameter of type feature class, table, raster, or workspace has a Schema object. Only output feature classes, tables, rasters, and workspaces have a schema—other types do not. The Schema object is created for you in geoprocessing tool validation. You access this schema through the parameter object and set the rules for describing the output of your tool. After you set the schema rules in validation, the geoprocessing internal validation code examines the rules you set and updates the description of the output.
Eigenschaften
Eigenschaft | Erläuterung | Datentyp |
additionalChildren (Lesen und schreiben) | Python list of datasets to add to a workspace schema. | String |
additionalFields (Lesen und schreiben) | Indicates additional fields for the fields property. Besides the fields that are added by the application of the fieldsRule, you can add additional fields to the output. | Field |
cellSize (Lesen und schreiben) | Set this to the cell size to use when cellSizeRule is AsSpecified. | Double |
cellSizeRule (Lesen und schreiben) | Determines the cell size of output rasters or grids.
| String |
clone (Lesen und schreiben) | If True, make an exact copy (clone) of the description in the first dependent parameter. The default value is False. | Boolean |
extent (Lesen und schreiben) | Set this to the extent to use when extentRule is AsSpecified. You can either set the extent with a space-delimited string or a Python list object with four values. The sequence is xmin, ymin, xmax, ymax. | Extent |
extentRule (Lesen und schreiben) | Indicates how the extent property is to be managed.
| String |
featureType (Lesen und schreiben) | When the featureTypeRule is AsSpecified, the value in FeatureType is used to specify the feature type of the output.
| String |
featureTypeRule (Lesen und schreiben) | This setting determines the feature type of the output feature class. This rule has no effect on output rasters or tables.
| String |
fieldsRule (Lesen und schreiben) | Determines what fields will exist on the output feature class or table.
| String |
geometryType (Lesen und schreiben) | Set this to the geometry type to use (either Point, Multipoint, Polyline, or Polygon) when geometryTypeRule is AsSpecified. | String |
geometryTypeRule (Lesen und schreiben) | This setting determines the geometry type (such as point or polygon) of the output feature class.
| String |
rasterFormatRule (Lesen und schreiben) | This determines the output raster format, either GRID or Img. The default is Img, which is ERDAS IMAGINE format. | String |
rasterRule (Lesen und schreiben) | This determines the data type—integer or float—contained in the output raster.
| String |
type (Schreibgeschützt) | The schema type: Feature, Table, Raster, or Container (for workspaces and feature datasets). | String |
Codebeispiel
In a ToolValidator class, set the schema of the output parameter to the first input parameter.
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
Interrogate the schema of a specific tool output parameter using the GetParameterInfo function.
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