Skip To Content

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.

Evaluator

Description

Field script evaluator

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 where 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 into meters when the network dataset is built.

Tip:

Field expression evaluators written in VBScript execute much faster than those written in Python. You should try to use VBScript for this reason; however, keep in mind the following points 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 any 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 any 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 evaluator

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

Function evaluator

The function evaluator calculates attribute values by performing a multiplicative or logical function on another attribute value or parameter value. For numeric attribute types, the values are derived from an expression that multiplies the value of another attribute by some value, for example, DriveTime * 1.25. For Boolean attribute types, the values are derived from an expression that compares another attribute value to a parameter value, for example, MaxHeight < VehicleHeight.

Turn category evaluator

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 10-second delays when continuing straight at the intersection of two secondary roads.

Element script evaluator

Same as

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 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. Try to use another evaluator if possible.

The element script evaluators written in VBScript execute much faster than those written in Python. You should try to use VBScript for this reason; however, keep in mind the following points 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 any 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 evaluator

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-neutral cost attribute that Network Analyst references when sequencing stops in a route analysis or visits in a vehicle routing problem.

Same as Default

There is a default evaluator type under 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).