Types of evaluators used by a network

Available with Network Analyst license.

Each attribute defined in the network must have values for each source participating in the network. An evaluator assigns values for the attribute of each source. The field script evaluator assigns an evaluator from a field of a network source to a combination of a network attribute, source, and direction. In addition, there are other types of evaluators that can be used, including constant, function, and element script evaluators.

The evaluators are described below.

EvaluatorDescription

Field Script

The most common way to assign values for a network attribute is by identifying a single field that will be used to evaluate the network attribute when the network dataset is built. For example, a field evaluator can be used in cases in which the value describes a measurement, such as the length of each road segment in meters.

The field evaluator can be modified to take a field expression as the value instead of a single field. For example, if the units of the network attribute are in meters but the units of source data are in feet, you can create an expression to convert the feet to meters when the network dataset is built.

Tip:

Field expression evaluators written in VBScript execute faster than those written in Python. You should use VBScript for this reason; however, keep in mind the following when choosing a scripting language:

  • Most ArcGIS products can interpret VBScript or Python.
  • ArcGIS Server (Linux) can interpret Python only.
  • The script in a field expression evaluator is interpreted when the network dataset is built.
The logical implications of these points are the following:
  • If you plan to build the network dataset using an ArcGIS product other than ArcGIS Server (Linux), you can write the script in VBScript.
  • If you plan to build the network dataset on ArcGIS Server (Linux), you must write it in Python.
  • If you plan to build the network dataset using an ArcGIS product other than ArcGIS Server (Linux), and then use ArcGIS Server (Linux) to solve network analyses that reference the built network dataset, you can write the script in VBScript.

Constant

Attributes can be assigned a constant value. The value can be numeric for cost, descriptor, and hierarchy attributes, or a Boolean data type of Use Restriction or Ignore Restriction for a restriction attribute.

Function

The function evaluator calculates attribute values by performing a simple mathematical operation or logical comparison on another attribute value and a parameter value or constant. For numeric attribute types, the values can be derived by multiplying, dividing, adding, or subtracting another network attribute and a constant or parameter value. For Boolean attribute types, the values are derived from an expression that compares another attribute value to a parameter value or constant, for example, MaxHeight < VehicleHeight.

Note:
The addition + and subtraction - operators cannot be used on a cost attribute.

The + and - operators were added at ArcGIS Pro 2.3. The evaluators will produce an error in older versions of the software.

Turn Category

The turn category evaluator assigns a default cost value for transitioning between two edge elements. The cost is based on the deflection angle between the two edges and the road class (primary, secondary, or local) of the edges that are traversed. It can also depend on the category of the crossroad being crossed by the turn movement. For example, you can use the turn category evaluator to make all left turns, which are determined by deflection angles, from local roads onto secondary roads take longer than left turns from local roads onto other local roads. You can also specify added costs for other transitions, such as adding a 10-second delay when continuing straight at an intersection of two secondary roads.

Element Script

Attributes can be assigned from the result of executing a VBScript or Python script. This provides a way to model complex attributes. Unlike other evaluators, the element script evaluator does not assign values when a network is built. Instead, it assigns values when a network analysis requires the use of that attribute, which can occur at solve time. If the values of an attribute change constantly, the use of the element script evaluator can ensure that attributes are updated for each network analysis.

Tip:

Since the element script evaluator calculates its values at the time of analysis, this evaluator tends to negatively affect analysis performance. Use another evaluator if possible.

The element script evaluators written in VBScript execute faster than those written in Python. You should use VBScript for this reason; however, keep in mind the following when choosing a scripting language:

  • Most ArcGIS products can interpret VBScript or Python.
  • ArcGIS Server (Linux) can interpret Python only.
  • The script in a script evaluator is interpreted when a network analysis layer is solved.
The logical implications of these points are the following:
  • If you plan to solve network analyses using an ArcGIS product other than ArcGIS Server (Linux), you can write the script in VBScript.
  • If you plan to solve analyses on ArcGIS Server (Linux), you must write it in Python.

Traffic

Traffic evaluators are designed for traffic data. They can provide travel times for a given time of day and day of the week using historical or live data. They include fallback cost attributes that provide weekday and weekend travel times when specific time-of-day travel times are not available. Traffic evaluators also have a time-independent cost attribute that Network Analyst references when sequencing stops in a route analysis or visits in a vehicle routing problem, and also when the analysis does not specify arrival or departure time.

Learn more about traffic

Public Transit

The Public Transit evaluator calculates the travel time along a public transit line segment based on the scheduled public transit service. The travel time returned includes the wait time until the next scheduled transit trip begins plus the travel time along the transit line segment from one end to the other. Use this evaluator to model people traveling by public transit. It's not designed to model the travel time of buses driving along roads.

The Public Transit evaluator is only available for time-based cost attributes on edge sources called LineVariantElements when the network dataset's feature dataset and geodatabase contain all the feature classes and tables required by the Network Analyst public transit data model.

Learn more about the Public Transit evaluator.

Learn more about network analysis with public transit

Same as Default

There is a default evaluator type for each Source category. When a source evaluator type is set to Same as Default, it uses the evaluator that is set as default.

Same as Along

When a source evaluator type in the Edges category is set to Same as Along, it uses the evaluator that is used by the source feature Street (Along).

Note:

You'll need to rebuild network datasets if the changes you make require the network dataset to access its source feature classes. For instance, creating a field evaluator that pulls time costs from a source feature class requires the network to be rebuilt. Changing the geometry of source features requires the network dataset to be rebuilt. However, the network doesn't need to be rebuilt with other types of evaluators, since these evaluators don't draw information directly from the source feature classes.