Summary
Returns a dictionary of travel mode objects that are available with the network data source. 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, VehicleRoutingProblemSolverProperties, or LocationAllocationSolverProperties) before solving a particular analysis.
Discussion
One or more travel modes can be defined on a local network dataset or on a network datasource from an ArcGIS Enterprise or ArcGIS Online portal. This function can be used to populate a value list with the available travel modes given a network data source. For example, a geoprocessing script tool may 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 data source does not support travel modes, this function returns an empty dictionary.
To use GetTravelModes with a portal URL, you must be signed in to the portal.
ArcGIS Online user accounts can be configured to use different languages, which changes the names of the available travel modes. To enable script writing functionality that works regardless of the language set for the user account, the dictionary keys returned by the GetTravelModes function always correspond to the English name of the travel modes. To get the localized name of a travel mode, use the name property of the travel mode object.
Syntax
GetTravelModes (network_dataset_path)
Parameter | Explanation | Data Type |
network_dataset_path | The network dataset or the URL of a portal configured with the network analysis services. A network dataset can be referenced as a catalog path, network dataset layer object, or layer name. | String |
Data Type | Explanation |
Dictionary | A dictionary whose keys are the travel mode names and whose values are the travel mode objects. |
Code sample
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'])
Create a list of travel mode names on ArcGIS Online. The names can be localized depending on the user's account setting.
import arcpy
travel_modes = arcpy.na.GetTravelModes("https://www.arcgis.com/")
travel_mode_names = [travel_modes[mode].name for mode in travel_modes]
This sample shows how to get a travel mode from a network and print some of its properties.
import arcpy
network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
# Get all travel modes from the network dataset
travel_modes = arcpy.na.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 clone a travel mode from a network, update its properties, and use it 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.na.GetTravelModes(network)
# Construct a new TravelMode object from the existing Driving Time travel mode
new_travel_mode = arcpy.na.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 creating an OD cost matrix analysis layer
arcpy.na.MakeODCostMatrixAnalysisLayer(network, "OD Cost Matrix", new_travel_mode)