vadere issueshttps://gitlab.lrz.de/vadere/vadere/-/issues2023-05-17T16:39:10+02:00https://gitlab.lrz.de/vadere/vadere/-/issues/357[Test/Scenario] Add model tests from ISO 204142023-05-17T16:39:10+02:00Mayr, Christina Maria[Test/Scenario] Add model tests from ISO 2041413 tests for model validation are defined in the ISO 20414.
![iso20414](/uploads/899046475c447b8ab4a5674f886214c5/iso20414.png)
Add a scenario for each test.
For the setup the tests marked in green (Table), the Vadere simulator does no...13 tests for model validation are defined in the ISO 20414.
![iso20414](/uploads/899046475c447b8ab4a5674f886214c5/iso20414.png)
Add a scenario for each test.
For the setup the tests marked in green (Table), the Vadere simulator does not need to be adjusted.
For the other tests, adaptions might be necessary.https://gitlab.lrz.de/vadere/vadere/-/issues/297List of things to consider when using triangular meshes2023-04-27T15:49:26+02:00Ghost UserList of things to consider when using triangular meshes@BZoennchen
1. sharp angles (walkable area) can lead to non-determinism of background
* [ ] TODO: can this go into the ScenarioChecker?
2. merge overlapping obstacles
* [ ] TODO: in OpenStreetMap based scenarios points are ofte...@BZoennchen
1. sharp angles (walkable area) can lead to non-determinism of background
* [ ] TODO: can this go into the ScenarioChecker?
2. merge overlapping obstacles
* [ ] TODO: in OpenStreetMap based scenarios points are often *exactly* the same (so that the obstacles do not overlap)
3. fill holes (i.e. not reachable areas) with obstacles
* [ ] TODO: algorithm to do this?
4. (optional): remove co-linear points to decrease number of required faces in mesh
* [ ] TODO: algorithm to do this?
5. (optional): user should remove unnecessary obstacles or parts
* [ ] TODO: (optional) making decisions easier: visual feedback for user of mesh and mesh quality (e.g. red=problematic parts of scenario, white=good quality)
* [ ] TODO use cache mechanism using the scenario hash
* [ ] TODO make Wiki entryhttps://gitlab.lrz.de/vadere/vadere/-/issues/237Provide alternative data formats to write out data2023-04-27T16:29:27+02:00Ghost UserProvide alternative data formats to write out data### Problem to solve
Currently, we write out everything in csv/text-based format. However, this requires a lot of memory and is rather slow (for large amounts of data). An often used software is the HDF5 format.
All new data formats s...### Problem to solve
Currently, we write out everything in csv/text-based format. However, this requires a lot of memory and is rather slow (for large amounts of data). An often used software is the HDF5 format.
All new data formats should be optional (the csv should remain the default). First evaluate the architecture how this can be achieved. Also check #236
### Links and references
* https://support.hdfgroup.org/products/java/
* https://stackoverflow.com/questions/9227099/hdf5-in-java-what-are-the-difference-between-the-availabe-apis
* https://wiki-bsse.ethz.ch/display/JHDF5/JHDF5+%28HDF5+for+Java%29https://gitlab.lrz.de/vadere/vadere/-/issues/236Improve memory efficiency of output processors2023-04-27T16:31:08+02:00Ghost UserImprove memory efficiency of output processors### Problem to solve
Currently, the output processors keep all their data into memory and write everything to disk after the simulation is finished. For larger scenarios, this increases the memory immensely (which lowers the ability for ...### Problem to solve
Currently, the output processors keep all their data into memory and write everything to disk after the simulation is finished. For larger scenarios, this increases the memory immensely (which lowers the ability for parallel computations, e.g. with the suq-controller).
Generally, there are two types of processors:
1. Only require information from the current state
2. Require information from past states (e.g. speed average over the last 5 time steps, or a PCA over the entire data)
The second type is more tricky. In a discussion we agreed to handle the second case as follows:
* Write out the information to a file (**)
* After the simulation is done read the data again and transform it accordingly.
(**) Note: this should be asynchronously to not slow down the simulation too much (this part requires probably more discussion!)
### List of processors that can write data in an online fashion:
####
* AreaDensityCountingProcessor
* AreaDensityVoronoiProcesor
* AreaSpeedProcessor
* BonnMotionTrajectoryProcessor (needs refactoring)
* FundamentalDiagramAProcessor
* FundamentalDiagramBProcessor
* FundamentalDiagramCProcessor
* FundamentalDiagramDProcessor
* FundamentalDiagramEProcessor
* GroupMemberEuclideanDistance
* GroupMemberPotentialDist
* GroupMemberSeparatedObstacle
* PedestrianDensityCountingProcessor
* PedestrianDensityGaussianProcessor
* PedestrianFlowProcessor
* PedestrianGroupIDProcessor
* PedestrianGroupMaxDistProcessor
* PedestrianGroupSizeProcessor
* PedestrianLineCrossProcessor
* PedestrianOffsetPositionProcessor
* PedestrianOSMStrideLengthProcessor
* PedestrianOverlapProcessor
* PedestrianPositionProcessor
* PedestrianSourceIdProcessor
* PedestrianStartTimeProcessor
* PedestrianStateProcessor
* PedestrianStateProcessor
* PedestrianTargetIdProcessor
* PedestrianVelocityDefaultProcessor
* PointDensityCountingAlgorithm
* PointDensityGaussianAlgorithm
* QueueWidthProcessor
* SumVoronoiAlgorithm
### List of processors that require past data (offline, delayed online, preprocess required)
* EvacuationTimeProcessor
* MaxOverlapProcessor
* MeanPedestrianEvacuationTimeProcessor
* NumberOverlapsProcessor
* PedestrianLastPositionProcessor
* PedestrianTrajectoryProcessor
* PedestrianVelocityByTrajectoryProcessor
* PedestrianVelocityProcessor
### Unknown
* PedestrianBehaviourProcessor
* PedestrianCrossingTimeProcessor
* PedestrianEndTimeProcessor
* PedestrianFootStepProcessor
* PedestrianWaitingEndTimeProcessor
* PedestrianWaitingTimeProcessor
* TargetFloorFieldGridProcessorhttps://gitlab.lrz.de/vadere/vadere/-/issues/140Scenario Checker - wishlist2023-05-17T17:07:24+02:00Marion GoedelScenario Checker - wishlistSince the topography checker is extended to the other tabs, here is a place to add in your ideas / wishes on what the Scenario Checker could do:
#### Simulation
* [x] ERROR: Bounds for `simTimeStepLength` - Suggestion: [0.01 - 1]
* [...Since the topography checker is extended to the other tabs, here is a place to add in your ideas / wishes on what the Scenario Checker could do:
#### Simulation
* [x] ERROR: Bounds for `simTimeStepLength` - Suggestion: [0.01 - 1]
* [ ] WARNING: realTimeSimRatio != 0 - only if started from console
(Maybe this could also be realized by visualizationEnabled = false -> then automically realTimeSimRatio is set to 0)
#### Model
* [ ] WARNING: OSM + optimizationType = DISCRETE AND varyStepDirection = False -> Background: Pedestrians might not be able to walk through small passages
* [ ] WARNING: `loadingType` "CONSTANT_RESPECT_TARGETS" and "DYNAMIC" because they are deprecated
(compare: https://conwiki1.cc.private.hm.edu/confluence/display/FK07PD/VADERE+Input+Parameters)
* [ ] WARNING if the parameters deviate from the default configuration - to avoid accidental "mis-"settings
* [x] WARNING if groupSizeDistribution of any source is different from [1.0] but AttributesCGM is not present in Model tab (no groups will be simulated)
#### Topography
* [x] WARNING: No target that has `absorbing` = true (that means pedestrians will never leave the simulation)
* [x] WARNING: if a list of targets is defined but one (which is not the last one) has the attribute `absorbing` = true
-> pedestrians won't reach their final target
* [x] WARNING: if `radius` != 0.2 (because at the moment all potentials are calibrated for this radius)
* [x] ERROR: If in a source a group distribution is given where something other then groups of 1 are produced and the group submodel is not given throw an error.
* [ ] ERROR: If a pedestrian has no target (separate pedestrian)
* [ ] ERROR: If distributionParameter of the source is 0.0 - leads to Exception (Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException)
* [ ] WARNING: if the source is too small for the amount of agents spawning. Some formula to estimate the pedestrian density required here, e.g. sourceArea / spawnNumberInSeconds < alpha => warning!
* [ ] WARNING: if `footStepsToStore` is zero (position interpolation and computing speed does not work then properly)
* [ ] WARNING: if `lineCrossProcessor` is within obstacle (flow will not be calculated correctly!)
-> maybe also, `LineCrossProcessor` attribute `Line line` can be defined as `Measurement Area`
* [ ] ERROR: agents might stop suddenly in front of non-absorbing targets if agent's `minStepLength` and target's `deletionDistance` are in conflict. Therefore, check `minStepLength < deletionDistance` or `minStepLength + eps < deletionDistance`. See #140.
* [ ] ERROR: if area of obstacle == 0
* [ ] NO WARNING: check for the targets if they are used by a dynamic element
##### TargetChangers
* [x] NO WARNING: If a ``TargetChanger`` is present, some targets might be used only by it. In this case, a warning is currently displayed that the target is unused.
* [ ] WARNING: If a ``TargetChanger``is present but ``useMinimumStepLength`` is ´´true``. Recommend to set to ´´false´´.
##### Free-flow speed
* [ ] ERROR: In attributesPedestrians: When the `speedDistributionMean` is set larger or smaller than the `minimumSpeed` and `maximumSpeed` (NOTE: same as in Topography checker for single placed peds)
* [ ] ERROR: Negative (maybe even non-positive?) `minimumSpeed` && The `maximumSpeed` set larger than 12 m/s (12.4 m/s is the world record by Usain Bolt) (NOTE: same as in Topography checker for single placed peds)
* [ ] ERROR: `minimumSpeed` is larger than `maximumSpeed`
* [ ] WARNING: If the free-flow std is larger than the limits for `minimumSpeed` and `maximumSpeed` allow.
#### Data processing
* [ ] WARNING if `writeSimulationData` = false even though output processors are added and files are defined in which their output should be saved
* [ ] ERROR if group model is active groupId Processor must be selected
* [ ] ERROR if `PedestrianPositionProcessor` is set and `footStepsToStore` is 0. Bachground: The pedestrian position processor uses the latest foot step for interpolation, so it always needs the latest footstep and therefore a capacity of minimum 1.https://gitlab.lrz.de/vadere/vadere/-/issues/20JSON save to file and load from file should remember last location2023-05-17T16:56:41+02:00Ghost UserJSON save to file and load from file should remember last locationIt would be great, if the JFileChooser dialogs in the GUI's tabs "Simulation", "Model", "Pedestrians", and "Topography" would remember their last location.
Common use case: Load a generated test topography from a separate file in a dire...It would be great, if the JFileChooser dialogs in the GUI's tabs "Simulation", "Model", "Pedestrians", and "Topography" would remember their last location.
Common use case: Load a generated test topography from a separate file in a directory other than the project directory.
Save and Load dialogs of one tab should maybe share one location. Dialogs from different tabs should probably not share the same location, since they are for different "file types".
Default can be the project directory. Or store it in something like an ini file to restore it in the next session.