Provides read and write access to the properties of a travel mode.
The TravelMode object provides read and write access to the properties of a travel mode. Travel modes can be created on a network dataset or configured on a portal network service and model a mode of transportation (car driving time, walking distance, truck driving time, truck driving time for a truck that has a height of 13 feet and a weight of 80,000 pounds, and so on). Once a mode is created, it can be used as input in network analysis problems to control travel behavior.
To use a travel mode in your network analysis, you can create a TravelMode object and modify its properties as needed.
The GetTravelModes function can be used to access the existing TravelMode objects on a network data source. You can use one of these existing TravelMode objects as a template when creating a new TravelMode object.
While it is possible to modify the TravelMode objects that you get from the GetTravelModes function, this is not recommended. Modifications to these TravelMode objects cannot be saved back to the network data source, and you may run into naming collisions if you use the modified TravelMode object in an analysis. As a best practice, always create a new travel mode from an existing travel mode and modify the properties of the new travel mode.
An existing TravelMode object to use as a template for the one to be created. The new TravelMode object will be created with the same properties as the template object, except that the name property will be altered to include angle brackets indicating that the new travel mode is a copy. For example, if the template travel mode was named Driving Time, the new one will be named <Driving Time>.
If a template is not specified or a value of None is used, a blank TravelMode object will be created, and the values of all properties must be explicitly set before using the travel mode in a network analysis.
Lists the parameterized attributes used by the travel mode. The property is a dictionary. The dictionary key is a two-value tuple consisting of the attribute name and the parameter name. The value for each item in the dictionary is the parameter value. An empty dictionary means the travel mode uses the current default parameters of the network dataset.
Parameterized network attributes are used to model some dynamic aspect of an attribute's value. For example, a tunnel with a height restriction of 12 feet can be modeled using a parameter. A vehicle's height in feet can be specified as the attribute parameter value. If the vehicle is taller than 12 feet, this restriction will evaluate to True, thereby restricting travel through the tunnel. Similarly, a bridge could have a parameter to specify a weight restriction. Learn more about attribute parameters.
A short text description of the travel mode.
Indicates the distance-based cost attribute for reporting directions and for solving vehicle routing problems.
Even travel modes that model driving time and walking time would set distanceAttributeName to a distance-based cost attribute, such as Meters.
The network cost attribute used as impedance. This cost attribute is minimized while solving network analysis problems.
A travel mode that models car driving time would indicate a cost attribute that calculates the time it takes a car to traverse an edge or street segment. In contrast, a walking time travel mode would have a cost attribute that calculates the time it takes to walk along edges or streets. A distance-based cost attribute, such as Meters, would be set for either a driving distance or walking distance travel mode. Learn more about cost attributes.
The unique name of the travel mode.
The list of the restriction attributes used when solving network analysis problems with this travel mode. An empty list, , indicates that no restriction attributes are used for this travel mode.
Restrictions can prevent travel on roads with certain characteristics. Learn more about restriction attributes.
Specifies whether the travel mode generalizes the geometry of analysis results and by how much. The syntax is "<value> <units>", for example, "10 Meters". A value of None means that the geometry will not be simplified.
Larger simplification values result in reduced bandwidth requirements and rendering times, but the output line and polygon features aren't as clear, especially as you zoom in on the map. Output routes for walking modes are not typically simplified as much as they are for driving modes. Pedestrian routes are viewed at larger map scales, so more detail is needed for the route lines.
Indicates the time-based cost attribute for reporting directions.
The values for impedance and timeAttributeName are typically the same when modeling time-based travel modes. When modeling distance-based travel modes, however, the timeAttributeName value would describe how long it takes to move along network edges, even though distance is being minimized instead of time. For a walking distance travel mode, for instance, timeAttributeName would be set to a cost attribute that calculates walking times.
Indicates the category of travel or vehicle represented by this travel mode. The following is a list of possible values:
Indicates whether the travel mode uses a hierarchy attribute while performing the analysis. The following is a list of possible values:
Indicates how the U-turns at junctions that could occur during network traversal are handled by the solver. The following is a list of possible values:
This sample shows how to print properties from a TravelMode object.
import arcpy network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND" # Get all travel modes from the network dataset travel_modes = arcpy.nax.GetTravelModes(network) # Print the impedance attribute and restrictions used for each travel mode for travel_mode_name in travel_modes: travel_mode = travel_modes[travel_mode_name] print(travel_mode_name) print("Impedance:", travel_mode.impedance) print("Restrictions:", ", ".join(travel_mode.restrictions)) print("")
This sample shows how to update TravelMode properties and use the updated travel mode in an analysis.
import arcpy network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND" # Get all travel modes from the network dataset travel_modes = arcpy.nax.GetTravelModes(network) # Construct a new TravelMode object from the existing Driving Time travel mode new_travel_mode = arcpy.nax.TravelMode(travel_modes["Driving Time"]) # Update the useHierarchy property to turn hierarchy off, and update the name new_travel_mode.name = "Driving Time without Hierarchy" new_travel_mode.useHierarchy = "NO_HIERARCHY" # Use the new travel mode object when constructing an OD cost matrix analysis od_object = arcpy.nax.OriginDestinationCostMatrix(network) od_object.travelMode = new_travel_mode