aequilibrae.paths.results#

class aequilibrae.paths.results.AssignmentResults[source]#

Assignment result holder for a single TrafficClass with multiple user classes

get_graph_to_network_mapping()[source]#
get_load_results() DataFrame[source]#

Translates the assignment results from the graph format into the network format

Returns:

dataset (pd.DataFrame): Pandas DataFrame data with the traffic class assignment results

get_sl_results() DataFrame[source]#
prepare(graph: Graph, matrix: AequilibraeMatrix) None[source]#

Prepares the object with dimensions corresponding to the assignment matrix and graph objects

Arguments:

graph (Graph): Needs to have been set with number of centroids and list of skims (if any)

matrix (AequilibraeMatrix): Matrix properly set for computation with matrix.computational_view(:obj:`list`)

reset() None[source]#

Resets object to prepared and pre-computation state

set_cores(cores: int) None#

Sets number of cores (threads) to be used in computation

Value of zero sets number of threads to all available in the system, while negative values indicate the number of threads to be left out of the computational effort.

Resulting number of cores will be adjusted to a minimum of zero or the maximum available in the system if the inputs result in values outside those limits

Arguments:

cores (int): Number of cores to be used in computation

total_flows() None[source]#

Totals all link flows for this class into a single link load

Results are placed into total_link_loads class member

class aequilibrae.paths.results.PathResults[source]#

Path computation result holder

>>> from aequilibrae.paths.results import PathResults

>>> project = create_example(project_path)
>>> project.network.build_graphs()

# Mode c is car in this project
>>> car_graph = project.network.graphs['c']

# minimize distance
>>> car_graph.set_graph('distance')

# If you want to compute skims
# It does increase path computation time substantially
>>> car_graph.set_skimming(['distance', 'free_flow_time'])

>>> res = PathResults()
>>> res.prepare(car_graph)
>>> res.compute_path(1, 17)

# Update all the outputs mentioned above for destination 9. Same origin: 1
>>> res.update_trace(9)

# clears all computation results
>>> res.reset()

>>> project.close()
compute_path(origin: int, destination: int, early_exit: bool = False, a_star: bool = False, heuristic: str | None = None) None[source]#

Computes the path between two nodes in the network.

A* heuristics are currently only valid distance cost fields.

Arguments:

origin (int): Origin for the path

destination (int): Destination for the path

early_exit (bool): Stop constructing the shortest path tree once the destination is found. Doing so may cause subsequent calls to update_trace to recompute the tree. Default is False.

a_star (bool): Whether or not to use A* over Dijkstra’s algorithm. When True, early_exit is always True. Default is False.

heuristic (str): Heuristic to use if a_star is enabled. Default is None.

get_heuristics() List[str][source]#

Return the available heuristics.

prepare(graph: Graph) None[source]#

Prepares the object with dimensions corresponding to the graph object

Arguments:

graph (Graph): Needs to have been set with number of centroids and list of skims (if any)

reset() None[source]#

Resets object to prepared and pre-computation state

set_heuristic(heuristic: str) None[source]#

Set the heuristics to be used in A*. Must be one of get_heuristics().

Arguments:

heuristic (str): Heuristic to use in A*.

update_trace(destination: int) None[source]#

Updates the path’s nodes, links, skims and mileposts

If the previously computed path had early_exit enabled, update_trace will check if the destination has already been found, if not the shortest path tree will be recomputed with the early_exit argument passed on.

If the previously computed path had a_star enabled, update_trace always recompute the path.

Arguments:

destination (int): ID of the node we are computing the path too

class aequilibrae.paths.results.SkimResults[source]#

Network skimming result holder.

>>> from aequilibrae.paths.results import SkimResults

>>> project = create_example(project_path)
>>> project.network.build_graphs()

# Mode c is car in this project
>>> car_graph = project.network.graphs['c']

# minimize travel time
>>> car_graph.set_graph('free_flow_time')

# Skims travel time and distance
>>> car_graph.set_skimming(['free_flow_time', 'distance'])

>>> res = SkimResults()
>>> res.prepare(car_graph)

>>> res.skims.export(project_path / "skim_matrices.omx")

>>> project.close()
prepare(graph: Graph)[source]#

Prepares the object with dimensions corresponding to the graph objects

Arguments:

graph (Graph): Needs to have been set with number of centroids and list of skims (if any)

class aequilibrae.paths.results.TransitAssignmentResults[source]#

Assignment result holder for a single Transit

get_load_results() DataFrame[source]#

Translates the assignment results from the graph format into the network format

Returns:

dataset (pd.DataFrame): DataFrame data with the transit class assignment results

prepare(graph: TransitGraph, matrix: AequilibraeMatrix) None[source]#

Prepares the object with dimensions corresponding to the assignment matrix and graph objects

Arguments:

graph (TransitGraph): Needs to have been set with number of centroids

matrix (AequilibraeMatrix): Matrix properly set for computation with matrix.computational_view(:obj:`list`)

reset() None[source]#

Resets object to prepared and pre-computation state

set_cores(cores: int) None#

Sets number of cores (threads) to be used in computation

Value of zero sets number of threads to all available in the system, while negative values indicate the number of threads to be left out of the computational effort.

Resulting number of cores will be adjusted to a minimum of zero or the maximum available in the system if the inputs result in values outside those limits

Arguments:

cores (int): Number of cores to be used in computation

Modules