An overview of general settings


General settings apply to most tools and contain things such as the current and scratch workspace and the output coordinate system.

The following subtopics supplement the reference topics found in Environment settings.

Current and Scratch workspaces

There are two workspaces that can be set on the Environment Settings dialog box—Current Workspace and the Scratch Workspace.

Current Workspace is used for inputs

If the Current Workspace is set, tools will look for their inputs in this workspace. The illustration below shows setting the Current Workspace to E:\Data\DocData\Example.gdb. Once the Current Workspace is set, you can enter inputs for tools using just the name rather than the full pathname. The illustration below shows entering bridges for the Input Table parameter, which is then automatically expanded to E:\Data\DocData\Example.gdb\bridges.

Setting and using the Current Workspace

The illustration below shows setting the Current Workspace at the command line and using it in the AddField command.

Setting and using current workspace in Command Line

Learn more about Command Line

Current and Scratch Workspace used for outputs

With rare exceptions, tools will automatically generate an output name for tool results. The logic for generating the output name is as follows:

You should always check where tool output is being written. Nothing is more frustrating than to run a tool and forget where the output was written.

Output Coordinate system

You can specify the coordinate system that will be applied to spatial data created by running tools. The coordinate system (geographic or projected) defines the location of the spatial data on the earth.

Precedence rules dictate which coordinate system is applied to outputs from running tools.

When setting the coordinate system to apply on the Environment Settings dialog box, the default specifies that the coordinate system of outputs be the same as the first input to the tool (Same as Input). You can change the default setting, so that

Alternatively, set the coordinate system for outputs to be the same as a layer in the table of contents of the display (using Same as Layer) or click the browse button next to the drop-down list to take the coordinate system information from an existing dataset.

Before running geoprocessing tools that create feature datasets or feature classes within a geodatabase, you can set up spatial domain information—the allowable coordinate range for x,y coordinates, m-values, z-values, and precision information.

Learn more about setting a spatial domain

Maintain fully qualified field names

Qualified field names are the names of fields in a feature class or table which have the name of the feature class or table appended onto the field name itself. One way that field names become qualified is when two data layers are joined based on a common field. In the joined output, each field has the table or feature class name where the field originated appended onto the field name with the format tableName.fieldName. Qualified field names also occur when data is transferred to an SDE geodatabase. An SDE geodatabase uses qualified field names to differentiate between tables or feature classes that are owned by different users within the database with the format userName.tableName.fieldName. When SDE feature classes and tables are used in analysis tools with output to another data format, these qualified field names may not be desired because of field name limits inherent to certain data formats. If qualified field names are truncated to satisfy field name limits, they are often unsatisfactory and may lose clarity or their original meaning.

This environment setting determines if output table or feature class field names will be qualified with the original name of the table when using analysis tools and performing relational joins. The default QUALIFIED behavior of this environment setting is to name a field with the format tableName.fieldName (attribute join) or userName.tableName.fieldName (SDE geodatabase). You can set this parameter to UNQUALIFIED so that fields in the output table or feature class will always be named with the format fieldName. For example, with the default QUALIFIED behavior, when an SDE feature class USAStates with a field named user.USAStates.area (area of each state) is used as input to an analysis tool, if the tool output is set to a shapefile, the resulting field name will be user_USASt (field name truncated, and unsupported characters converted to underscore). This new field name is extremely unclear and does not relate to what is being indicated in the field-area. With the environment setting unchecked or set to UNQUALIFIED, this same field name will be given the much clearer and meaningful name area.

In many cases QUALIFIED field names should be used, since it ensures that fields will be uniquely named in the joined or output table or feature class. The most appropriate use of the UNQUALFIED option is when the output is a shapefile, since long field names will be truncated and may result in duplicate field names (if tableName or userName.tableName are longer than the character limit, fieldName may be lost altogether in the truncation if QUALIFIED field names are used). When field mappings are included in a tool's parameters as they are in many tools in the conversion toolbox, field names are automatically UNQUALIFIED, so there is no need to set this environment.

Geographic Transformations

Help for geographic transformations can be found in the following links:

Default output Z value

If your input feature classes contain z-value in the feature geometry or you have set Output has z-values to ENABLED in the General Settings section of the Environment Settings dialog box, you can set a default output z-value. This default z-value will be given to each vertex in the output feature class after a tool is run, only if no z-value can be obtained from the input.

Each vertex in the feature class will contain an x, y, and z coordinate. The value for the z coordinate will be based on the input to the tool. If the input does not contain z-values, the value set for the default output z-value setting in the Environment Settings dialog box will be applied as the z-value to all vertices in the output feature class. If no default output z-value is set, the value will be the minimum value set for the z-domain in the Environment Settings dialog box. If there is no z-domain set in the Environment Settings dialog box, the z-value will be taken from the minimum value set for the z-domain of the input. If the input does not contain a z-domain, zero is used as the z-value.

Output has Z values

Z-values, such as building heights, can be represented on the z-axis in a three-dimensional x,y,z coordinate system. If you want your feature class outputs to be able to store z-values for each vertex, you must specify this before running a tool. Z-values can't subsequently be added.

The default (Same As Input) takes the state of the input data to a tool—if the input can store z-values, the output will also be able to store z-values. By setting the option to Enabled, output feature classes will be able to store z-values, regardless of whether the input data to a tool can. By setting the option to Disabled, outputs from tools won't be able to store z-values, even if the input to a tool can.

If you set this option to Enabled or Same As Input, the z-values applied to each vertex in the output will be based on the input if they are present. If z-values are not present on the input and there is no value set for the default output z-value in the Environment Settings dialog box, the minimum value in the z-domain is used as the z-value. If there is no z-domain in the input, zero is given as the z-value.

Output has M values

