Understanding network attributes
Network attributes are properties of the network elements that control traversability over the network. Examples of attributes include the time to travel a given length of road, which streets are restricted for which vehicles, the speeds along a given road, and which streets are one-way.
Network attributes have five basic properties: name, usage type, units, data type, and use by default. Additionally, they have a set of assignments defining the values for the elements:
- The usage type specifies how the attribute will be used during analysis, which is identified as either a cost, descriptor, restriction, or hierarchy.
- Units of a cost attribute are either distance or time units (for example, centimeters, meters, miles, minutes, and seconds).
Descriptors, hierarchies, and restrictions have unknown units.
- Data types can be either Boolean, integer, float, or double.
Cost attributes cannot be a Boolean data type. Restrictions are always Boolean, whereas a hierarchy is always an integer.
- Use by default automatically sets those attributes on a newly created network analysis layer.
If a cost, restriction, or hierarchy attribute is set to be used by default, the network analysis layers that are created on the network dataset are set to automatically use that attribute. Only one cost attribute in the network dataset can be set to be used by default. Descriptor attributes cannot be used by default.
Network attributes are created either in the New Network Dataset wizard (when defining a new network) or on the Attributes tab of the Network Dataset Properties dialog box. To create network attributes, first define the name of the attribute and its usage, units, and data type. Next, assign evaluators for each source that will provide the values for the network attribute when the network dataset is built. This is done by selecting the attribute and clicking Evaluators.
Learn more about types of evaluators used by a network
Network attributes can also have parameters that can be used by their evaluators. Parameters allow dynamic analysis with network attributes by modeling such characteristics as truck height or weight, weather factors, or current speeds. Restriction attributes always have a parameter named Restriction Usage.
Learn more about using parameters with network attributes
Cost
Certain attributes are used to measure and model impedances, such as travel time (transit time on a street) or demand (the volume of garbage picked up on a street). These attributes are apportionable along an edge; that is, they are divided proportionately along the length of an edge. For example, if travel time is modeled as a cost attribute, traversing half an edge will take half the time as does traversing the whole edge: if the travel time to traverse the edge is 3 minutes, it takes 1.5 minutes to traverse half the edge. If you are looking for a 1.5-minute route along this edge, the route feature is created from the first half of the edge feature.
Network analysis often involves the minimization of a cost (also known as impedance) during the calculation of a path (also known as finding the best route). Common examples include finding the fastest route (minimizing travel time) or the shortest route (minimizing distance). Travel time (drive time, pedestrian time) and distance (meters) are also cost attributes of the network dataset.
![Caution Caution](rsrc/caution.png)
The Network Analyst solvers do not support minimizing negative impedance values. If a cost attribute with negative values is used as the impedance attribute of a solver, the solver treats those network elements with negative values as prohibited.
Descriptors
Descriptors are attributes that describe characteristics of the network or its elements. Unlike costs, descriptors are not apportioned. This means that the value does not depend on the length of the edge element. For example, the number of lanes is an example of a descriptor on a street network. Speed limit of streets is another descriptor attribute for a street network. Although it is not a cost attribute and cannot be used as an impedance, it can be used in conjunction with distance to create a cost attribute (for example, drive time) that can be used as an impedance.
Restrictions
Restrictions can be identified for particular elements such that, during an analysis, traversing restricted elements is prohibited entirely, avoided, or even preferred.
It is possible to turn restrictions on and off at solve time using check boxes. Furthermore, you can check on a restriction but only truly restrict the element if a value you enter at solve time fits certain criteria. This way, if the vehicle you are currently routing is over a given weight, for instance, you can check on a weight restriction, enter the vehicle's weight, and solve, and Network Analyst finds the best route that excludes roads where the weight limit would be exceeded.
Learn more about setting restrictions as parameters for route analysis
In all cases, a restriction attribute is defined using a Boolean data type such that each network element either has the restriction (the Boolean value evaluates to true) or doesn't have the restriction (the Boolean value evaluates to false). A Restriction Usage parameter is automatically added to all restriction attributes, but you can add more parameters if you need to. The Restriction Usage parameter can be set to one of the following seven values in ArcGIS for Desktop:
- Prohibit
- Avoid: High
- Avoid: Medium
- Avoid: Low
- Prefer: Low
- Prefer: Medium
- Prefer: High
The value assigned to this parameter determines whether the restriction attribute prohibits, avoids, or prefers the network elements it is associated with. Furthermore, the degree to which network elements are avoided or preferred can be defined by choosing High, Medium, or Low. The three subsections below introduce the general restriction usages.
Prohibit network elements
The most common use of a restriction is to prohibit traversal. For example, one-way streets can be modeled with a restriction attribute so they can only be traversed from one end to another, but not in the reverse direction. Similarly, a restriction attribute on walkways can completely prohibit traversal so that the network elements identified as walkways are excluded from any route that is generated for a motorized vehicle.
Avoid network elements
Instead of prohibiting traversal on certain network elements, you might want to partially relax a prohibit restriction whereby the solver avoids traversing the elements, unless it is impossible or too costly to do so. For instance, if you are routing commercial delivery vehicles and want them to avoid driving on private roads, you can use a restriction attribute and set its Restriction Usage parameter to Avoid. This way, private roads are avoided in most cases, but if a delivery happens to be on a private road, the route is still able to reach the destination. Also, if avoiding a private road while en route to a stop is too costly (that is, the detour around the private road is too long), the solver allows the nuisance and sends the vehicle through the private road.
Prefer network elements
The third type of restriction attribute is a prefer restriction. Although contradictory to the name "restriction," a prefer restriction makes network elements more attractive to a solver so that they are more likely to be included in the results. Consider a truck carrying hazardous materials (hazmat). There are some roads where transporting hazmat is illegal, some where it is allowed, and some where it is preferred because an accident occurring along those roads would be easiest for emergency responders to reach and contain. You can model these rules by configuring a restriction attribute with a Restriction Usage value of Prohibit on roads where it is illegal to transport hazmat and configuring another restriction attribute with a Restriction Usage value of Prefer on roads where hazmat transport is favored. The result is that your vehicles will never be routed on prohibited roads and will tend to be routed along preferred roads.
Hierarchy
Hierarchy is the order or rank assigned to network elements. A street network might have an attribute on the source features that breaks the roads down into three (or more) classes, such as local, secondary, and primary. You can use this attribute on the source features to build a hierarchy attribute on the network dataset.
Once a hierarchy attribute is present, you can choose whether to use or ignore it when solving a network analysis.
Using a hierarchy tends to reduce the time it takes to solve an analysis across a large network. It also simulates how drivers generally elect to travel on highways and interstates because navigating on higher-order roads is more predictable and simpler than on lower-order roads. The drawback of hierarchical solving is that it isn't exact; that is, you might be able to further minimize the travel time or distance of an analysis by ignoring the hierarchy.
Learn more about performing a network analysis with hierarchy