Detect and repair invalid spatial references

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:

The terms coordinate system and spatial reference are not interchangeable. A spatial reference is composed of the following:

  • A coordinate system
  • XY resolution and, optionally, m- and z-resolution and domain
  • XY 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 XY resolution and XY tolerance properties on geoprocessing tools include the following:

  • Setting the XY resolution to a value larger than the default to save disk space and improve performance may produce incorrect results.
  • Setting the XY tolerance to a value larger than the default to generalize the data rather than addressing the issues with the data may produce incorrect results.
  • Setting the XY resolution to a value smaller than the default 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 XY tolerance value remains the same and is now much larger than the recommended 10 times the value of the XY resolution.
  • Setting the XY tolerance to a value smaller than the default to try to prevent data movement during processing may produce incorrect results. If setting the XY tolerance to a smaller value results in the value being less than the recommended 10 times the size of the XY 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, use the following steps to correct it. Because these properties can only be specified during feature class creation, you will create a feature class from the original.

  1. In the Catalog pane, right-click the geodatabase in which you want to create a feature class, and click New > Feature Class.

    The Create Feature Class wizard appears.

  2. On the Define page of the wizard, type a name for the feature class in the Name text box.
  3. Choose Feature Class Type and Geometric Properties values to match the original feature class.
  4. Click Next.
  5. On the Fields page of the wizard, click the Import button.
  6. Browse to the location of the original feature class and click OK.
  7. Click Next.
  8. On the Spatial Reference page of the wizard, click the Add Coordinate System button Add Coordinate System and click Import Coordinate System.
  9. Browse to the location of the original feature class and click OK.
  10. Click Next.
  11. 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.

  12. Click Next.
  13. On the Resolution tab, leave the Accept default resolution and domain extent (recommended) check box checked.
  14. 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, default values for resolution, tolerance, and domains.

  15. In the Catalog pane, right-click the new feature class and choose Load Data.

    The Append tool opens in the Geoprocessing pane.

  16. 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 Run.
  17. 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.