You are here:
Geodatabases and ArcSDE
An overview of the Geodatabase
Feature classes are homogeneous collections of common features, each having the same spatial representation, such as points, lines, or polygons, and a common set of attribute columns, for example, a line feature class for representing road centerlines. The four most commonly used feature classes in the geodatabase are points, lines, polygons, and annotation (the geodatabase name for map text).
Types of feature classes in the geodatabase
In the illustration below, these are used to represent four datasets for the same area: (1) manhole cover locations as points, (2) sewer lines, (3) parcel polygons, and (4) street name annotation.
In this diagram, you might also have noted the potential requirement to model some advanced feature properties. For example, the sewer lines and manhole locations make up a storm sewer network, a system with which you can model runoff and flows. Also, note how adjacent parcels share common boundaries. Most parcel users want to maintain the integrity of shared feature boundaries in their datasets using a .
As mentioned earlier, often users have the need to model such spatial relationships and behaviors in their geographic datasets. In these cases, users will extend these basic feature classes by adding a number of advanced geodatabase elements, such as topologies, network datasets, terrains, and address locators.
You can learn more about adding such advanced behaviors to your geodatabases in Extending feature classes.
Vector features (geographic objects with vector geometry) are versatile and frequently used geographic data types, well suited for representing features with discrete boundaries, such as wells, streets, rivers, states, and parcels. A feature is simply an object that stores its geographic representation, which is typically a point, line, or polygon, as one of its properties (or fields) in the row. In ArcGIS, feature classes are homogeneous collections of features with a common spatial representation and set of attributes stored in a database table. For example, a line feature class for representing road centerlines.
NOTE: When creating a feature class in the geodatabase, you'll be asked to set the type of features to define the type of feature class (point, line, polygon, etc.).
Generally, feature classes are thematic collections of points, lines, or polygons, but there are seven feature class types:
Feature geometry and feature coordinates
Points— Features that are too small to represent as lines or polygons as well as point locations (such as a GPS observations).
Lines— Represent the shape and location of geographic objects, such as street centerlines and streams, too narrow to depict as areas. Lines are also used to represent features that have length but no area such as contour lines and boundaries.
Polygons— A set of many-sided area features that represent the shape and location of homogeneous feature types such as states, counties, parcels, soil types, and land-use zones.
Annotation— Map text including properties for how the text is rendered. For example, in addition to the text string of each annotation, other properties are included such as the shape points for placing the text, its font and point size, and other display properties. Annotation can also be feature-linked and can contain subclasses.
Dimensions— A special kind of annotation that shows specific lengths or distances, for example, to indicate the length of a side of a building, a land parcel, or the distance between two features. Dimensions are heavily used in design, engineering, and facilities applications for GIS.
Multipoints— Features that are composed of more than one point. Multipoints are often used to manage arrays of very large point collections such as LiDAR point clusters which can contain literally billions of points. Using a single row for such point geometry is not feasible. Clustering these into multipoint rows enables the geodatabase to handle massive point sets.
Multipatches— A 3D geometry used to represent the outer surface, or shell, of features that occupy a discrete area or volume in three-dimensional space. Multipatches comprise planar 3D rings and triangles that are used in combination to model a three-dimensional shell. Multipatches can be used to represent anything from simple objects, such as spheres and cubes, or complex objects, such as iso-surfaces and buildings.
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 multpile 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: circular arcs, elliptical arcs, and Bezier curves that can be defined. 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.
In various ArcGIS operations, feature coordinates 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 to define coordinate resolution and processing tolerances used in various spatial processing and geometric operations.
When you create a new feature class, you will be asked to set the x,y 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 and for 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, such as topology validation, polygon overlay, buffer, clip, etc., 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.
The clustering process works by moving across the map, 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 meters 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 feet (0.03937 inches).
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 (such as a survey control network).
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 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 feet, 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.
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.
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 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 feet (0.003937 inches). If coordinates are in latitude-longitude, the default resolution is 0.000000001 degrees.
The graphic below provides a conceptual view of an integer 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.
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 meters or its equivalent in the units of your coordinate system (0.0003281 feet 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 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 (for example, 0.0003281 feet for VCS units of feet, 0.003937 inches 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 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 units. 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 units (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.
Feature class storage in the geodatabase
In the geodatabase, each feature class is managed in a single table. A Shape column in each row is used to hold the geometry or shape of each feature.
In the feature class table
- Each feature class is a table.
- Individual features are held as rows.
- Feature attributes are recorded in columns .
- The Shape column holds each feature's geometry (point, line, polygon, and so forth).
- The Object ID column holds the unique identifier for each feature.
In ArcSDE geodatabases, relational databases hold each feature class as a table in the DBMS. Three DBMSs (Oracle, DB2, and Informix) provide SQL access to feature geometry in the geodatabase.
Extending feature classes
Each feature class in the geodatabase is a collection of geographic features with the same geometry type (point, line, or polygon), the same attributes, and the same spatial reference. Feature classes can be extended as needed to achieve a number of objectives. Here are some of the ways that users extend feature classes using the geodatabase and why.
Working with Feature Classes in the Geodatabase
|Hold a collection of spatially related feature classes or build topologies, networks, and terrains.
||Manage a set of feature subclasses in a single feature class.
This is often used on feature class tables to manage different behaviors on subsets of the same feature types.
||Specify a list of valid values or a range of valid values for attribute columns.
Use domains to help ensure the integrity of attribute values.
Domains are often used to enforce data classifications (such as road class, zoning codes, and land-use classifications).
||Build relationships between feature classes and other tables using a common key. For example, find the related rows in a second table based on rows selected in the feature class and so on.
|Model how features share geometry.
For example, adjacent counties share a common boundary. Also, county polygons nest within and completely cover states.
|Model transportation connectivity and flow. (Must have Network Analyst installed to use)
|Model utilities networks and tracing.
|Model triangulated irregular networks (TINs) and manage large lidar and sonar point collections.
|Locate events along linear features with measurements.
||Manage multiple cartographic representations and advanced cartographic drawing rules.
|Manage a number of key GIS workflows for data management, for example, support long update transactions, historical archives, and multiuser editing.