Note
Go to the end to download the full example code.
Comparing Model Ouputs#
In this example we show how to compare outputs across iterations or across models. Here we illustrate using two iterations from the same project, but thanks to the use of standardised KPIs, results can be compared across model years or even across cities.
sphinx_gallery_thumbnail_path = ‘../../examples/result_analysis/pax_in_network.png’
from pathlib import Path
from polaris.analyze.kpi_comparator import KpiComparator
from polaris.analyze.result_kpis import ResultKPIs
from polaris.runs.convergence.convergence_iteration import ConvergenceIteration
from polaris.runs.scenario_compression import ScenarioCompression
from polaris.utils.database.migration_manager import MigrationManager
from polaris.utils.database.standard_database import DatabaseType
project_dir = Path("/tmp/Bloomington")
iteration_3 = ConvergenceIteration.from_dir(project_dir / "Bloomington_iteration_3")
iteration_4 = ConvergenceIteration.from_dir(project_dir / "Bloomington_iteration_4")
# This is generally not needed unless you are analysing results from an older model
MigrationManager.upgrade(
ScenarioCompression.maybe_extract(iteration_3.files.demand_db), DatabaseType.Demand, redo_triggers=False
)
MigrationManager.upgrade(
ScenarioCompression.maybe_extract(iteration_4.files.demand_db), DatabaseType.Demand, redo_triggers=False
)
c = KpiComparator()
c.add_run(ResultKPIs.from_iteration(iteration_3), "A label (it3)")
c.add_run(ResultKPIs.from_iteration(iteration_4), "A diff label [it4]")
c.plot_everything()
plot_act_dist
plot_activity_start_time_distributions
plot_calibration_destination
plot_calibration_for_activity_generation
plot_calibration_for_boardings
plot_calibration_for_mode_share
plot_calibration_timing
plot_congestion_pricing
plot_congestion_removal
plot_count_validation
plot_count_validation: failed
plot_cpu_mem
plot_freight_in_network
plot_fundamental_diagram
plot_gaps
plot_mode_share
plot_network_gaps
plot_pax_in_network
plot_polaris_exe
plot_polaris_exe: failed
plot_population
plot_rmse_vs_observed
plot_skim_stats
plot_tnc
plot_transit
plot_trip_length_distributions
/builds/polaris/code/polarislib/polaris/analyze/kpi_comparator.py:768: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). Consider using `matplotlib.pyplot.close()`.
fig, ax = plt.subplots(figsize=(10, 6))
plot_trips_with_path
plot_validation_for_speeds
plot_veh_in_network
plot_vehicle_connectivity
plot_vmt
plot_vmt_by_link_type
Total running time of the script: (0 minutes 9.297 seconds)