The eqasim framework features an integrated transport simulation environment. It is based on the agent-based transport simulation framework MATSim with added components for simulation of discrete choice models.
The objective of this PR is to natively support DRT in Eqasim. By making use of the recent developments that allow optional modules to be defined in EqasimConfigurator and its subclasses, the DRT module and related functionalities are activated when a MultiModeDrtConfigGroup is detected.
This implementation is compatible with the presence of various DRT modes running simultaneously.
As for the mode choice, besides extending the ModeParameters class with DrtParameters, the following base components are added
a DrtWalkConstraint that prevents drt trips with walk legs only from being selected by the mode choice model
a DrtVariables class comprising the wait, access, travel and egress times as well ass the euclidean distance and the monetary cost of the trip
a DrtPredictor interface and a DefaultDrtPredictor implementation class.
a DrtUtilityEstimator using the ModeParameters and the DrtPredictor.
Functionality for DRT analysis is also included.
Moreover, two scripts are present to ease the building of drt scenarios
CreateDrtVehicles to create a drt_vehicles.xml file with a certain number of vehicles distributed randomly on the road network.
AdaptConfigForDrt to convert a regular config file to one well adapted for running drt with Eqasim by making sure that:
The drt modes are added to the set of cached modes
The DrtWalkConstraint is added to the set of verified trip constaints
The cost models and utility estimators are properly set (as provided or the default ones if not)
The QSim start time interpretation and end time interpretation are set correctly
Default parameters for max wait time, detour factor, rebalancing, insertion search, and zonal system are also set
This functionality for creating a DRT scenario and then running it is tested.
In order to use it in one of the use case modules, users can follow an approach analogous to the one present in the related unit test. The minimum requirement consists of a ModeAvailability that allows the agents to use DRT mode. The other mode choice components should be extended if needed.
Alongside the functionality for DRT, this PR also includes the replacing of EqasimMainModeIdentifier by RoutingModeMainModeIdentifier as mentioned in #184.
The objective of this PR is to natively support DRT in Eqasim. By making use of the recent developments that allow optional modules to be defined in EqasimConfigurator and its subclasses, the DRT module and related functionalities are activated when a MultiModeDrtConfigGroup is detected.
This implementation is compatible with the presence of various DRT modes running simultaneously.
As for the mode choice, besides extending the ModeParameters class with DrtParameters, the following base components are added
Functionality for DRT analysis is also included.
Moreover, two scripts are present to ease the building of drt scenarios
This functionality for creating a DRT scenario and then running it is tested.
In order to use it in one of the use case modules, users can follow an approach analogous to the one present in the related unit test. The minimum requirement consists of a ModeAvailability that allows the agents to use DRT mode. The other mode choice components should be extended if needed.
Alongside the functionality for DRT, this PR also includes the replacing of EqasimMainModeIdentifier by RoutingModeMainModeIdentifier as mentioned in #184.