vadere issueshttps://gitlab.lrz.de/vadere/vadere/-/issues2023-08-10T17:34:46+02:00https://gitlab.lrz.de/vadere/vadere/-/issues/370[Refactor/Modelling] Revert changes from group model extension2023-08-10T17:34:46+02:00Mayr, Christina Maria[Refactor/Modelling] Revert changes from group model extension**Problem**
A bachelor student worked on the group model a year ago. He introduced several changes in the simulator which overwrites important settings during the simulation. Many of these features are hidden in wrapper methods which ma...**Problem**
A bachelor student worked on the group model a year ago. He introduced several changes in the simulator which overwrites important settings during the simulation. Many of these features are hidden in wrapper methods which makes it quite difficult to understand and extend the code.
Example: In `Agent.class`, the free flow speed is overwritten (` this.setFreeFlowSpeed(nextSpeed); `) in the method `checkNextTarget`.
```
public void checkNextTarget(double nextSpeed) {
final int nextTargetListIndex = this.getNextTargetListIndex();
// Deprecated target list usage
if (nextTargetListIndex <= -1 && !this.getTargets().isEmpty()) {
this.getTargets().removeFirst();
}
// The right way (later this first check should not be necessary anymore):
if (this.hasNextTarget()) {
this.incrementNextTargetListIndex();
for (AgentListener listener: listeners) {
listener.agentNextTargetSet(nextSpeed, this.getId());
}
}
// set a new desired speed, if possible. you can model street networks with differing
// maximal speeds with this.
if (nextSpeed >= 0) {
this.setFreeFlowSpeed(nextSpeed);
}
}
```
Most importantly, the changes have never been validated.
**Solution**
I think we should revert the changes to ensure that our models are still validated.
- Please find all changes made by the bachelor student (use git)
- Revert the changes!
- Add changes to changelogJaeck, LudwigJaeck, Ludwig2023-08-10https://gitlab.lrz.de/vadere/vadere/-/issues/344[TEST] BonnMotionTrajectoryProcessorTest fails2023-04-27T15:28:31+02:00Mayr, Christina Maria[TEST] BonnMotionTrajectoryProcessorTest failsThe BonnMotionTrajectoryProcessorTest fails, see e.g. master 899fffc323944765bac02d8556dcd517ccc67b85
Note: the CI is successful, since the test is ignored (see @Ignore annotation![test_not_running](/uploads/76958bed4172971c56139f8f93f...The BonnMotionTrajectoryProcessorTest fails, see e.g. master 899fffc323944765bac02d8556dcd517ccc67b85
Note: the CI is successful, since the test is ignored (see @Ignore annotation![test_not_running](/uploads/76958bed4172971c56139f8f93fec36e/test_not_running.png))Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/issues/307[POST-VIS] Give warning if there is no contact data2021-11-18T13:02:09+01:00Mayr, Christina Maria[POST-VIS] Give warning if there is no contact data[POST-VIS] Give warning if there is no contact data
### Problem to solve
**First problem**
If there is no contact data file contacts.txt, the pushbutton "show_contacts" in PostVisualizationWindow is useless.
If the user pushes the butt...[POST-VIS] Give warning if there is no contact data
### Problem to solve
**First problem**
If there is no contact data file contacts.txt, the pushbutton "show_contacts" in PostVisualizationWindow is useless.
If the user pushes the button, nothing happens.
**Second problem**
If you move your cursor onto the pushbutton "show_contacts", it says
`!ProjectView.btnShowContacts.tooltip!`
instead of
`show contacts`
### Further details
1. Give the user feedback, that his action has no effect since there is no contact data file "contacts.txt" provided.
2. Show `show contacts` instead of `!ProjectView.btnShowContacts.tooltip!`2020-05-25https://gitlab.lrz.de/vadere/vadere/-/issues/305[OutputProcessor]2020-04-23T15:06:12+02:00Zoennchen, Benedikt[OutputProcessor]### Problem to solve
To measure the distance between an agent and some target it would be useful to use the target potential because if F=1 this is a good approximation of the geo. distance. Therefore, we already introduced the Pedestria...### Problem to solve
To measure the distance between an agent and some target it would be useful to use the target potential because if F=1 this is a good approximation of the geo. distance. Therefore, we already introduced the PedestrianPotentialProcessor. However it was not configurable which target is used, it was always the current target of the agent. This has to be made configurable.Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/issues/300Migration Assistant: show path of file that failed to migrate2023-04-27T15:47:20+02:00Ghost UserMigration Assistant: show path of file that failed to migrateI often spend a lot of time to identify scenarios that cause the migration assistant to fail (often cases: output folder, or in an untracked file, or in a file from another branch).
Currently, there is only a blank window
![image](/up...I often spend a lot of time to identify scenarios that cause the migration assistant to fail (often cases: output folder, or in an untracked file, or in a file from another branch).
Currently, there is only a blank window
![image](/uploads/a771547b4db596bf1c24f276f8c2868c/image.png)
and error message
```java
09:55:37,818 ERROR ActionLoadProject:155 - could not loadFromFilesystem project: null
java.lang.NullPointerException
at org.vadere.simulator.projects.io.JsonConverter.deserializeScenarioRunManagerFromNode(JsonConverter.java:56)
at org.vadere.simulator.projects.migration.jsontranformation.AbstractJsonTransformation.addNewMembersWithDefaultValues(AbstractJsonTransformation.java:211)
at org.vadere.simulator.projects.migration.jsontranformation.JsonMigrationAssistant.migrateScenario(JsonMigrationAssistant.java:287)
at org.vadere.simulator.projects.migration.jsontranformation.JsonMigrationAssistant.migrateDirectory(JsonMigrationAssistant.java:203)
at org.vadere.simulator.projects.migration.jsontranformation.JsonMigrationAssistant.analyzeProject(JsonMigrationAssistant.java:61)
at org.vadere.simulator.projects.io.IOVadere.readProject(IOVadere.java:66)
at org.vadere.simulator.projects.io.IOVadere.readProjectJson(IOVadere.java:47)
at org.vadere.gui.projectview.control.ActionLoadProject.loadProjectByPath(ActionLoadProject.java:109)
at org.vadere.gui.projectview.control.ActionLoadProject.loadProjectByPath(ActionLoadProject.java:104)
at org.vadere.gui.projectview.control.ActionLoadProject.loadProject(ActionLoadProject.java:78)
at org.vadere.gui.projectview.control.ActionLoadProject.actionPerformed(ActionLoadProject.java:39)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6397)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
```
which is not really helpful. It would be helpful:
* Which scenario file causes problems? List of them preferred but show first when it fails also ok.
* If not too hard: which attributes could not be migrated?
* Simply not load the scenarios that could not be migrated, but load the scenarios that are valid. (possibly show them in red text in the project).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/295Use tablesaw in data processors2023-04-27T15:50:24+02:00Ghost UserUse tablesaw in data processors### Problem to solve
As discussed with @stsc and @BZoennchen
We noticed that writing out csv data (at the end of a simulation) can be **very** slow in Vadere (depending on how much data is written). The main reason seems to be the desi...### Problem to solve
As discussed with @stsc and @BZoennchen
We noticed that writing out csv data (at the end of a simulation) can be **very** slow in Vadere (depending on how much data is written). The main reason seems to be the design of how the csv data is written. In short, this involves collecting each row in a LinkedList and casting it to a csv-line). Currently, each DataProcessor fills a Map with objects (key and value).
We decided:
* replace the Map and fill a tablesaw's data frames (tables)
* each table consists of index columns and data columns, all columns have a native data format (usually int or double)
* the DataKey (e.g. PedestrianIdKey) classes are still used and required (to be able to merge processors, in the GUI, and for information about data format of indices)
* The value (generics V in DataProcessors) are removed and handled by the table's columns
* the merging of DataProcessor and writing (merged) tables to csv is still handled in `OutputWriter`https://gitlab.lrz.de/vadere/vadere/-/issues/286[OSM] Agent stops suddenly when reaching intermediate target2019-12-18T16:28:11+01:00Ghost User[OSM] Agent stops suddenly when reaching intermediate target### Summary
In Valentina's OPMOPS scenario, an agent stops suddenly when reaching the intermediate target with `absorbing=false`. But, other agents move properly when reaching the intermediate target. See following animation:
![Vadere-...### Summary
In Valentina's OPMOPS scenario, an agent stops suddenly when reaching the intermediate target with `absorbing=false`. But, other agents move properly when reaching the intermediate target. See following animation:
![Vadere-IntermediateTarget-AgentGotStuck](/uploads/54c68774bd98d99a757afe58bf42efd0/Vadere-IntermediateTarget-AgentGotStuck.gif)
### What is the current *bug* behavior?
The scenario contains one source which assigns the target list [1, 2] to the spawning agents. Target 1 has`absorbing=false`. One agent (`id=7`) stops suddenly when reaching this intermediate target but the other nine agents are processed properly and reach the final target 2.
### What is the expected *correct* behavior?
The agent should not suddenly stop at an intermediate target.
### Steps to reproduce
Re-run the attached scenario file and look at the corresponding output: [Vadere-AgentStopsSuddenly.zip](/uploads/e385df460d05f0079f175fb8762b8fbe/Vadere-AgentStopsSuddenly.zip)
### Relevant data
- [If you report a bug] Git branch name and commit hash: master/a54698f4
- [If you report a bug in a scenario] Provide the scenario file --- no matter how simple the scenario is.https://gitlab.lrz.de/vadere/vadere/-/issues/280[GUI] GUI crashes sometimes with NullPointerException2021-12-14T16:07:15+01:00Ghost User[GUI] GUI crashes sometimes with NullPointerException### Summary
When using the button `Run all scenarios`, the GUI simulates several scenario files properly but than a `NullPointerException` is raised and the GUI does not respond anymore. See the attached stack trace for more details.
!...### Summary
When using the button `Run all scenarios`, the GUI simulates several scenario files properly but than a `NullPointerException` is raised and the GUI does not respond anymore. See the attached stack trace for more details.
![Screenshot_20191115_095938](/uploads/9a57c588f7b4ba9646e02ec90f5a3dc1/Screenshot_20191115_095938.png)
### Steps to reproduce
As the exception is thrown only sometimes, I guess it is hard to reproduce the problem (maybe some race condition between GUI thread and simulation thread?).
At the moment, I am working on psychology branch, but it also occurs on master sometimes.
### Relevant data
- [If you report a bug] Git branch name and commit hash: psychology/91176052
- [If you report a bug in a scenario] Use test project "Scenarios/ModelTests/TestPsychology/CognitionAndBehavior/"
### Logs and outputs
<details>
<summary>NullPointerException after running eight scenarios</summary>
<pre>
09:58:37,941 INFO ProjectView:169 - scenario 08-CounterFlow-OSMSequential-SBEnabled-SearchRadiusAdapted finished
09:58:37,988 INFO ScenarioRun:177 - Simulation of scenario 08-CounterFlow-OSMSequential-SBEnabled-SearchRadiusAdapted finished.
09:58:37,988 INFO ScenarioRun:124 - Initializing scenario. Start of scenario '09-OriginalExperimentSetup-OSMEventDriven'...
09:58:37,989 INFO ScenarioRun:126 - StartIt 09-OriginalExperimentSetup-OSMEventDriven
09:58:37,989 INFO ScenarioRun:105 - scenario context initialized.
09:58:37,994 INFO PotentialFieldDistancesBruteForce:47 - initialize floor field (PotentialFieldDistancesBruteForce)
09:58:38,037 INFO PotentialFieldDistancesBruteForce:82 - floor field initialization time:42[ms]
09:58:38,037 INFO Topography:351 - Set PedestrianIdCount to start value: 14
09:58:38,051 INFO EikonalSolverDefaultProvider:23 - floor field initialization time:12[ms]
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at org.vadere.gui.components.view.DefaultRenderer.transformGraphics(DefaultRenderer.java:124)
at org.vadere.gui.components.view.DefaultRenderer.renderGraphics(DefaultRenderer.java:86)
at org.vadere.gui.components.view.DefaultRenderer.renderImage(DefaultRenderer.java:97)
at org.vadere.gui.components.view.DefaultRenderer.render(DefaultRenderer.java:68)
at org.vadere.gui.onlinevisualization.view.OnlinevisualizationRenderer.render(OnlinevisualizationRenderer.java:37)
at org.vadere.gui.components.view.ScaleablePanel.paintComponent(ScaleablePanel.java:108)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JViewport.paint(JViewport.java:737)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JSplitPane.paintChildren(JSplitPane.java:1024)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:907)
at java.desktop/javax.swing.JComponent.paint(JComponent.java:1083)
at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1643)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1618)
at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1556)
at java.desktop/javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:262)
at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865)
at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1890)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Process finished with exit code 130 (interrupted by signal 2: SIGINT)
</pre>
</details>Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/issues/278[Model] Strange fine tune condition2019-11-05T18:25:30+01:00Zoennchen, Benedikt[Model] Strange fine tune condition### Summary
Using the brute force optimization (i.e. DISCRETE) there is some strange condition for which a worse solution might be accepted (see StepCircleOptimizerDiscrete line 71):
fineTuneCondition = (Math.abs(currentPotential - pot...### Summary
Using the brute force optimization (i.e. DISCRETE) there is some strange condition for which a worse solution might be accepted (see StepCircleOptimizerDiscrete line 71):
fineTuneCondition = (Math.abs(currentPotential - potential) <= 0.0001 && random.nextBoolean());
followed by
if (currentPotential < potential || fineTuneCondition) {
potential = currentPotential;
nextPos = currentPosition;
}
which means that if there is a solution which is worse 0.0001 than the current solution there is a 50% chance that this solution will be used. By my opinion this seems to be a dirty fix for some issue in the past (the line is there since the initial commit).
The error appeared after using a random seed while setting the standard deviation to zero everywhere and using a fixed agent positions which should result in the same results for all simulations which was not the case.
I removed that line using a new branch (dev/removeFineTuneCondition) and I would merge this change into the master if everybody (@hm-kleinmei @hm-mgoedel @hm-lehmberg ) agrees.Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/issues/277Overlaps in PostVis (of VadereApplication)2019-11-08T17:18:13+01:00Marion GoedelOverlaps in PostVis (of VadereApplication)Currently, when using the postvisualisation of the vadereapplication (have not tried the postvis application), I see a lot of overlaps that I do not see during the simulation in the live-visualization.
Here the output I see for live vi...Currently, when using the postvisualisation of the vadereapplication (have not tried the postvis application), I see a lot of overlaps that I do not see during the simulation in the live-visualization.
Here the output I see for live vis and pos vis for the same time step and the same scenario (fixed seed)
@hm-lehmberg @BZoennchen: I am wondering if this might be happing due to the interpolation?
(Live Vis: I see all positions after all events within simTimestep are perfomed, Post Vis: Interpolation of each pedestrian's position at simTimeStep)
## Live Vis (Time: 11.6)
![image](/uploads/44cdfdab2cc6c574740ba6525ae90c39/image.png)
## Post Vis (Time: 11.6)
![image](/uploads/8163111ab882d6e0d0dedb267e910a5e/image.png)https://gitlab.lrz.de/vadere/vadere/-/issues/268[VadereConfig] Exception logged to stdout because of preferences2019-12-12T11:29:30+01:00Ghost User[VadereConfig] Exception logged to stdout because of preferences### Summary
`VadereConfig` logs an exception to stdout:
```
11:45:57,681 INFO VadereConfig:70 - Use config file from path /home/benedikt/.config/vadere.conf
Okt. 14, 2019 11:45:57 VORM. org.apache.commons.beanutils.FluentPropertyBean...### Summary
`VadereConfig` logs an exception to stdout:
```
11:45:57,681 INFO VadereConfig:70 - Use config file from path /home/benedikt/.config/vadere.conf
Okt. 14, 2019 11:45:57 VORM. org.apache.commons.beanutils.FluentPropertyBeanIntrospector introspect
WARNUNG: Error when creating PropertyDescriptor for public final void org.apache.commons.configuration2.AbstractConfiguration.setProperty(java.lang.String,java.lang.Object)! Ignoring this property.
java.beans.IntrospectionException: bad write method arg count: public final void org.apache.commons.configuration2.AbstractConfiguration.setProperty(java.lang.String,java.lang.Object)
at java.desktop/java.beans.PropertyDescriptor.findPropertyType(PropertyDescriptor.java:696)
at java.desktop/java.beans.PropertyDescriptor.setWriteMethod(PropertyDescriptor.java:356)
at java.desktop/java.beans.PropertyDescriptor.<init>(PropertyDescriptor.java:142)
at org.apache.commons.beanutils.FluentPropertyBeanIntrospector.createFluentPropertyDescritor(FluentPropertyBeanIntrospector.java:177)
at org.apache.commons.beanutils.FluentPropertyBeanIntrospector.introspect(FluentPropertyBeanIntrospector.java:140)
at org.apache.commons.beanutils.PropertyUtilsBean.fetchIntrospectionData(PropertyUtilsBean.java:2234)
at org.apache.commons.beanutils.PropertyUtilsBean.getIntrospectionData(PropertyUtilsBean.java:2215)
at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:950)
at org.apache.commons.beanutils.PropertyUtilsBean.isWriteable(PropertyUtilsBean.java:1466)
at org.apache.commons.configuration2.beanutils.BeanHelper.isPropertyWriteable(BeanHelper.java:521)
at org.apache.commons.configuration2.beanutils.BeanHelper.initProperty(BeanHelper.java:357)
at org.apache.commons.configuration2.beanutils.BeanHelper.initBeanProperties(BeanHelper.java:273)
at org.apache.commons.configuration2.beanutils.BeanHelper.initBean(BeanHelper.java:192)
at org.apache.commons.configuration2.beanutils.BeanHelper$BeanCreationContextImpl.initBean(BeanHelper.java:669)
at org.apache.commons.configuration2.beanutils.DefaultBeanFactory.initBeanInstance(DefaultBeanFactory.java:162)
at org.apache.commons.configuration2.beanutils.DefaultBeanFactory.createBean(DefaultBeanFactory.java:116)
at org.apache.commons.configuration2.beanutils.BeanHelper.createBean(BeanHelper.java:459)
at org.apache.commons.configuration2.beanutils.BeanHelper.createBean(BeanHelper.java:479)
at org.apache.commons.configuration2.beanutils.BeanHelper.createBean(BeanHelper.java:492)
at org.apache.commons.configuration2.builder.BasicConfigurationBuilder.createResultInstance(BasicConfigurationBuilder.java:447)
at org.apache.commons.configuration2.builder.BasicConfigurationBuilder.createResult(BasicConfigurationBuilder.java:417)
at org.apache.commons.configuration2.builder.BasicConfigurationBuilder.getConfiguration(BasicConfigurationBuilder.java:285)
at org.vadere.util.config.VadereConfig.<init>(VadereConfig.java:88)
at org.vadere.util.config.VadereConfig.getConfig(VadereConfig.java:224)
at org.vadere.util.lang.BundleManager.setLanguage(BundleManager.java:58)
at org.vadere.gui.components.utils.Messages.loadLanguageFromPreferences(Messages.java:31)
at org.vadere.gui.projectview.VadereApplication.main(VadereApplication.java:41)
11:46:00,503 INFO IOVadere:57 - Read .project file from path /home/benedikt/Repos/Vadere/vadere/VadereModelTests/TestOSM/vadere.project
```
### What is the current *bug* behavior?
An exception is logged to stdout by `VadereConfig` which is triggered by `setLanguage()`
### What is the expected *correct* behavior?
No exception should be thrown.
### Steps to reproduce
1. git checkout master
2. mvn clean
3. mvn -Dmaven.test.skip=true package
4. java -jar ./VadereGui/target/vadere-gui.jar (start GUI from CLI to see stdout)
### Relevant data
- [If you report a bug] Git branch name and commit hash: master/ae1a4492https://gitlab.lrz.de/vadere/vadere/-/issues/267[GUI] Slider in Postvis should fast-forward and rewind immediately2019-10-14T12:44:41+02:00Ghost User[GUI] Slider in Postvis should fast-forward and rewind immediately### Problem to solve
After using the new `FootStepProcessor` for postvisualization, the slider in the Postvis GUI should fast-forward and rewind the simulation immediately while the slider is dragged (like before merge 696a81f4) and not...### Problem to solve
After using the new `FootStepProcessor` for postvisualization, the slider in the Postvis GUI should fast-forward and rewind the simulation immediately while the slider is dragged (like before merge 696a81f4) and not just after releasing the slider. See following animation of the old GUI behavior:
![Vadere-Slider-ForwardAndRewind](/uploads/04bec65a779394c1be4cfb958b02608d/Vadere-Slider-ForwardAndRewind.gif)
### Further details
This allows quicker visual debugging.https://gitlab.lrz.de/vadere/vadere/-/issues/263Future foot steps in (new) PedestrianPositionProcessor2019-09-17T15:25:10+02:00Ghost UserFuture foot steps in (new) PedestrianPositionProcessor@BZoennchen
@hm-kleinmei
There seems to be an issue with syncing FootStep events and simulation time in "OSM+Events" and "BHM".
For tests that currently fail, see https://gitlab.lrz.de/vadere/vadere/-/jobs/612770) with branch !83 :
...@BZoennchen
@hm-kleinmei
There seems to be an issue with syncing FootStep events and simulation time in "OSM+Events" and "BHM".
For tests that currently fail, see https://gitlab.lrz.de/vadere/vadere/-/jobs/612770) with branch !83 :
In the new way to interpolate the agent position exceptions like these occur:
```
java.lang.IllegalArgumentException: Requested time 0.4 outside of FootSteps [start=0.955911741965755, end=1.5118234839315101] time (no extrapolation!).
```
This means: the simulation state has a time (in seconds) of 0.4 (i.e. when the data processor collects data), but the pedestrian has already a future foot step with starting time 0.95 and end time at 1.51. I suspect that also a "getPosition()" (old way and not interpolating positions) would get such a future position (i.e. wrong for time 0.4) of the agent?
On the branch:
* in `PedstrianPositionProcessor`
```
double simTime = state.getSimTimeInSec();
for (Pedestrian pedestrian : pedestrians){
VPoint interpolatedPoint = pedestrian.getInterpolatedFootStepPosition(simTime);
this.putValue(new TimestepPedestrianIdKey(timeStep, pedestrian.getId()), interpolatedPoint);
}
```
* in `Pedestrian`
```
public VPoint getInterpolatedFootStepPosition(double time){
if(currentFootStep == null){
return getPosition();
}else{
if(time > currentFootStep.getEndTime()){
// This happens for example if a pedestrian is waiting (see Events)
// TODO: check with Bene K. if this is okay, or a better way?
return currentFootStep.getEnd();
}else{
return FootStep.interpolateFootStep(currentFootStep, time);
}
}
}
```
* in `FootStep.interpolateFootStep()` where error is raised:
```
if(startTime > time || endTime < time){
throw new IllegalArgumentException("Requested time " + time + " outside of FootSteps [start=" + startTime +
", end=" + endTime + "] time (no extrapolation!).");
```
}Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/issues/260Change PedestrianPositionProcessor to use interpolation of PedestrianFootStep...2019-09-17T15:25:11+02:00Ghost UserChange PedestrianPositionProcessor to use interpolation of PedestrianFootStepProcessorThis makes the PedestrianPositionProcessor more precise about the position. Furthermore, it uses the same processor `PedestrianFootStepProcessor` which we plan for a new visualization processor.This makes the PedestrianPositionProcessor more precise about the position. Furthermore, it uses the same processor `PedestrianFootStepProcessor` which we plan for a new visualization processor.https://gitlab.lrz.de/vadere/vadere/-/issues/254Test scenarios are changed with unwanted new attributes2019-07-15T09:01:44+02:00Ghost UserTest scenarios are changed with unwanted new attributes### Summary
Some test scenarios are changed with unwanted new attributes. For now I only looked at the OSM files.
### What is the current *bug* behavior?
The following attributes are inserted to `dynamicElements/pedestrian/attributes...### Summary
Some test scenarios are changed with unwanted new attributes. For now I only looked at the OSM files.
### What is the current *bug* behavior?
The following attributes are inserted to `dynamicElements/pedestrian/attributes` and `attributesCar`
```
"footStepsToStore" : 4,
"searchRadius" : 1.0,
"angleCalculationType" : "USE_CENTER",
"targetOrientationAngleThreshold" : 45.0
"salientBehavior" : "TARGET_ORIENTED",
```
These attributes were not inserted by the MigrationAssistant when releasing vadere_v1.0
### Steps to reproduce
* go on master (up to date)
* open the GUI
* change a single attribute (e.g. the `finishTime`) and save the file
the following files should be changed with the above attributes inserted:
![image](/uploads/efb735d445eae0fcb3d0df48a2e2b7e7/image.png)
## Progress
* [x] The attributes are inserted because car and dynamic elements extent `Agent`
* [ ] Why did the Migration Assistant not upgrade these files?
Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/issues/253Change postviz trajectories to more detailed foot steps data2019-10-08T10:36:41+02:00Ghost UserChange postviz trajectories to more detailed foot steps dataIssue, following up on the discussion with @BZoennchen.
I change in !65 the DataKey of `PedestrianFootStepProcessor` (see https://gitlab.lrz.de/vadere/vadere/issues/172#note_392984 ).
In the OSM tests the scenarios `rimea_04_flow_osm1...Issue, following up on the discussion with @BZoennchen.
I change in !65 the DataKey of `PedestrianFootStepProcessor` (see https://gitlab.lrz.de/vadere/vadere/issues/172#note_392984 ).
In the OSM tests the scenarios `rimea_04_flow_osm1_[050 | 075 | 100 | 125 | 470]_h` were using the `PedestrianFootStepProcessor`. For now, in the branch, I simply removed the processor from the output file (so the data is currently not available in the output files), in order to avoid exceptions of having the wrong key.
Todo list for this issue, also solves #172:
* [x] change the `postviz.trajectories` --> this allows a more detailed visualization
* [x] check out: use tablesaw library? Should be able to read csv data fast and allows data filtering and mapping more easily
* [x] read and cast the new data format in the post visualization
* [x] use (linear) interpolation of the footsteps (inside post visualization) -- when casting to `FootStep.class` this may already be available there, or using `VTrajectory`
* [x] adapt the DataKey in all scenarios that have the output file `postviz.trajectories` set
* [ ] if required, adapt the scenarios OSM test scenarios `rimea_04_flow_osm1_[050 | 075 | 100 | 125 | 470]_h` so that the foot step output is available
* [ ] Adapt the (Python) post processing scripts that are currently using the legacy `PedestrianFootStepProcessor`
We can discuss this again, also if I got the steps right. I am happy to help on this issue, but for now I am first working on !65 as this has to be merged first, then I ping.
This type of trajectory definition will then (hopefully) also be suitable to insert experimental data into Vadere (the rows do not necessarily have to correspond to foot steps then).Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/issues/251Add coordinate system parameters to scenario file2019-07-31T18:33:03+02:00Ghost UserAdd coordinate system parameters to scenario file### Problem to solve
At the moment, it is hard to interchange information between Vadere's scenario file and external applications fully automated because some essential information are missing in the scenario file. For instance, the co...### Problem to solve
At the moment, it is hard to interchange information between Vadere's scenario file and external applications fully automated because some essential information are missing in the scenario file. For instance, the coordinate system which is used by Vadere and if imported data (e.g., from openstreetmap.org by using [osm2vadere](https://gitlab.lrz.de/vadere/vadere/tree/master/Tools/Converters/osm2vadere)) was shifted to the point (0;0) to avoid problems in Vadere when using big coordinates (e.g., 50,000;50,000).
### Further details
The new information about the coordinate system should be add to `topography` section of the scenario file:
```
"topography" : {
"attributes" : {
"bounds" : {
"x" : 0.0,
"y" : 0.0,
"width" : 38.0,
"height" : 12.0
},
"boundingBoxWidth" : 0.5,
"bounded" : true,
/* TODO: Add new information about the coordinate system, e.g.:
* "coorinateSystem": "EPSG:25832",
* "coordinatesShiftedBy": { "x": 10, "y": 10 }
*/
},
```Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/issues/250Make a new stable release before the upcoming conferences2019-06-19T09:17:09+02:00Ghost UserMake a new stable release before the upcoming conferences@vadere
We should soon release a new stable Vadere version.
I suggest to also get pizza on that day :pig:@vadere
We should soon release a new stable Vadere version.
I suggest to also get pizza on that day :pig:2019-06-20https://gitlab.lrz.de/vadere/vadere/-/issues/249Evacuation processors return *always* positive time2023-04-27T16:25:17+02:00Ghost UserEvacuation processors return *always* positive timeThey also have a positive value when:
* No agent reached the target
* Some agents are still in the scenario
* A source still spawns agents into the scenario
If a user is not aware of this property, then a wrong evacuation time (too sm...They also have a positive value when:
* No agent reached the target
* Some agents are still in the scenario
* A source still spawns agents into the scenario
If a user is not aware of this property, then a wrong evacuation time (too small) is used. So it is extremely important that a the simulation time is set large enough. It is also not possible to detect whether all agents made it to the target.
See files:
* TestPedestrianEvacuationTimeProcessor
* TestEvacuationTimeProcessor
* EvacuationTimeProcessor
* PedestrianEvacuationTimeProcessor
* PedestrianEndTimeProcessor
When solving this issue also consider to add a check in `TestOptimizationMetricNelderMeadProcessor` whether all agents reached the target.