The suq-controller is a Python package for the open source microscopic pedestrian simulator Vadere. The sampling is automated and can be parallelized. All results are returned in a convenient format (pandas DataFrame).
The main motivation is to provide a tool to build Surrogate (S) or Uncertainty Quantification (UQ) models.
Note, that the project is a work in progress. Features are only implemented when required and we welcome contributions (feedback, code, documentation, tests, ...). Please interact through issues.
Use Python's package mangement tool and install with
pip3 install --upgrade pip
python3 -m pip install git+https://gitlab.lrz.de/vadere/suq-controller.git@master
Test if the installed package was installed successfully by running:
python3 -c "import suqc; print(suqc.__version__)"
This command should print the installed version number (and potentially infos to set up required folder) in the terminal.
Requirements:
- Python>=3.6
- Other packages listed in
requirements.txt
.
Run the code from the source directly (without install), please check if you meet the requirements (see requirements.txt
file). You can also run pip3 install -r /path/to/requirements.txt
. Make also sure that the Python paths are set correctly (possibly add with sys
).
See [SRC_PATH]/tutorial
Please only contribute (report bugs, code, ideas, etc.) in the original repository.
https://gitlab.lrz.de/vadere/suq-controller/
To update the suq-controller with the current master run the following git command from Vadere's root source code path:
git subtree pull --prefix Tools/SUQController [email protected]:vadere/suq-controller.git master --squash
A few hints for your Vadere .scenario
files:
- ScenarioChecker
Before running your scenario automatically on suqc, activate theScenarioChecker
(Project > Activate ScenarioChecker) and run it in theVadereGui
. The ScenarioChecker will point out potential problems with your scenario file. - Default parameters
Make sure to setrealTimeSimTimeRatio
to 0.0. (Values > 0.0 slow down the simulation for the visualisation)
Another point that may cost a lot of computation time is theoptimizationType
, consider usingDISCRETE
(discrete optimization) instead ofNELDER_MEAD
. Please note, thatvaryStepDirection
should always be activated with discrete optimization.
RemoveattributesCar
from the .scenario file if you are not using any vehicles to avoid confusion of attributes. - Visual check
Visually check the results of your simulation, maybe check upper and lower parameter bounds. - Clean topography
Remove elements in your topography that are not used. Sometimes through the interaction with the mouse, tiny obstacles or targets are created unintentionally. Check the elements in your topography, you can take a look at theElementTree
in the Topography creator tab. Remove all elements that are unused, especially focusing on targets. - Data processors
Remove all data processors and output files that you don't use. In particular, remove the overlap processors, they are intended for testing purposes. - Reproducibility
Make sure that your runs are reproducible - work with afixedSeed
by activatinguseFixedSeed
or save all thesimulationSeed
s that have been used. (Another way is to provide afixedSeed
for each runs with suqc, in this case make sure thatuseFixedSeed
is true.)