inifile the simulation with
jpscore can be controlled.
The typical structure of an
inifile is as follows:
<jupedsim> <header> <!-- seed , geometry, output format --> </header> <traffic_constraints> <!-- traffic information: e.g closed doors or smoked rooms --> </traffic_constraints> <goals> <!-- goals (closed polygons) outside the geometry--> </goals> <agents> <agents_distribution> <!--persons information and distribution --> </agents_distribution> </agents> <operational_models> <model id="n" description="name"> <!-- parameters of model (<n>, "name") --> </model> <!-- other models can be defined --> </operational_models> <route_choice_models> <router router_id="n" description="name"> <!-- parameters of router (<n>, "name") --> </router> <!-- other routers can be defined --> </route_choice_models> </JuPedSim>
The header comprises the following elements:
seedvalue of the random number generator to
s. If missing the current time (
time(NULL)), is used i.e. random initial conditions.
<max_sim_time>t</max_sim_time>the maximal simulation time in seconds.
<num_threads>n</num_threads>the number of used cores.
<show_statistics>true</show_statistics>Show different aggregate statistics e.g. the usage of the doors. (default: false)
<logfile>log.txt</logfile>save relevant information about the simulation to a log file. Useful to keep track of warnings or errors that may rise during a simulation.
<progressbar/>: show a progress bar of the simulation.
The trajectory file
<trajectories format="xml-plain" fps="8" color_mode="velocity"> <file location="trajectories.xml" /> </trajectories>
The options for the format are
xml-plain: the default xml format. It can lead to large files. See section xml-plain.
plain: simple text format. See section plain.
fpsdefines the frame rate per second for the trajectories.
color_mode: coloring agents in the trajectories. Options are:
velocity(default): color is proportional to speed (slow –> red).
group: color by group
file locationdefines the location of the trajectories. All paths are relative to the location of the project file.
<geometry>geometry.xml</geometry>The name and location of the geometry file. All file locations are relative to the actual location of the project file. See specification of the geometry format.
This section defines constraints related to the traffic.
At the moment the state of the doors can be changed (
<traffic_constraints> <!-- doors states are: close or open --> <doors> <door trans_id="4" caption="Main-gate" state="open" /> <door trans_id="6" caption="Rear-gate" state="close" /> <file>traffic.xml</file> </doors> </traffic_constraints>
trans_id: unique id of that specific door as defined in the geometry file. See geometry.
caption: optional parameter defining the caption of the door.
statedefines the state of the door. Options are
filefile containing further constraints. See traffic.xml
Additional goals might be defined outside the geometry. They should NOT overlap with any walls or be inside rooms. It is recommended to position them near the exits.
Goals are defined with close polygons, with the last vertex is equal to the first one.
<routing> <goals> <goal id="0" final="false" caption="goal 1"> <polygon> <vertex px="-5.0" py="-5.0" /> <vertex px="-5.0" py="-2.0" /> <vertex px="-3.0" py="-2.0" /> <vertex px="-3.0" py="-5.0" /> <vertex px="-5.0" py="-5.0" /> </polygon> </goal> <file>goals.xml</file> </goals> </routing>
filefile containing further goals. See goals.xml
There are two ways to distribute agents for a simulation:
- random distribution in a specific area before the simulation starts.
- distribution by means of sources during the simulation.
An example how to define agent’s characteristics with different number of attributes is as follows
<agents> <agents_distribution> <group group_id="1" room_id="0" number="10" /> <group group_id="2" room_id="0" subroom_id="0" number="10" goal_id="" router_id="1" /> </agents_distribution> </agents>
group_id: mandatory parameter defining the unique id of that group.
number: mandatory parameter defining the number of agents to distribute.
room_id: mandatory parameter defining the room where the agents should be randomly distributed.
subroom_id: defines the id of the subroom where the agents should be distributed. If omitted then the agents are homogeneously distributed in the room.
goal_id: should be one of the
ids defined in the section goals. If omitted or is
-1then the shortest exit to the outside is chosen by the agent.
router_id: defines the route choice model to be used. See documentation of available routers.
age: not yet used by the operational models.
gender: not yet used.
height: not yet used.
patience: this parameter influences the route choice behavior when using the quickest path router. It basically defines how long a pedestrian stays in jams before attempting a rerouting.
pre_movement_sigma: premovement time is Gauss-distributed .
Risk tolerance can be Gauss-distributed, or beta-distributed. If not specified then it is defined as :
y_max: define a bounding box where agents should be distributed.
startY: define the initial coordinate of the agents. This might be useful for testing/debugging. Note that these two options are only considered if
agent_parameter_id: choose a set of parameters for the operational models.
Besides distributing agents randomly before the simulation starts, it is possible to define sources in order to “inject” new agents in the system during the simulation.
<agents_sources> <source id="1" frequency="2" agents_max="10" group_id="1" caption="caption" greedy="true"/> <source id="2" time="10" agent_id="50" group_id="1" caption="caption" greedy="true"/> <source id="10" caption="new-source" time_min="5" time_max="30" frequency="5" N_create="10" agents_max="300" group_id="0" x_min="0" x_max="3" y_min="0" y_max="3" percent="0.5" rate="2" greedy="true"/> <file>sources.xml</file> </agents_sources>
id: id of the source
frequency: number of pedestrians per second.
N_create: How many agents to create at once (default = 1).
percent: percent of
rate: rate of generate of agents
time_max: Time lifespan of the source
agents_max: maximal number of agents produced by that source.
group_id: group id of the agents. This
idshould match a predefined group in the section Agents_distribution.
false): returns a Voronoi vertex randomly with respect to weights proportional to squared distances. For vertexes and distances to their surrounding seeds calculate the probabilities as
If this attribute is set to
true, the greedy approach is used. That means new agents will be placed on the vertex with the biggest distance to the surrounding seeds.
time: time of appearance of agent with id
startY: Distribute one pedestrians at a fix position.
y_max: Bounding box for generation od agents
file: a file containing further sources. See sources.xml
Example of usage:
- Busses are coming every 10 min (600 seconds).
- Every bus transports 100 pedestrians
- When the bus stops, every 2 seconds 10 pedestrians leave the bus
- 3 Buses at max.
<source id="10" frequency="600" N_create="100" agents_max="300" percent="0.1" rate="2" greedy="true"/>
One of the available operational models should be defined.
One of the available routers should be defined.