Feature classes contain both the geometric shapes of each feature as well as their descriptive attributes. Each feature geometry is primarily defined by its feature type (point, line, or polygon). But additional geometric properties can also be defined. For example, features can be single part or multipart, can have 3D vertices, can have linear measures (called m-values), and can contain parametrically defined curves. This section provides a short overview of these capabilities.
Single-part and multipart lines and polygons
Line and polygon feature classes in the geodatabase can be composed of single parts or multiple parts. For example, a state can contain multiple parts (Hawaii's islands) but is considered to be a single state feature.
Vertices, segments, elevation, and measurements
Feature geometry is primarily composed of coordinate vertices. Segments in lines and polygon features span vertices. Segments can be straight edges or can be parametrically defined curves. Vertices in features can also include z-values to represent elevation measures and m-values to represent measurements along
Segment types in line and polygon features
Lines and polygons are defined by two key elements: (1) an ordered list of vertices that define the shape of the line or polygon and (2) the types of line segments used between each pair of vertices. Each line and polygon can be thought of as an ordered set of vertices that can be connected to form the geometric shape. Another way to express each line and polygon is as an ordered series of connected segments where each segment has a type: straight line, circular arc, elliptical arc, or Bezier curve.
The default segment type is a straight line between two vertices. However, when you need to define curves or parametric shapes, you have three additional segment types that can be defined: circular arcs, elliptical arcs, and Bezier curves. These shapes are often used for representing built environments such as parcel boundaries and roadways.
Vertical measurements using z-values
Feature coordinates can include x,y and x,y,z vertices. Z-values are most commonly used to represent elevations, but they can represent other measurements such as annual rainfall or measures of air quality.
Features can have x,y coordinates and, optionally, added z-elevation values.
Linear measurements using m-values
Linear feature vertices can also include m-values. Some GIS applications employ a linear measurement system used to interpolate distances along linear features such as along roads, streams, and pipelines. You can assign an m-value to each vertex in a feature. A commonly used example is a highway milepost measurement system used by departments of transportation for recording pavement conditions, speed limits, accident locations, and other incidents along highways. Two commonly used units of measure are milepost distance from a set location, such as a county line, and distance from a reference marker.
Vertices for measurements can be either (x,y,m) or (x,y,z,m).
Support for these data types is often referred to as
. The process of geolocating events that occur along these measurement systems is referred to as
Measured coordinates form the building blocks for these systems. In the linear referencing implementation in ArcGIS, the term route
refers to any linear feature, such as a city street, highway, river, or pipe, that has a unique identifier and a common measurement system along each linear feature. A collection of routes with a common measurement system can be built on a line feature class as follows:
See An overview of linear referencing
for more information.
Locational accuracy and support for a high-precision data management framework are critical in GIS data management. A key requirement is the ability to store coordinate information with enough precision. The precision of a coordinate describes the number of digits that are used to record the location. This defines the resolution at which spatial data is collected and managed.
Since geodatabases can record high-precision coordinates, users can build datasets with high accuracy levels and with greater resolution as data capture tools and sensors improve over time (e.g., data entry from survey and civil engineering, cadastral and COGO data capture, increased imagery resolution, lidar, building plans from CAD).
The geodatabase records its coordinates using integer numbers and can handle locations with very high precision. In various ArcGIS operations, feature coordinates for the geodatabase are processed and managed using some key geometric properties. These properties are defined during the creation of each feature class or feature dataset.
The following geometric properties help define coordinate resolution and processing tolerances used in various spatial processing and geometric operations:
: The precision with which coordinates within a feature class are recorded.
: A cluster tolerance used to cluster features with coincident geometry. Used in topology, feature overlay, and related operations.
Z tolerance and Z resolution
: The tolerance and resolution properties for the vertical coordinate dimension in 3D datasets (e.g., an elevation measure).
M tolerance and M resolution
: The tolerance and resolution properties for measures along line features used in linear referencing datasets (e.g., the distance along a road in meters).
Each is described in more detail in this section.
The x,y resolution of a feature class or a feature dataset is the numeric precision used to store the x,y coordinate values. Precision is important for accurate feature representation, analysis, and mapping.
The x,y resolution defines the number of decimal places or significant digits used to store feature coordinates (in both x and y). You can think of the resolution as defining a very fine grid mesh onto which all coordinates are snapped. Coordinate values are actually stored and operated on as integers in ArcGIS. Therefore, sometimes this grid mesh is referred to as an integer grid or coordinate grid.
The resolution defines the distance between the mesh in a coordinate grid onto which all coordinates fit. The x,y resolution is expressed in the units of the data (based on its coordinate system) such as in state plane feet, UTM meters, or Albers meters.
The default x,y resolution for feature classes created in ArcGIS 9.2 and later releases is 0.0001 meter or its equivalent in the units of the dataset's coordinate system. For example, if a feature class is stored in state plane feet, the default precision will be 0.0003281 foot (0.003937 inch). If coordinates are in latitude-longitude, the default x,y resolution is 0.000000001 degree.
The graphic below provides a conceptual view of a coordinate grid onto which all coordinate values snap to the grid mesh. The grid covers the extent of each dataset. The fineness of this mesh (the distance between the lines in the grid) is defined by the x,y resolution, which is very small.
If necessary, you can override the default x,y resolution value and set another for each feature class or feature dataset. Setting a smaller x,y resolution value can potentially increase data storage and processing time of datasets compared with those using larger values for x,y resolution.
When you create a new feature class, you will be asked to set the XY tolerance. The x,y tolerance is used to set the minimum distance between coordinates in clustering operations such as topology validation, buffer generation, and polygon overlay as well as in some editing operations.
Feature processing operations are influenced by the x,y tolerance, which determines the minimum distance separating all feature coordinates (nodes and vertices) during those operations. By definition, it also defines the distance a coordinate can move in x or y (or both) during clustering operations.
The x,y tolerance is an extremely small distance (the default is 0.001 meter in on-the-ground units). It is used to resolve inexact intersection locations of coordinates during clustering operations. When processing feature classes using geometry operations, coordinates whose x distance and y distance are within the x,y tolerance of each other are considered to be coincident (i.e., share the same x,y location). Thus, the clustered coordinates are moved to a common location.
Typically, the less accurate coordinate is moved to the location of the more accurate coordinate, or a new location is computed as a weighted average distance between the coordinates in the cluster. In these cases, the weighted average distance is based on the accuracy ranks of the clustered coordinates.
For more information about how accuracy ranks are set for each feature class, see the section "Coordinate ranks" in Topology in ArcGIS
The clustering process works by moving across the map and identifying clusters of coordinates that fall within the x,y tolerance of one another. ArcGIS uses this algorithm to discover, clean up, and manage shared geometry between features. This means that coordinates are deemed to be coincident (and are snapped to the same shared coordinate location). This is fundamental to many GIS operations and concepts. For example, see An overview of topology in ArcGIS
The maximum distance a coordinate could move to its new location during such operations is the square root of 2 times the x,y tolerance. The clustering algorithm is iterative, so it is possible in some cases for coordinate locations to shift more than this distance.
The default x,y tolerance is set to 0.001 meter or its equivalent in the units of the dataset's real-world coordinate system (i.e., 0.001 meter on the ground). For example, if your coordinate system is recorded in state plane feet, the default x,y tolerance is 0.003281 foot (0.03937 inch).
The default value for the x,y tolerance is 10 times the default x,y resolution, and this is recommended for most cases. You have the option to set a larger tolerance value for data that has less coordinate accuracy or a smaller value for a dataset with extremely high accuracy.
It is important to note that the x,y tolerance is not intended to be used to generalize geometry shapes. Instead, it's intended to integrate line work and boundaries during topological operations. That means integrating coordinates that fall within very small distances of one another. Because coordinates can move in both x and y by as much as the x,y tolerance, many potential problems can be resolved by processing datasets with commands that use the x,y tolerance. These include handling of extremely small overshoots or undershoots, automatic sliver removal of duplicate segments, and coordinate thinning along boundary lines.
Here are some useful tips:
- Generally, you can use an x,y tolerance that is 10 times x,y resolution and expect good results.
- To keep coordinate movement small, keep the x,y tolerance small. However, an x,y tolerance that is too small (such as 3 times the x,y resolution or less) may not properly integrate the line work of coincident boundaries and coordinates.
- Conversely, if your x,y tolerance is too large, feature coordinates may collapse on one another. This can compromise the accuracy of feature boundary representations.
- Your x,y tolerance should never approach your data capture resolution. For example, at a map scale of 1:12,000, one inch equals 1,000 feet, and 1/50 of an inch equals 20 feet. You'll want to keep the coordinate movement using the x,y tolerance well under these numbers. Remember, the default x,y tolerance in this case would be 0.0003281 foot, which is a very reasonable default value for x,y tolerance; in fact, it is best to use the default x,y tolerance values in all but extreme cases.
- In topologies, you can set the coordinate rank of each feature class. You'll want to set the coordinate rank of your most accurate features (e.g., surveyed features) to 1 and less accurate features to 2, 3, and so on, in descending levels of accuracy. This will cause other feature coordinates with a higher accuracy rank number (and therefore, a lower coordinate accuracy) to be adjusted to the more accurate features with a lower rank number.
Setting the x,y tolerance and x,y resolution
When you create a new feature class in ArcCatalog, you will be asked to set the x,y tolerance of your new feature class. The panel will list the default x,y tolerance value for your dataset's coordinate system, which will be the equivalent of 0.001 meter as shown here:
In most cases, using the default x,y tolerance is the best choice.
On this same panel, you can also choose to accept the default x,y resolution, which is 0.0001 meter or its equivalent in the units of your coordinate system (0.0003281 foot or 0.000000027778 if in decimal degrees of latitude and longitude). This defines the fineness of the mesh used to store all x,y coordinates in your feature class. The default value for x,y resolution works in almost all cases unless you need better than surveying and civil engineering levels of precision for recording coordinate values.
To set your own x,y resolution, uncheck the Accept default resolution (recommended) check box illustrated in the panel above and proceed to the next panel to set your desired value for x,y resolution.
Z-resolution, z-tolerance, and vertical coordinate systems
Z-coordinates are primarily used for including elevation in your GIS features. However, z-coordinates can also be used for including other vertical measures such as air pollution observations, temperature, and other measures that are used in surface generation.
When you create a new feature class and want to include z-coordinates, you check on the Coordinates include Z values check box:
When you create a feature class that has z-coordinates, you will optionally be able to set a vertical coordinate system (VCS):
The primary goal in specifying a vertical coordinate system is for dataset documentation. The z-units defined in a VCS will be used in ArcGIS for 3D processing operations.
Most z-unit values measure height above or below sea level in the same units as the x,y coordinates, but there are other measures of z that may require a different value for the z-tolerance and z-resolution. For example, if you have a state plane feet coordinate system with elevation measured in meters or if z represents mean annual rainfall in inches, pollutants in parts per million, and so forth, you will want to set an appropriate value for the z-tolerance and z-resolution.
Z-tolerance and z-resolution
The z-tolerance defines the tolerance for clustering z-values during processing. The default z-tolerance is 0.001 meters or its equivalent if a VCS has been defined that sets the z-units (0.0003281 foot for VCS units of feet, 0.003937 inch for z-units of inches, etc.).
If coordinates are coincident and their z-values fall within the z-tolerance of one another, their z-values will be set equal to one another (i.e., they will be clustered).
When you create a new feature class, you can accept the default value for z-tolerance or optionally set your own value:
Using the default z-tolerance will work in most cases unless your z-coordinate units vary drastically from your x,y coordinates (e.g., if the z-coordinates have very small units and a number of decimal places or if they are very large).
In the same panel (shown above), you can choose to accept the default value for z-resolution. If you choose to change either the x,y resolution, the z-resolution, or both, uncheck the Accept default resolution and domain extent check box, and you will be presented with a panel in which you can see the default z-resolution and range for your z-values (Min and Max).
As with the z-tolerance, in most cases, accepting the default z-resolution and z-range will work for you.
Z-resolution defines the resolution of your z-values. The default value for z-resolution is the default z-tolerance divided by 10: 0.0001 meter or its equivalent in z-units.
M-resolution and m-tolerance for linear referencing
When you create feature classes that have m-measures, you can set these two properties for measure values.
On the New Feature Class dialog box in ArcCatalog, you will specify that the feature class has m-coordinates by checking the Coordinates include M values check box.
On the next panel (shown below), you can set the m-tolerance or accept the default value. The m-tolerance defines the tolerance for clustering m-values during processing. Its default value is 0.001 unit. If coordinates are coincident in x and y and their m-values are within this tolerance, their m-values will be set equal to one another (i.e., clustered).
In almost all cases, accepting the default tolerance will work for you. However, if your m-measure values are quite small and you want to ensure that measures do not cluster if they fall within 0.001 unit of each other, you can specify your own m-tolerance.
You can also choose to change the default m-resolution in this same panel: uncheck the Accept default resolution and domain extent check box shown above.
You will then be presented on the next panel with the opportunity to set some additional m-coordinate properties:
M-resolution defines the resolution of your m-values. Its default value is 0.0001 unit (which is the default M tolerance divided by 10). If your m-measures represent something using very small incremental values with multiple decimal places, you may want to set your own m-resolution.
You can also set the range of m-values by setting the lowest (Min) value and the highest (Max) value.