- Task 1: Designing simple feature classes
- Task 2: Organizing related feature classes into feature datasets
- Task 3: Adding geodatabase elements to facilitate data editing and manage data integrity
- Task 4: Adding capabilities for advanced data uses, analytic models (such as network analysis and geocoding), and advanced cartography
The following are some useful design tips for modeling geodatabase feature classes:
Task 1: Designing simple feature classes
Almost without exception, every geodatabase will contain feature classes. You might want only a simple geodatabase design that contains only a collection of feature classes. However, most users will find the need to develop a more comprehensive data model that adds advanced geodatabase elements. You will make the decision to extend your simple feature class designs based on your system needs and goals; you will extend your design to support essential GIS functionality and behavior. This section introduces many of these feature class capabilities and points you to help topics where you can get more information on each option.
Start by defining the common properties of simple feature classes. You can add to this later as needed, but focus on defining your basic design first.
A feature class is a collection of geographic features with the same geometry type (such as point, line, or polygon), a common set of attribute columns, and the same coordinate system.
Example feature classes in ArcGIS
Street segments split at each intersection; usually contain address ranges and network properties
Usually have many descriptive attributes in related tables
Topologically integrated with parcel boundaries and corners
Has coordinate geometry and dimension attributes; participates in a topology with parcels and corners
Surveyed corners of parcels; participates in a topology with parcel polygons and boundaries
Provides text labels for lot dimensions, taxation, and legal description information
Contains outlines of buildings and structures
* The parcel fabric dataset provides parcel behavior and specialized parcel-based topology for these feature classes.
Once you settle on a proposed list of feature classes, try to define the following for each:
- Pick a geometry type (also known as the feature class type) such as point, line, polygon, or annotation. You will need to use one common geometry type for all the features in each feature class. See Feature class basics.
- Determine the attribute fields and column types. See ArcGIS field data types.
- Determine geometry properties. Will you have z-coordinates? M-coordinates? What kind of coordinate resolution? What kinds of line segments for lines and polygon feature classes? Most often, you'll only need the default, which uses simple, straight-line segments. However, sometimes you might need curved segments, for example, to represent culs-de-sac and roads. See Feature class basics.
- Define the coordinate system for each feature class. See What are map projections?
- Do you need to use this dataset at multiple scales? How will the representations change at each map scale? You may find that you will need alternative feature class representations for use at other scale ranges. In these cases, you can consider additional feature classes for representing the same data theme for each scale range.
Sometimes, you will load feature data as is into your GIS. If this is the case, you might not need to do any of the following additional design tasks. However, it is important to evaluate the advantages of adding further GIS capabilities to the features in your geodatabase. These additional capabilities can potentially make data use and maintenance much easier in the long term. They will help you maintain the integrity of your spatial information; increase the usability of your data; and, most importantly, help you understand how much confidence you can place in your data to meet your needs.
The following are some common reasons for extending your simple features data model:
- When you need to validate a dataset before you import and use it in your system (for example, to ensure that the dataset adheres to a series of spatial integrity rules)
- If you will need to edit the data and maintain its spatial integrity
- If you want to use the feature class for advanced GIS work, such as modeling and analysis
Task 2: Organizing related feature classes into feature datasets
Use feature datasets to organize spatially related feature classes into a common feature dataset. Feature datasets are necessary if you want to do the following:
A feature dataset is a collection of spatially or thematically related feature classes that share a common coordinate system. Feature datasets are used to hold feature classes that participate in a shared topology, network dataset, geometric network, or terrain.
Sometimes, you will want to organize a collection of feature classes for a common theme into a single feature dataset. For example, you might have a feature dataset for water that contains hydro points (such as dams, bridges, and intakes), hydro lines (streams, canals, and rivers), and hydro polygons (lakes, catchment areas, watersheds, and so on).
In some situations, you might use feature datasets as folders to hold a collection of simple feature classes. This technique is primarily used to organize how you share datasets. However, it is not a useful data structure for editing.
You will need to go through tasks 3 and 4 to decide on a final design for what feature classes should be organized within each feature dataset.
Feature datasets play a key role in establishing permissions for data editing. All the feature classes in a feature dataset will have the same permissions. This means that you can set permissions on feature datasets to identify which organization or group will maintain its contents. If different permissions need to be set on each feature class, the feature classes should be organized in separate feature datasets (or feature classes), each with its own permission settings. In these cases, extract, transform, and load (ETL) or import/export procedures can be used to move data updates between each dataset.
When to use feature datasets
Use feature datasets to spatially or thematically integrate related feature classes. Their primary purpose is when using certain advanced geodatabase datasets.
You must use feature datasets to hold the set of feature classes that participate in any of the following geodatabase capabilities:
- Network dataset
- Geometric network
- Parcel fabric
Task 3: Adding geodatabase elements to facilitate data editing and manage data integrity
The geodatabase includes some optional data modeling capabilities that add integrity rules and editing behavior to your GIS. These capabilities help you automate much of your data management work and integrity checks.
- Do you want to manage the integrity of attribute values? You can use domains, which are rules for assigning valid values in an attribute field.
- Do you want to use subtypes to help manage subsets of features in a feature class? Subtypes allow you to set up special behaviors for each subclass. They can be used to set default rules for managing feature subsets. For example, you can use subtypes to automatically assign default attribute values as new features are added during editing, set spatial integrity rules for how new features connect to others, and add other feature behaviors.
- Determine whether there are related tables and if you need relationship classes. Relationship classes allow you to work with features in one table by selecting features in related tables, a very common relational database capability.
- Determine whether there are spatial relationships between features in this feature class or with other feature classes that need to be modeled. For example, do you have parcels that share common boundaries? Do they share geometry with a feature class of parcel boundaries and another of parcel corners? Do you want to ensure that your road segments connect to one another or that electrical lines meet at junctions and switches? Do you have county boundaries that nest within states and do not overlap? Do you have vegetation classes that share boundaries with other environmental layers such as slope, aspect, and soil type polygons? In these kinds of cases, topology is very useful; in fact, it is essential.
The feature classes that participate in any topology must be organized into the same feature dataset. See An overview of topology in ArcGIS to read more about how you can use them within feature datasets to organize and manage the integrity of topological relationships during editing and update operations.
Task 4: Adding capabilities for advanced data uses, analytic models (such as network analysis and geocoding), and advanced cartography
With each dataset, you may want to consider adding additional geodatabase capabilities that help you to further leverage each dataset. A number of alternative options are available, and you can apply any of these to add capabilities to your geodatabase.
- Do you want to model and use topological relationships to navigate through the nodes, edges, and faces of a topology? Will shared feature geometry help you more realistically model your features? For example, the polygon and line boundaries of numerous terrain data layers, such as feature classes for vegetation, slope, aspect, soil types, geology, water bodies, watersheds, ecological zones, and other environmental layers, nest within one another. Integrating their common boundaries using topology enables you to build much more robust and consistent attribute combinations. These greatly impact suitability/capability models and the ability to gain real insight into a problem. Topologies can also help you integrate parcel systems, census units, administrative boundaries, and many other information sets. GIS users sometimes refer to this as vertical integration of GIS data layers.
- Do you want to model a transportation network? The geodatabase uses a network dataset to model these situations. A network dataset is a collection of edges, turns, and junctions through which you can model navigation and the flow of goods and resources. Each network has a set of navigation properties. These include the "cost" to travel along each edge and transfer onto another edge as well as the ability to model one-way, left-turn, and other travel restrictions and multimodal networks (combining trips using an automobile, a bus, walking).
A network dataset uses feature classes as data sources for edges, junctions, and turns. You specify the role each feature class will play in the network along with its navigation properties. The feature classes that participate in a network must be organized into the same feature dataset.
- Do you want to model utility networks? Electrical utilities and water, storm water, and sewer systems are modeled using a geometric network in the geodatabase. A geometric network is a set of connected edge and junction features used to model the flow of things such as electricity, water, gas, and storm water runoff. Each feature class is assigned a role in the geometric network as a collection of edges or junctions. The connectivity of the network is defined by feature properties and geometric coincidence. For example, valves (which are held as a point feature class) are connected to the endpoints of pipe segments (stored as line features). If the valve is open, water can flow through it in a specified direction.
- Do you want to use geocoding? For address geocoding, you add an address locator to your geodatabase. A locator is a combination of one of more feature classes containing addressable features (such as address range information for street centerlines) and a set of address styles and matching rules. Each locator dataset is used as the source for matching a single address or a large file of addresses to find address locations.You can create locators and save copies of them independent of the geodatabase. This allows you to share your locators with many kinds of users for their own geocoding work.
- Do you want to use linear referencing to locate events or facilities along transportation lines? 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, streamlines, and pipelines. You can assign an m-value to each vertex in a feature. One common 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 include 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 it. A collection of routes with a common measurement system can be built on a line feature class as follows:
- Do you want to model elevation using triangulated irregular networks? Or do you need to manage lidar or bathymetric point collections? The geodatabase has a terrain dataset to model surfaces using triangulated networks and to manage large multipoint collections such as lidar and bathymetry data. Terrains are used to manage massive 3D point collections (such as billion-point lidar collections) as well as other 3D features, and to generate multiresolution TINs from these collections.
- Do you want to manage parcels in a continuous surface of connected parcels? A parcel fabric is a dataset of connected parcels. Parcels are represented by parcel line features, parcel point features, and parcel polygon features.
- Do you want to include cartographic representations and rules in your feature classes? A representation can be added to a feature class to hold drawing rules or alternative graphic representation for the map display of features. In GIS, most users automate mapping by defining a set of map layers. A map layer is a set of rules for how to symbolize and label features on each map. Sometimes layers are not enough to convey the information properly. For example, you might have street centerlines that connect at intersections. But if you want to show bridges, overpasses, tunnels, and so on, you cannot easily show these on your map.
A cartographic representation enables users to apply special overrides, rules, and graphics to ensure that the map representation is clear. For example, in a map display, road symbols exaggerate the size of roads and can cause conflicts with other features such as streams and buildings. With cartographic representations, you can offset some feature symbols to remove the conflicts—without having to change the underlying geographic location of the features. You can move the road representations off of the rivers and offset buildings from road symbols.
Representations can also be used to customize the display of individual features within a feature class. Individual feature customizations are called overrides. For example, line features can be symbolized with a dashed-stroke representation rule. Then, properties of that rule, such as the stroke weight or color, can be overridden for individual features without changing the structure of that rule.