m-value on polylines are used in linear referencing to imply a route measure. Route measures can be used to represent a location along a route, such as mileages along a highway. If you want your output feature classes to be able to store m-values for each vertex, you must specify this before running a tool. The ability to store m-values can't be subsequently added.

The default (Same As Input) takes the state of the input data to a tool—if the input can store m-values, the output will also be able to store m-values. By setting the option to Enabled, output feature classes will be able to store m-values, whether or not the input data to a tool can. By setting the option to Disabled, outputs from tools won't be able to store m-values, even if the input data can.

If you set this option to Enabled or Same As Input, the m-values applied to each vertex in the output will be based on the input if they are present, unless the tool will set or reset measure values, in which case input measures will be ignored and new ones will be calculated. If m-values are not present in the input, they will be set to Not a Number (NaN).

Extent

By specifying an extent, you define the area of interest for results from running tools.

In the case of feature data, all input features to a tool that pass through the area of interest will be included in the calculation.

For raster data, results from running tools will be contained within the extent set.

The extent is a rectangle, specified by identifying the coordinates of the window in map space.

The default extent is set to Default. With this extent set, the tool determines the extent of the output based on the extent of the input.

Intersection of Inputs

Sets geoprocessing to only be performed where all layers overlay, which is the minimum of the inputs.

Union of Inputs

Sets the extent of the results to be the same as the combined extent of inputs to a tool.

Same as Layer

Sets the extent to be the same as an existing layer in the table of contents.

As Specified Below

Sets a custom extent. Specify the four values, in map units, for the extent you want to apply. You must specify the top, right, bottom, and left values. An easy way to do this is to set the extent to that of an existing dataset, then modify the values to the required extent.

Same as Display

Sets the extent to be the same as the area visible in the display of the application. If you are working in ArcCatalog, you have to be previewing data to see this option in the drop-down list.

Alternatively, you can click the Browse button and browse to a dataset on disk to take the extent from.

Snap raster

Setting a snap raster ensures that the cell alignment of the analysis extent will match accurately with an existing raster. This is done by snapping the lower-left corner of the specified analysis extent to the lower-left corner of the nearest cell in the snap raster and snapping the upper-right corner of the specified analysis extent to the upper-right corner of the nearest cell in the snap raster.

M Resolution and Tolerance

Help for M resolution and tolerance can be found in the following links:

M Resolution and M Tolerance contain details on these environment settings.

Feature class basics contains a discussion of M resolution and tolerance.

XY Resolution and Tolerance

Help for XY resolution and tolerance can be found in the following links:

XY Resolution and M Tolerance contain details on these environment settings.

Feature class basics contains a discussion of XY resolution and tolerance.

Z Resolution and Tolerance

Help for XY resolution and tolerance can be found in the following links:

Z Resolution and M Tolerance contains details on these environment settings.

Feature class basics contains a discussion of Z resolution and tolerance.

Random number generator

Help for random number generation can be found in the following links:

Random number generator contains details on this environment setting.

See Random number generators and streams for conceptual help on this topic.

Cluster tolerance

NOTE: Cluster tolerance is only applicable with ArcGIS 9.1 or earlier. Starting with ArcGIS 9.2, XY tolerance replaces cluster tolerance.

The cluster tolerance is the distance range in which all vertices and boundaries in a feature class are considered identical or coincident.

To minimize error, the cluster tolerance you choose should be as small as possible, depending on the precision level of your data.

By default, the minimum possible tolerance value is calculated in the units of the spatial reference of the input. This default value is applied if you don't specify a cluster tolerance before running a tool.

Learn more about the cluster tolerance

Backward compatibility in scripting

ArcGIS 9.1 contained an environment setting for cluster tolerance. Starting with ArcGIS 9.2, XY tolerance replaces cluster tolerance. You will not see cluster tolerance in the list of environment settings. However, to maintain backward compatibility with scripts written for ArcGIS 9.1, cluster tolerance is still available as an environment setting in scripting.

Setting cluster tolerance in a script will automatically set the XY tolerance. Setting XY tolerance will also automatically set cluster tolerance. The script below demonstrates this.

    # Import system modules and create the Geoprocessor object
    #
    import sys, string, os, arcgisscripting
    gp = arcgisscripting.create()

    # Demonstrate the relationship between cluster tolerance and XY tolerance.
    #  At version 9.2, XY tolerance replaces cluster tolerance. They are
    #  equivalent. However, cluster tolerance has been phased out, and you
    #  will not see it in the list of environment settings, but it is
    #  still available in scripting to maintain backward compatibility with
    #  scripts written at 9.1.   

    # Print the passed down environment values of cluster and XY tolerance
    #
    gp.AddMessage(" ")
    gp.AddMessage("Passed down environments:")
    gp.AddMessage("Cluster tolerance = %s" % gp.clustertolerance)
    gp.AddMessage("XY tolerance = %s" % gp.xytolerance)

    # Set cluster tolerance and print again.  Both cluster tolerance and
    #  XY tolerance will be 999.9 inches
    #
    gp.AddMessage(" ")
    gp.AddMessage("Setting cluster tolerance")
    gp.clustertolerance = "999.9 inches"
    gp.AddMessage("Cluster tolerance = %s" % gp.clustertolerance)
    gp.AddMessage("XY tolerance = %s" % gp.xytolerance)

    # Now set the XY tolerance and print again. Both cluster tolerance and
    #  XY tolerance will be 888.8 inches
    #
    gp.AddMessage(" ")
    gp.AddMessage("Setting XY tolerance")
    gp.xytolerance = "888.8 inches"
    gp.AddMessage("Cluster tolerance = %s" % gp.clustertolerance)
    gp.AddMessage("XY tolerance = %s" % gp.xytolerance) 

See Also