When using geoprocessing tools, it is assumed that the spatial reference properties of a feature class are valid for geometric calculations and storage. Geometric calculations use x,y resolution and x,y tolerance properties, and if they are set incorrectly, you may experience performance degradation, errors, crashes, or incorrect results. It is recommended that you use the default values for spatial reference properties at all times.
Spatial references
Set the special reference properties of input feature classes to the default values. Leave the settings of geoprocessing environments and tool parameters that affect the spatial reference at their default values as well.
To learn more about spatial references, see the following:
- Spatial reference and geoprocessing
- The properties of a spatial reference
- Geoprocessing considerations for shapefile output
The terms coordinate system and spatial reference are not interchangeable. A spatial reference is composed of the following:
- A coordinate system
- x,y resolution and, optionally, m- and z-resolution and domain
- x,y tolerances and, optionally, m- and z-tolerances
A spatial reference affects geoprocessing and should be evaluated before performing any analysis.
Invalid spatial references
A feature class's spatial reference can become invalid in the following situations:
- Data is imported from a non-ArcGIS system.
- Misuse of the geoprocessing XY Resolution and XY Tolerance environments. Generally, a geoprocessing tool uses the spatial reference from the first input when performing analysis. If set, a tool uses the geoprocessing environments instead. Any output feature class created by a tool that respects these environments inherits these properties in its spatial reference.
- Managing data issues with a misunderstanding of spatial reference properties.
- Using x,y tolerance as a search distance.
Effects of an invalid spatial reference
Effects of invalid spatial reference x,y resolution and x,y tolerance properties on geoprocessing tools include the following:
- Setting the x,y resolution to a value larger than the default value to save disk space and improve performance may produce incorrect results.
- Setting the x,y tolerance to a value larger than the default value to generalize the data rather than addressing the issues with the data may produce incorrect results.
- Setting the x,y resolution to a value smaller than the default value to make the data more precise tends to increase the size of individual geometries, often dramatically. Internal processing then has a larger memory and disk footprint. Performance issues, errors, and crashes are often the result of making this change, especially if the x,y tolerance value remains the same and is now much larger than the recommended 10 times the value of the x,y resolution.
- Setting the x,y tolerance to a value smaller than the default value to try to prevent data movement during processing may produce incorrect results. If setting the x,y tolerance to a smaller value results in the value being less than the recommended 10 times the size of the x,y resolution value, performance issues, errors, or invalid analysis results may occur.
Responsibility
It is the responsibility of the consumer of the data to ensure that the feature class spatial reference is valid, and preferably set to its defaults, before the data is used for projects or analysis.
Valid spatial reference
A feature class should have an x,y resolution of 0.0001 meters (1/10 millimeters) or its equivalent in map units. For example, if a feature class is stored in state plane feet, the default precision is 0.0003281 feet (0.003937 inches). If coordinates are in latitude-longitude, the default resolution is 0.000000001 degrees. The x,y tolerance should be 0.001 meters or its equivalent in map units. This is 10 times larger than the default resolution value and is recommended in most cases.
Correct an invalid spatial reference
If a feature class is not set to the default resolution and tolerance values, complete the following steps to correct it. Because these properties can only be specified during feature class creation, you must create a feature class from the original.
- In the Catalog pane, right-click the geodatabase where you want to create a feature class, and click New > Feature Class.
The Create Feature Class wizard appears.
- On the Define page of the wizard, provide a name for the feature class in the Name text box.
- Choose Feature Class Type and choose Geometric Properties values to match the original feature class.
- Click Next.
- On the Fields page of the wizard, click the Import button.
- Browse to the location of the original feature class and click OK.
- Click Next.
- On the Spatial Reference page of the wizard, click the Add Coordinate System button and click Import Coordinate System.
- Browse to the location of the original feature class and click OK.
- Click Next.
- On the Tolerance tab, click the Reset To Default button.
This is an important step. Failing to reset the properties to default values will persist the invalid properties in the new feature class.
- Click Next.
- On the Resolution tab, leave the Accept default resolution and domain extent (recommended) check box checked.
- Click Finish to create the feature class.
A new empty feature class is created with the correct schema (all the fields and definitions from the original); the same coordinate system as the original; and, most importantly, the default values for resolution, tolerance, and domains.
- In the Catalog pane, right-click the new feature class and choose Load Data.
The Append tool opens in the Geoprocessing pane.
- Set the Input Datasets parameter to the original feature class, set the Target Feature Class parameter to the new feature class, and click the Run button .
- After the data is loaded, run the Check Geometry tool to identify geometry issues.
- If there are issues, run the Repair Geometry tool.
Repair may be necessary due to the new, correct spatial reference properties revealing underlying issues in the geometry.