NREL / altrios

https://nrel.github.io/altrios/
Other
17 stars 5 forks source link

Integration of private repo changes into train planner improvements #95

Closed mbbruch closed 1 month ago

mbbruch commented 1 month ago
  1. train planner improvements from private repo integrated into this repo.
  2. generate_return_demand implemented as separate functions for each train type. Functions are "registered" in a dict and looked up by train type.
  3. target_cars_per_train and min_cars_per_train are dicts where each Train_Type can have a different value specified.
  4. TrainPlannerConfig is a @dataclass to make code cleaner
  5. additional edge case handling to calculate number of trains in generate_demand_trains
  6. generate_dispatch_times renamed generate_dispatch_details. It now evenly spaces out all dispatches for each OD pair, rather than doing so separately for each train type, so that simultaneous departures are avoided.
  7. The alt.TrainConfig object is updated based on the actual dispatched rail vehicles (loaded and/or empty) including the rail_vehicles vector and the n_cars_by_type dict.
mbbruch commented 1 month ago

@FDsteven , this PR integrates the private repo changes into your ongoing train planner updates branch. Please review the list of changes above + the code changes and let me know if you have any questions.

@Shawn0516 , for your awareness, this is where I am starting to port your changes into the ALTRIOS repo.