vadere merge requestshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests2021-11-18T13:00:54+01:00https://gitlab.lrz.de/vadere/vadere/-/merge_requests/175resolve issue 3202021-11-18T13:00:54+01:00Mayr, Christina Mariaresolve issue 320 use suggested solution in #320 use suggested solution in #320Mayr, Christina MariaMayr, Christina Mariahttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/176add scenarios to psychology layer2021-11-25T09:54:26+01:00Mayr, Christina Mariaadd scenarios to psychology layerhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/178Merge branch 'dropletModel' into 'master'2021-11-26T17:25:20+01:00Rahn, SimonMerge branch 'dropletModel' into 'master'Update the TransmissionModel; clean up scenario files; add a more efficient data processor needed for evaluating the healthState of pedestriansUpdate the TransmissionModel; clean up scenario files; add a more efficient data processor needed for evaluating the healthState of pedestriansRahn, SimonRahn, Simonhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/179Fix #334 negative pathogen load in stationary pedestrians2021-12-03T16:46:51+01:00Rahn, SimonFix #334 negative pathogen load in stationary pedestrians- Pedestrians that are directly placed into the topography (without using a source) got only default values defined in the constructor HealthStatus().
Now, these pedestrians get assigned the healthStatus as defined in the scenario file (...- Pedestrians that are directly placed into the topography (without using a source) got only default values defined in the constructor HealthStatus().
Now, these pedestrians get assigned the healthStatus as defined in the scenario file (for each individually placed pedestrian).
- Update default values in AttributesTransmissionModelRahn, SimonRahn, Simonhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/180Upgrade log4j2021-12-14T14:02:01+01:00Mayr, Christina MariaUpgrade log4jfrom version 2.11.1 -> 2.16.0from version 2.11.1 -> 2.16.0https://gitlab.lrz.de/vadere/vadere/-/merge_requests/181Vadere version 2.0 - Generalize sources2021-12-17T11:37:51+01:00Mayr, Christina MariaVadere version 2.0 - Generalize sourcesCurrently, agents are spawned
* according to a Poisson process (PoissonDistribution, NegativeExponentialDistribution)
* in a repetitive manner (UniformDistribution)
Hence, only distributions were available.
Now, three spawning procedur...Currently, agents are spawned
* according to a Poisson process (PoissonDistribution, NegativeExponentialDistribution)
* in a repetitive manner (UniformDistribution)
Hence, only distributions were available.
Now, three spawning procedures are available:
* Distributions
* Different distributions over time
* Time series
Therefore, the sources have been generalized.
Examples:
```
"interSpawnTimeDistribution" : "constant",
"distributionParameters" : {
"updateFrequency" : 1.0
},
```
```
"interSpawnTimeDistribution" : "timeSeries",
"distributionParameters" : {
"..." : [2,4,5,0,4]
},
```https://gitlab.lrz.de/vadere/vadere/-/merge_requests/182Keep commit hash in migration2022-02-03T09:18:47+01:00Mayr, Christina MariaKeep commit hash in migrationCurrently, the commit hash is lost during migrations.
I have adjusted the behavior.Currently, the commit hash is lost during migrations.
I have adjusted the behavior.https://gitlab.lrz.de/vadere/vadere/-/merge_requests/183Remove elliptical aerosol clouds from transmission model2022-02-04T17:41:45+01:00Rahn, SimonRemove elliptical aerosol clouds from transmission modelAn `AerosolCloud` in the transmission model was either elliptical or circular. The elliptical shape has little effect on the simulation outcome. Circular shapes are much easier to handle and comprehend. Therefore, the elliptical shape wa...An `AerosolCloud` in the transmission model was either elliptical or circular. The elliptical shape has little effect on the simulation outcome. Circular shapes are much easier to handle and comprehend. Therefore, the elliptical shape was removed and the model simplified.
- In `TransmissionModel`, adapt update routines to new circular shapes; separate routines relating to aerosol clouds and droplets.
- In `AttributesTransmissionModel` and scenario files, change parameter `aerosolCloudInitialArea` to `aerosolCloudInitialRadius`.
- In `AerosolCloud`, remove deprecated (commented) code.
- In `AttributesAerosolCloud`, reduce the number of required parameters to describe the shape.
- Adapt and simplify all related classes that used the elliptical shape of aerosol clouds.Rahn, SimonRahn, Simonhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/184Check distance between obstacles for narrow bottlenecks.2022-03-24T11:03:09+01:00Mayr, Christina MariaCheck distance between obstacles for narrow bottlenecks.Sometimes agents get stuck in front of corridors.
![vadere_2022_03_11_12_27_13](/uploads/035875de8c1cbc90ebd5cc2b5c181e12/vadere_2022_03_11_12_27_13.mov)
Reason: the global minimum (within walking distance) is in front of the corridor....Sometimes agents get stuck in front of corridors.
![vadere_2022_03_11_12_27_13](/uploads/035875de8c1cbc90ebd5cc2b5c181e12/vadere_2022_03_11_12_27_13.mov)
Reason: the global minimum (within walking distance) is in front of the corridor.
The smaller the corridor, the more likely is it that agents get stuck.
One option is to adjust the attributes of the floorfield, in particular, the parameter `targetAttractionStrength`.
See `AttributesFloorField` for details.
To make users aware of this problem I extended the scenario checker.
It gives a warning if obstacles have a distance less 1.28m.
If obstacles are connected, the distance is 0. If so, the scenario checker does not produce a warning, see example below.
![Limitation](/uploads/4db9e64dbb5042063af3722f464e03b2/Limitation.png)
The agent A is stuck in front of the corridor. The target T is on the right. Left: the bottleneck is identified. A user warning is produced including the distance c. Right: no warning is produced.Rahn, SimonRahn, Simonhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/185Update to version v2.12022-03-24T18:10:18+01:00Rahn, SimonUpdate to version v2.1Updates the transmission model, that is the transmission and dose response are treated as two different submodels.
- Refactor software architecture: The previous concept of the `TransmissionModel` is now divided into exposure (`AbstractE...Updates the transmission model, that is the transmission and dose response are treated as two different submodels.
- Refactor software architecture: The previous concept of the `TransmissionModel` is now divided into exposure (`AbstractExposureModel`) and dose response (`AbstractDoseResponseModel`).
- Introduce new `ExposureModelHealthStatus` and `DoseResponseModelInfectionStatus` for pedestrians
- Remove `InfectionStatus` that was inspired by compartmental susceptible-exposed-infectious-recovered models
- Adapt GUI: add agent coloring related to the health status and opacity of aerosol clouds
- Replace deprecated data writers
- Migrate the scenario fileshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/187Fix migration of scenario files2022-04-01T07:58:02+02:00Rahn, SimonFix migration of scenario filesPreviously, the migration did not account for node `healthStatus` in scenario files that contain agents without a target. Now, an agent's `healthStatus` and `infectionStatus` are added.Previously, the migration did not account for node `healthStatus` in scenario files that contain agents without a target. Now, an agent's `healthStatus` and `infectionStatus` are added.https://gitlab.lrz.de/vadere/vadere/-/merge_requests/188Group Model: avoid waiting behavior if obstacle is broad. otherwise agents ge...2022-04-01T15:34:24+02:00Mayr, Christina MariaGroup Model: avoid waiting behavior if obstacle is broad. otherwise agents get stuck.Group members wait for each other when the distance between them becomes too large.
If the group members are in different corridors, this can cause agents to get stuck.
![problem_1_](/uploads/edd6fa399700deae510bb24ab5a8fb73/problem_1_...Group members wait for each other when the distance between them becomes too large.
If the group members are in different corridors, this can cause agents to get stuck.
![problem_1_](/uploads/edd6fa399700deae510bb24ab5a8fb73/problem_1_.png)
This occurs when the obstacle between the corridors is very wide (see sketch).
Desired behavior:
Agents should not wait, but go directly to the goal in this case.
I check if there is an obstacle in between.
If so, the agents should not wait
```
if (!group.isLostMember(ped)) {
if (aheadDistance > 8) {
if (!group.isCentroidWithinObstacle()){
result = Double.MIN_VALUE; // *waiting behavior*
}
// else: *do not wait*, treat group member as "lost"
// holds if agents get separated by broad obstacles
```https://gitlab.lrz.de/vadere/vadere/-/merge_requests/189Groupdist2022-04-08T02:10:53+02:00Ghost UserGroupdisthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/190[Scenario-Reader] Force same behavior for reading vadere projects and single ...2022-04-15T22:24:39+02:00Mayr, Christina Maria[Scenario-Reader] Force same behavior for reading vadere projects and single scenario files**Current behavior**
The static methods in IOVadere are used to read in Vadere projects and the scenario files they contain.
_**1 vadere project**_
If a Vadere project is opened in the Vadere gui, the scenario files are migrated for t...**Current behavior**
The static methods in IOVadere are used to read in Vadere projects and the scenario files they contain.
_**1 vadere project**_
If a Vadere project is opened in the Vadere gui, the scenario files are migrated for the first time in the IOVadere class.
This ensures that the read jsons can be deseralized. In a second step, the scenario files are actually migrated.
_**2 single scenario file**_
If Vadere is controlled via Traci, only one scenario file has to be read in. During the read-in itself, no migration is performed, which may cause the deseralization to fail.
If deserealization is possible, the actual migration takes place in step two.
**Problem**
Due to the missing migration in 2, the deserialization can fail.
**Goal**
same behavior for 1 and 2
**Procedure**
I added the migration to 1https://gitlab.lrz.de/vadere/vadere/-/merge_requests/191[Migration] Do not migrate scenario files if current version2022-04-20T16:32:36+02:00Mayr, Christina Maria[Migration] Do not migrate scenario files if current versionhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/193[Migration] warn user if scenarios are skipped due to legacy files2022-05-10T20:17:09+02:00Mayr, Christina Maria[Migration] warn user if scenarios are skipped due to legacy filesIf legacy files exist within a vadere project,
the migration skips this project without warning the user.
Now, the user gets an error message that the legacy folder needs to be deleted to run a migration.If legacy files exist within a vadere project,
the migration skips this project without warning the user.
Now, the user gets an error message that the legacy folder needs to be deleted to run a migration.https://gitlab.lrz.de/vadere/vadere/-/merge_requests/195Oserver on Agents for group decisions2022-05-17T02:10:24+02:00Ghost UserOserver on Agents for group decisionshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/198update synchronization step2022-05-20T14:47:44+02:00Mayr, Christina Mariaupdate synchronization stepif more than one time step is synchronized the current conditions fails.if more than one time step is synchronized the current conditions fails.https://gitlab.lrz.de/vadere/vadere/-/merge_requests/199Change stimulus behavior2022-05-24T10:16:59+02:00Mayr, Christina MariaChange stimulus behaviorsee !197see !197https://gitlab.lrz.de/vadere/vadere/-/merge_requests/200add number of pedestrians processor2022-05-31T17:02:03+02:00Schuhbaeck, Stefanadd number of pedestrians processor