Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JDEQSIM vs QSIM #21

Closed
gregmacfarlane opened this issue Oct 16, 2018 · 5 comments
Closed

JDEQSIM vs QSIM #21

gregmacfarlane opened this issue Oct 16, 2018 · 5 comments

Comments

@gregmacfarlane
Copy link
Contributor

gregmacfarlane commented Oct 16, 2018

I am running a scenario where I set some qsim parameters in the configuration, and then also load the SwissRailRaptor routing algorithm. My output configuration has both of the following sections:

<module name="JDEQSim" >
    <param name="carSize" value="7.5" />
    <param name="endTime" value="undefined" />
    <param name="flowCapacityFactor" value="1.0" />
    <param name="gapTravelSpeed" value="15.0" />
    <param name="minimumInFlowCapacity" value="1800.0" />
    <param name="squeezeTime" value="1800.0" />
    <param name="storageCapacityFactor" value="1.0" />
 </module>
<module name="qsim" >
      <!-- If set to true, creates a vehicle for each person corresponding to every network mode. Howev       er, this will be overridden if vehicle source is fromVehiclesData. -->
     <param name="creatingVehiclesForAllNetworkModes" value="true" />
     <param name="endTime" value="28:00:00" />
     <param name="flowCapacityFactor" value="0.5" />
     <!-- decides if waiting vehicles enter the network after or before the already driving vehicles w       ere moved. Default: false MANY OTHERS -->
</module>

Can someone please explain the difference between JDEQSIM and QSIM, or point me to documentation about the difference? It appears that JDEQSIM was loaded automatically with the SBBRaptor, but maybe not? If I set the flowCapacityFactor because I'm working with a smaller sample, do I have to set it in JDEQSIM also? Which flow capacity did my scenario even run with?

@golanbendor
Copy link

golanbendor commented Oct 16, 2018

If I am not mistaken, currently the Qsim is the default mobility simulator in MATSim.
The JDEQSim output config parameters are printed by default (those parameters are not used) to the output config file (even if JDEQSim is not specified as the current mobsim)

Check out the MATSim book which I think covers this (page 6):
image

You can always use the controller to set the mobsim to use Qsim:
config.controler().setMobsim("qsim");

@gregmacfarlane
Copy link
Contributor Author

I'm aware of QSIM being the default mobsim, but I am curious to know when and in what cases it is overridden, and how can I know when that is happening, if the JDEQSIM is still printing to the config, for instance.

@mrieser
Copy link
Contributor

mrieser commented Oct 16, 2018

JDEQSim is an alternative implementation of a mobility simulation for MATSim, but it does not provide support for all the features. Public Transport and Traffic lights for example are only supported when QSim is used, not in JDEQSim.

In the configuration output, in the controler-module, there should be a parameter "mobsim" which specifies which mobility simulation is used. Make sure it is set to "qsim" to be sure that QSim is used.

@gregmacfarlane
Copy link
Contributor Author

Okay, that's good to know. Is there a way to turn off printing modules to the config when they are not used?

@mrieser
Copy link
Contributor

mrieser commented Oct 16, 2018

Is there a way to turn off printing modules

None that I'm aware of.

If you want to exclude a single module, you could try something like this:

Config config = ConfigUtils.loadConfig("path/to/my/config.xml");
config.removeModule(JDEQSimConfigGroup.NAME);

But that's rather cumbersome.

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

No branches or pull requests

3 participants