from http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Feature_class_basics&anchor=CB1
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).
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 topology.
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.
Types of feature classes in the geodatabase
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
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.
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.
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 line 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.
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 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 Linear Referencing. The process of geolocating events that occur along these measurement systems is referred to as Dynamic Segmentation.
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.
Feature tolerances
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:
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.
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-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.
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.
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
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
Use: | If you need to: |
Feature Dataset |
Hold a collection of spatially related feature classes or build topologies, networks, and terrains. |
Subtypes | 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. |
Attribute Domains | 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). |
Relationship Classes | 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. |
Topology |
Model how features share geometry. For example, adjacent counties share a common boundary. Also, county polygons nest within and completely cover states. |
Network Dataset |
Model transportation connectivity and flow. (Must have Network Analyst installed to use) |
Geometric Network |
Model utilities networks and tracing. |
Terrain |
Model triangulated irregular networks (TINs) and manage large lidar and sonar point collections. |
Address Locator |
Geocode adressess. |
Linear Referencing |
Locate events along linear features with measurements. |
Cartographic Representations | Manage multiple cartographic representations and advanced cartographic drawing rules. |
Versioning |
Manage a number of key GIS workflows for data management, for example, support long update transactions, historical archives, and multiuser editing. |