Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
vadere
vadere
Commits
2c81515b
Commit
2c81515b
authored
Aug 16, 2018
by
Benedikt Zoennchen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of
https://gitlab.lrz.de/vadere/vadere
into develop
parents
362681a0
8028c523
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
190 additions
and
28 deletions
+190
-28
VadereModelTests/TestSFM/scenarios/basic_1_chicken_sfm1.scenario
...odelTests/TestSFM/scenarios/basic_1_chicken_sfm1.scenario
+2
-2
VadereModelTests/TestSFM/scenarios/basic_1_chicken_sfm2.scenario
...odelTests/TestSFM/scenarios/basic_1_chicken_sfm2.scenario
+2
-2
VadereModelTests/TestSFM/scenarios/basic_2_density_sfm1.scenario
...odelTests/TestSFM/scenarios/basic_2_density_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/basic_3_1_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_3_1_wall_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/basic_3_2_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_3_2_wall_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/basic_3_3_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_3_3_wall_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/basic_4_1_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_4_1_wall_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/basic_4_1_wall_sfm2.scenario
...ModelTests/TestSFM/scenarios/basic_4_1_wall_sfm2.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/basic_4_2_wall_sfm1.scenario
...ModelTests/TestSFM/scenarios/basic_4_2_wall_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/basic_4_2_wall_sfm2.scenario
...ModelTests/TestSFM/scenarios/basic_4_2_wall_sfm2.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/rimea_01_pathway_sfm1.scenario
...delTests/TestSFM/scenarios/rimea_01_pathway_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/rimea_05_react_sfm1.scenario
...ModelTests/TestSFM/scenarios/rimea_05_react_sfm1.scenario
+2
-2
VadereModelTests/TestSFM/scenarios/rimea_06_corner_sfm1.scenario
...odelTests/TestSFM/scenarios/rimea_06_corner_sfm1.scenario
+6
-3
VadereModelTests/TestSFM/scenarios/rimea_07_speeds_sfm1.scenario
...odelTests/TestSFM/scenarios/rimea_07_speeds_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/rimea_09_publicRoom_sfm1_2.scenario
...sts/TestSFM/scenarios/rimea_09_publicRoom_sfm1_2.scenario
+2
-2
VadereModelTests/TestSFM/scenarios/rimea_09_publicRoom_sfm1_4.scenario
...sts/TestSFM/scenarios/rimea_09_publicRoom_sfm1_4.scenario
+2
-2
VadereModelTests/TestSFM/scenarios/rimea_10_pathfinding_sfm1.scenario
...ests/TestSFM/scenarios/rimea_10_pathfinding_sfm1.scenario
+1
-1
VadereModelTests/TestSFM/scenarios/rimea_11_exitSelection_sfm1.scenario
...ts/TestSFM/scenarios/rimea_11_exitSelection_sfm1.scenario
+2
-2
VadereModelTests/TestSFM/scenarios/rimea_12_evacuation_sfm1.scenario
...Tests/TestSFM/scenarios/rimea_12_evacuation_sfm1.scenario
+1
-1
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/MaxOverlapProcessor.java
...rojects/dataprocessing/processor/MaxOverlapProcessor.java
+86
-0
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/NumberOverlapsProcessor.java
...cts/dataprocessing/processor/NumberOverlapsProcessor.java
+1
-1
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/PedestrianOverlapDistProcessor.java
...aprocessing/processor/PedestrianOverlapDistProcessor.java
+54
-0
VadereState/src/org/vadere/state/attributes/processor/AttributesMaxOverlapProcessor.java
...e/attributes/processor/AttributesMaxOverlapProcessor.java
+19
-0
No files found.
VadereModelTests/TestSFM/scenarios/basic_1_chicken_sfm1.scenario
View file @
2c81515b
...
...
@@ -154,12 +154,12 @@
},
"interSpawnTimeDistribution" : "org.vadere.state.scenario.ConstantDistribution",
"distributionParameters" : [ 1.0 ],
"spawnNumber" :
20
0,
"spawnNumber" :
5
0,
"maxSpawnNumberTotal" : -1,
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_1_chicken_sfm2.scenario
View file @
2c81515b
...
...
@@ -154,12 +154,12 @@
},
"interSpawnTimeDistribution" : "org.vadere.state.scenario.ConstantDistribution",
"distributionParameters" : [ 1.0 ],
"spawnNumber" :
20
0,
"spawnNumber" :
5
0,
"maxSpawnNumberTotal" : -1,
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_2_density_sfm1.scenario
View file @
2c81515b
...
...
@@ -159,7 +159,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_3_1_wall_sfm1.scenario
View file @
2c81515b
...
...
@@ -134,7 +134,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_3_2_wall_sfm1.scenario
View file @
2c81515b
...
...
@@ -134,7 +134,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_3_3_wall_sfm1.scenario
View file @
2c81515b
...
...
@@ -134,7 +134,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_4_1_wall_sfm1.scenario
View file @
2c81515b
...
...
@@ -134,7 +134,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_4_1_wall_sfm2.scenario
View file @
2c81515b
...
...
@@ -134,7 +134,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_4_2_wall_sfm1.scenario
View file @
2c81515b
...
...
@@ -134,7 +134,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/basic_4_2_wall_sfm2.scenario
View file @
2c81515b
...
...
@@ -134,7 +134,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_01_pathway_sfm1.scenario
View file @
2c81515b
...
...
@@ -122,7 +122,7 @@
"startTime" : 0.0,
"endTime" : 1200.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_05_react_sfm1.scenario
View file @
2c81515b
...
...
@@ -125,8 +125,8 @@
"maxSpawnNumberTotal" : -1,
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" :
fals
e,
"useFreeSpaceOnly" :
fals
e,
"spawnAtRandomPositions" :
tru
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_06_corner_sfm1.scenario
View file @
2c81515b
...
...
@@ -31,12 +31,15 @@
"id" : 2,
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianEvacuationTimeProcessor",
"attributes" : {
"pedestrianStartTimeProcessorId" :
3
"pedestrianStartTimeProcessorId" :
4
}
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianPositionProcessor",
"id" : 3
} ],
} ,{
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianStartTimeProcessor",
"id": 4
}],
"isTimestamped" : true
},
"scenario" : {
...
...
@@ -157,7 +160,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_07_speeds_sfm1.scenario
View file @
2c81515b
...
...
@@ -122,7 +122,7 @@
"startTime" : 0.0,
"endTime" : 100.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_09_publicRoom_sfm1_2.scenario
View file @
2c81515b
...
...
@@ -209,8 +209,8 @@
"maxSpawnNumberTotal" : -1,
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" :
fals
e,
"useFreeSpaceOnly" :
fals
e,
"spawnAtRandomPositions" :
tru
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_09_publicRoom_sfm1_4.scenario
View file @
2c81515b
...
...
@@ -191,8 +191,8 @@
"maxSpawnNumberTotal" : -1,
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" :
fals
e,
"useFreeSpaceOnly" :
fals
e,
"spawnAtRandomPositions" :
tru
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_10_pathfinding_sfm1.scenario
View file @
2c81515b
...
...
@@ -762,7 +762,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_11_exitSelection_sfm1.scenario
View file @
2c81515b
...
...
@@ -179,8 +179,8 @@
"maxSpawnNumberTotal" : -1,
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" :
fals
e,
"useFreeSpaceOnly" :
fals
e,
"spawnAtRandomPositions" :
tru
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereModelTests/TestSFM/scenarios/rimea_12_evacuation_sfm1.scenario
View file @
2c81515b
...
...
@@ -144,7 +144,7 @@
"startTime" : 0.0,
"endTime" : 0.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" :
fals
e,
"useFreeSpaceOnly" :
tru
e,
"targetIds" : [ 1 ],
"groupSizeDistribution" : [ 1.0 ],
"dynamicElementType" : "PEDESTRIAN"
...
...
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/MaxOverlapProcessor.java
0 → 100644
View file @
2c81515b
package
org.vadere.simulator.projects.dataprocessing.processor
;
import
org.vadere.annotation.factories.dataprocessors.DataProcessorClass
;
import
org.vadere.simulator.control.SimulationState
;
import
org.vadere.simulator.projects.dataprocessing.ProcessorManager
;
import
org.vadere.simulator.projects.dataprocessing.datakey.NoDataKey
;
import
org.vadere.state.attributes.processor.AttributesMaxOverlapProcessor
;
import
org.vadere.state.attributes.processor.AttributesNumberOverlapsProcessor
;
import
org.vadere.state.attributes.processor.AttributesProcessor
;
import
javax.swing.*
;
import
java.util.OptionalDouble
;
import
java.util.OptionalInt
;
/**
* This processor saves the largest overlap (2*pedRadius - distance between the pedestrian's centers) for one simulation.
* The processor depends on the PedestrianOverlapDistProcessor. It only works if all pedestrians in the simulation have
* the same radius.
*
* @author Marion Gödel
*/
@DataProcessorClass
()
public
class
MaxOverlapProcessor
extends
DataProcessor
<
NoDataKey
,
Double
>
{
private
PedestrianOverlapDistProcessor
pedOverlapProc
;
public
MaxOverlapProcessor
()
{
super
(
"max_size_overlap"
);
setAttributes
(
new
AttributesMaxOverlapProcessor
());
}
@Override
protected
void
doUpdate
(
final
SimulationState
state
)
{
//ensure that all required DataProcessors are updated.
this
.
pedOverlapProc
.
doUpdate
(
state
);
}
@Override
public
void
postLoop
(
final
SimulationState
state
)
{
this
.
pedOverlapProc
.
postLoop
(
state
);
OptionalDouble
maximumOverlap
=
this
.
pedOverlapProc
.
getValues
().
stream
().
filter
(
val
->
val
>
0
).
mapToDouble
(
val
->
val
.
doubleValue
()).
max
();
if
(
maximumOverlap
.
isPresent
()){
this
.
putValue
(
NoDataKey
.
key
(),
maximumOverlap
.
getAsDouble
());
/* // Uncomment if you want a info box to inform you about the maximum overlap
MaxOverlapProcessor.infoBox("Minimum distance between centers: " + maximumOverlap + " meters" , "Maximum Overlap");
*/
}
else
{
this
.
putValue
(
NoDataKey
.
key
(),
null
);
}
}
/* // Uncomment if you want a info box to inform you about the maximum overlap
public static void infoBox(String infoMessage, String titleBar)
{
JOptionPane.showMessageDialog(null, infoMessage, titleBar, JOptionPane.INFORMATION_MESSAGE);
}
*/
@Override
public
void
init
(
final
ProcessorManager
manager
)
{
super
.
init
(
manager
);
AttributesMaxOverlapProcessor
att
=
(
AttributesMaxOverlapProcessor
)
this
.
getAttributes
();
this
.
pedOverlapProc
=
(
PedestrianOverlapDistProcessor
)
manager
.
getProcessor
(
att
.
getPedestrianMaxOverlapProcessorId
());
}
@Override
public
AttributesProcessor
getAttributes
()
{
if
(
super
.
getAttributes
()
==
null
)
{
setAttributes
(
new
AttributesMaxOverlapProcessor
());
}
return
super
.
getAttributes
();
}
}
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/NumberOverlapsProcessor.java
View file @
2c81515b
...
...
@@ -33,7 +33,7 @@ public class NumberOverlapsProcessor extends DataProcessor<NoDataKey, Long> {
public
NumberOverlapsProcessor
()
{
super
(
"overlaps"
);
super
(
"
nr_
overlaps"
);
setAttributes
(
new
AttributesNumberOverlapsProcessor
());
}
...
...
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/PedestrianOverlapDistProcessor.java
0 → 100644
View file @
2c81515b
package
org.vadere.simulator.projects.dataprocessing.processor
;
import
org.vadere.annotation.factories.dataprocessors.DataProcessorClass
;
import
org.vadere.simulator.control.SimulationState
;
import
org.vadere.simulator.projects.dataprocessing.ProcessorManager
;
import
org.vadere.simulator.projects.dataprocessing.datakey.TimestepPedestrianIdKey
;
import
org.vadere.state.attributes.processor.AttributesMaxOverlapProcessor
;
import
org.vadere.state.scenario.Pedestrian
;
import
org.vadere.util.geometry.shapes.VPoint
;
import
java.util.*
;
import
java.util.stream.Stream
;
/**
* This processor gives for each pedestrian - if at least one overlap occurs in this time step - the overlap with
* the closest other pedestrian. That is 2*radius - distance (between the centers of the pedestrians). That means, if
* several overlaps occur at the same timestep, only the largest one is shown.
* At the moment, the radius needs to be equal for all pedestrians in the simulation.
*
* @author Marion Gödel
*/
@DataProcessorClass
()
public
class
PedestrianOverlapDistProcessor
extends
DataProcessor
<
TimestepPedestrianIdKey
,
Double
>
{
public
PedestrianOverlapDistProcessor
()
{
super
(
"overlap_dist"
);
}
@Override
protected
void
doUpdate
(
final
SimulationState
state
)
{
double
pedRadius
=
state
.
getTopography
().
getAttributesPedestrian
().
getRadius
();
// in init there is no access to the state
Collection
<
Pedestrian
>
peds
=
state
.
getTopography
().
getElements
(
Pedestrian
.
class
);
peds
.
forEach
(
p
->
this
.
putValue
(
new
TimestepPedestrianIdKey
(
state
.
getStep
(),
p
.
getId
()),
this
.
calculateOverlaps
(
peds
,
p
,
pedRadius
)));
}
@Override
public
void
init
(
final
ProcessorManager
manager
)
{
super
.
init
(
manager
);
}
private
double
calculateOverlaps
(
final
Collection
<
Pedestrian
>
peds
,
Pedestrian
ped
,
double
pedRadius
)
{
VPoint
pos
=
ped
.
getPosition
();
Stream
<
Pedestrian
>
pedList
=
peds
.
stream
().
filter
(
p
->
(!
p
.
equals
(
ped
))
?
p
.
getPosition
().
distance
(
pos
)
<=
2
*
pedRadius:
false
);
List
<
Double
>
overlaps
=
new
ArrayList
<
Double
>();
pedList
.
forEach
(
p
->
overlaps
.
add
(
2
*
pedRadius
-
p
.
getPosition
().
distance
(
pos
)));
double
overlapDist
=
(
overlaps
.
isEmpty
())
?
0
:
Collections
.
max
(
overlaps
);
return
overlapDist
;
}
}
VadereState/src/org/vadere/state/attributes/processor/AttributesMaxOverlapProcessor.java
0 → 100644
View file @
2c81515b
package
org.vadere.state.attributes.processor
;
/**
* @author Marion Gödel
*
*/
public
class
AttributesMaxOverlapProcessor
extends
AttributesProcessor
{
private
int
pedestrianMaxOverlapProcessorId
;
public
int
getPedestrianMaxOverlapProcessorId
()
{
return
this
.
pedestrianMaxOverlapProcessorId
;
}
public
void
getPedestrianMaxOverlapProcessorId
(
int
pedestrianMaxOverlapProcessorId
)
{
checkSealed
();
this
.
pedestrianMaxOverlapProcessorId
=
pedestrianMaxOverlapProcessorId
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment