Skip to content

Conversation

@Nitnelav
Copy link
Collaborator

@Nitnelav Nitnelav commented Oct 2, 2025

This pull request introduces support for the "motorcycle" transport mode across the core simulation and Ile-de-France scenario modules.
Everything should work properly, even for old simulations without motorcycles. The idea is to enable motorcycles in the simulation only if desired by modifying the config file. this is done in the python pipeline using the EditConfig java class :

        eqasim.run(context, "org.eqasim.core.scenario.config.EditConfig", [
            "--input-path", "%sconfig.xml" % context.config("output_prefix"),
            "--output-path", "%sconfig.xml" % context.config("output_prefix"),
            "--config:qsim.mainMode", "car,motorcycle",
            "--config:qsim.linkDynamics", "SeepageQ",
            "--config:qsim.seepMode", "bike,motorcycle"

Core simulation and configuration updates:

  • Included "motorcycle" in mode lists, cached modes, restricted modes, and estimator/cost model assignments in GenerateConfig to enable motorcycle support throughout the configuration pipeline.

Motorcycle utility estimation and prediction:

  • Implemented MotorcycleUtilityEstimator, MotorcyclePredictor, and MotorcycleVariables classes to provide utility calculation and variable prediction for motorcycle trips.

Scenario preparation and network integration:

  • Modified RunPreparation to allow motorcycles on all links where cars are permitted, ensuring the network supports motorcycle routing.

Ile-de-France scenario integration:

  • Updated IDFModeAvailability to check for motorcycle availability based on the useMotorcycle attribute, and added motorcycle-specific cost models and utility estimators to IDFModeChoiceModule.

@Nitnelav Nitnelav changed the title Handle motorcycles feat: Handle motorcycles Oct 2, 2025
@Nitnelav Nitnelav marked this pull request as draft October 6, 2025 12:32
@Nitnelav Nitnelav marked this pull request as ready for review October 9, 2025 07:50
@Nitnelav
Copy link
Collaborator Author

Nitnelav commented Oct 9, 2025

I've added a unit test specifically for motorcycles, I think this should be ok now.

One thing to note is that the melun_test case config.xml has an old structure.
So in the test I end up modifying some parts of the config which should not be needed if the melun_test config is updated (using this PR version of GenerateConfig).

Questions :

  • Do you want me to update the melun_test config and put motorcycles in there ?
  • Do you want some specific motorcycle documentation here or should it all be in the eqasim-synpop part ?

@sebhoerl
Copy link
Collaborator

Yes, let's update the config and for the documentation it depends. If there is not any special things to configure beyond the standard elements you mention above (predictor, estimator, ...) I think it is sufficient to have it in the eqasim-synpop.

@Nitnelav
Copy link
Collaborator Author

Ok, fixing tests led to a bunch of other fixes but I think everything is fine now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants