Skip To Content

GetTravelModes

Summary

Returns a dictionary of travel mode objects that are available with the network dataset. The dictionary keys are the names of the travel modes, and the dictionary values are the travel mode objects. The travel mode objects can be used to update a solver properties object (RouteSolverProperties, ClosestFacilitySolverProperties, ServiceAreaSolverProperties, ODCostMatrixSolverProperties, or LocationAllocationSolverProperties) before solving a particular analysis.

Discussion

One or more travel modes can be defined on a network dataset. This function can be used to populate a value list with the available travel modes given a network dataset. For example, a geoprocessing script tool can have a parameter of type String called Travel Modes that can be populated with a list of travel mode names once a network dataset has been selected on the tool dialog box.

If a network dataset does not support travel modes, this function returns an empty dictionary.

Syntax

GetTravelModes (network_dataset_path)
ParameterExplanationData Type
network_dataset_path

A variable that references the catalog path of the network dataset. The catalog path of a network dataset can be obtained from the dataSource property of a network dataset layer or a network analysis layer object. It can also be obtained from the catalogPath property of a network dataset describe object.

The parameter also accepts a network dataset layer object.

String
Return Value
Data TypeExplanation
Dictionary

A dictionary whose keys are the travel mode names and values are the travel mode objects.

Code sample

GetTravelModes example 1

Get the travel modes in a network dataset and print the walking time travel mode.

import arcpy

nds = 'C:/Data/SanDiego.gdb/Transportation/Streets_ND'
travel_modes = arcpy.na.GetTravelModes(nds)
print(travel_modes['Walking Time'])
GetTravelModes example 2

Create a modified version of a travel mode from the network dataset and use this travel mode when creating a new OD Cost Matrix layer.

import json

network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
# Get all travel modes from the network dataset
travel_modes = arcpy.na.GetTravelModes(network)
# Get the Driving Distance travel mode
dd_travel_mode = travel_modes["Driving Distance"]
# Make a json representation of the travel mode
travel_mode_json = json.loads(str(dd_travel_mode))
# Modify the userHierarchy property to turn hierarchy off, and update the name
travel_mode_json["useHierarchy"] = False
travel_mode_json["name"] = "Driving Distance without Hierarchy"
# Create a new travel mode object from the modified json
new_travel_mode_object = arcpy.na.TravelMode(json.dumps(travel_mode_json))
# Use the new travel mode object to MakeODCostMatrixAnalysisLayer
# We could also pass in the json directly without first converting it to an object
arcpy.na.MakeODCostMatrixAnalysisLayer(network, "OD Without Hierarchy", new_travel_mode_object)