Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
vadere
vadere
Commits
83cb5e48
Commit
83cb5e48
authored
Apr 04, 2019
by
Stefan Schuhbaeck
Browse files
remove possible performance problems based on measurementArea
parents
6523d610
de166cff
Pipeline
#102623
passed with stages
in 127 minutes
Changes
34
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
VadereGui/testResources/test-scenario.scenario
View file @
83cb5e48
{
"name" : "Neues_Szenario",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
@@ -75,20 +75,8 @@
"id" : 6,
"attributesType" : "org.vadere.state.attributes.processor.AttributesAreaDensityVoronoiProcessor",
"attributes" : {
"measurementArea" : {
"x" : 5.0,
"y" : 2.0,
"width" : 1.0,
"height" : 1.0,
"type" : "RECTANGLE"
},
"voronoiArea" : {
"x" : 5.0,
"y" : 2.0,
"width" : 1.0,
"height" : 1.0,
"type" : "RECTANGLE"
}
"measurementAreaId" : 1,
"voronoiMeasurementAreaId" : 1
}
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.AreaSpeedProcessor",
...
...
@@ -148,26 +136,14 @@
"id" : 15,
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianWaitingTimeProcessor",
"attributes" : {
"waitingArea" : {
"x" : 5.0,
"y" : 2.0,
"width" : 1.0,
"height" : 1.0,
"type" : "RECTANGLE"
}
"waitingAreaId" : 1
}
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianWaitingEndTimeProcessor",
"id" : 16,
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianWaitingEndTimeProcessor",
"attributes" : {
"waitingArea" : {
"x" : 5.0,
"y" : 2.0,
"width" : 1.0,
"height" : 1.0,
"type" : "RECTANGLE"
}
"waitingAreaId" : 1
}
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianOSMStrideLengthProcessor",
...
...
@@ -341,7 +317,17 @@
"acceleration" : 2.0
},
"dynamicElements" : [ ],
"attributesCar" : null
"attributesCar" : null,
"measurementAreas" : [ {
"shape" : {
"x" : 5.0,
"y" : 2.0,
"width" : 1.0,
"height" : 1.0,
"type" : "RECTANGLE"
},
"id" : 1
} ]
}
}
}
\ No newline at end of file
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/FundamentalDiagramBProcessor.java
View file @
83cb5e48
...
...
@@ -13,6 +13,7 @@ import org.vadere.state.scenario.MeasurementArea;
import
org.vadere.state.scenario.Topography
;
import
org.vadere.state.simulation.VTrajectory
;
import
org.vadere.util.factory.processors.Flag
;
import
org.vadere.util.geometry.shapes.VRectangle
;
import
org.vadere.util.logging.Logger
;
import
java.util.HashMap
;
...
...
@@ -40,6 +41,7 @@ public class FundamentalDiagramBProcessor extends DataProcessor<PedestrianIdKey,
private
static
Logger
logger
=
Logger
.
getLogger
(
Topography
.
class
);
private
MeasurementArea
measurementArea
;
private
VRectangle
measurementAreaVRec
;
private
PedestrianTrajectoryProcessor
pedestrianTrajectoryProcessor
;
public
FundamentalDiagramBProcessor
()
{
...
...
@@ -56,6 +58,7 @@ public class FundamentalDiagramBProcessor extends DataProcessor<PedestrianIdKey,
throw
new
RuntimeException
(
String
.
format
(
"MeasurementArea with index %d does not exist."
,
att
.
getMeasurementAreaId
()));
if
(!
measurementArea
.
isRectangular
())
throw
new
RuntimeException
(
"DataProcessor only supports Rectangular measurement areas."
);
measurementAreaVRec
=
measurementArea
.
asVRectangle
();
}
@Override
...
...
@@ -89,7 +92,7 @@ public class FundamentalDiagramBProcessor extends DataProcessor<PedestrianIdKey,
for
(
Map
.
Entry
<
PedestrianIdKey
,
VTrajectory
>
trajectoryEntry
:
trajectoryMap
.
entrySet
())
{
PedestrianIdKey
key
=
trajectoryEntry
.
getKey
();
VTrajectory
trajectory
=
trajectoryEntry
.
getValue
();
VTrajectory
clone
=
trajectory
.
cut
(
measurementArea
.
as
VRec
tangle
()
);
VTrajectory
clone
=
trajectory
.
cut
(
measurementAreaVRec
);
cutTrajectoryMap
.
put
(
key
,
clone
);
}
...
...
@@ -120,7 +123,7 @@ public class FundamentalDiagramBProcessor extends DataProcessor<PedestrianIdKey,
.
sum
();
densityIntegral
/=
duration
;
densityIntegral
/=
measurementArea
.
as
VRec
tangle
()
.
getArea
();
densityIntegral
/=
measurementAreaVRec
.
getArea
();
return
densityIntegral
;
/*List<Triple<Double, Double, Integer>> integralValues = new LinkedList<>();
...
...
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/FundamentalDiagramCProcessor.java
View file @
83cb5e48
...
...
@@ -12,6 +12,7 @@ import org.vadere.state.attributes.processor.AttributesFundamentalDiagramCProces
import
org.vadere.state.attributes.processor.AttributesProcessor
;
import
org.vadere.state.scenario.MeasurementArea
;
import
org.vadere.util.factory.processors.Flag
;
import
org.vadere.util.geometry.shapes.VRectangle
;
import
java.util.List
;
...
...
@@ -30,6 +31,7 @@ import java.util.List;
public
class
FundamentalDiagramCProcessor
extends
AreaDataProcessor
<
Pair
<
Double
,
Double
>>
implements
UsesMeasurementArea
{
private
MeasurementArea
measurementArea
;
private
VRectangle
measurementAreaVRec
;
private
APedestrianVelocityProcessor
pedestrianVelocityProcessor
;
...
...
@@ -47,6 +49,7 @@ public class FundamentalDiagramCProcessor extends AreaDataProcessor<Pair<Double,
throw
new
RuntimeException
(
String
.
format
(
"MeasurementArea with index %d does not exist."
,
att
.
getMeasurementAreaId
()));
if
(!
measurementArea
.
isRectangular
())
throw
new
RuntimeException
(
"DataProcessor only supports Rectangular measurement areas."
);
measurementAreaVRec
=
measurementArea
.
asVRectangle
();
}
@Override
...
...
@@ -67,11 +70,11 @@ public class FundamentalDiagramCProcessor extends AreaDataProcessor<Pair<Double,
pedestrianVelocityProcessor
.
update
(
state
);
long
N
=
state
.
getTopography
().
getPedestrianDynamicElements
().
getElements
()
.
stream
()
.
filter
(
pedestrian
->
measurementArea
.
as
VRec
tangle
()
.
contains
(
pedestrian
.
getPosition
()))
.
filter
(
pedestrian
->
measurementAreaVRec
.
contains
(
pedestrian
.
getPosition
()))
.
count
();
double
velocity
=
state
.
getTopography
().
getPedestrianDynamicElements
().
getElements
()
.
stream
()
.
filter
(
pedestrian
->
measurementArea
.
as
VRec
tangle
()
.
contains
(
pedestrian
.
getPosition
()))
.
filter
(
pedestrian
->
measurementAreaVRec
.
contains
(
pedestrian
.
getPosition
()))
.
mapToDouble
(
pedestrian
->
//pedestrian.getVelocity().getLength()
pedestrianVelocityProcessor
.
getValue
(
new
TimestepPedestrianIdKey
(
state
.
getStep
(),
pedestrian
.
getId
()))
...
...
@@ -85,7 +88,7 @@ public class FundamentalDiagramCProcessor extends AreaDataProcessor<Pair<Double,
velocity
/=
N
;
}
double
density
=
N
/
measurementArea
.
as
VRec
tangle
()
.
getArea
();
double
density
=
N
/
measurementAreaVRec
.
getArea
();
putValue
(
new
TimestepKey
(
state
.
getStep
()),
Pair
.
of
(
velocity
,
density
));
}
...
...
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/PedestrianCrossingTimeProcessor.java
View file @
83cb5e48
...
...
@@ -13,6 +13,7 @@ import org.vadere.state.scenario.MeasurementArea;
import
org.vadere.state.scenario.Pedestrian
;
import
org.vadere.state.simulation.FootStep
;
import
org.vadere.util.factory.processors.Flag
;
import
org.vadere.util.geometry.shapes.VRectangle
;
import
org.vadere.util.logging.Logger
;
import
java.util.Collection
;
...
...
@@ -23,6 +24,8 @@ import java.util.List;
public
class
PedestrianCrossingTimeProcessor
extends
DataProcessor
<
PedestrianIdKey
,
Pair
<
Double
,
Double
>>
implements
UsesMeasurementArea
{
private
MeasurementArea
measurementArea
;
private
VRectangle
measurementAreaVRec
;
private
static
Logger
logger
=
Logger
.
getLogger
(
PedestrianCrossingTimeProcessor
.
class
);
public
PedestrianCrossingTimeProcessor
()
{
...
...
@@ -38,9 +41,9 @@ public class PedestrianCrossingTimeProcessor extends DataProcessor<PedestrianIdK
PedestrianIdKey
key
=
new
PedestrianIdKey
(
ped
.
getId
());
for
(
FootStep
footStep
:
ped
.
getFootSteps
())
{
if
(
footStep
.
intersects
(
measurementArea
.
as
VRec
tangle
()
))
{
if
(
footStep
.
intersects
(
measurementAreaVRec
))
{
double
intersectionTime
=
footStep
.
computeIntersectionTime
(
measurementArea
.
as
VRec
tangle
()
);
double
intersectionTime
=
footStep
.
computeIntersectionTime
(
measurementAreaVRec
);
if
(!
hasCrossStartTime
(
key
))
{
setStartTime
(
key
,
intersectionTime
);
}
...
...
@@ -83,7 +86,7 @@ public class PedestrianCrossingTimeProcessor extends DataProcessor<PedestrianIdK
throw
new
RuntimeException
(
String
.
format
(
"MeasurementArea with index %d does not exist."
,
att
.
getMeasurementAreaId
()));
if
(!
measurementArea
.
isRectangular
())
throw
new
RuntimeException
(
"DataProcessor and IntegralVoronoiAlgorithm only supports Rectangular measurement areas."
);
measurementAreaVRec
=
measurementArea
.
asVRectangle
();
}
...
...
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/PedestrianWaitingEndTimeProcessor.java
View file @
83cb5e48
...
...
@@ -11,6 +11,7 @@ import org.vadere.state.scenario.MeasurementArea;
import
org.vadere.state.scenario.Pedestrian
;
import
org.vadere.util.factory.processors.Flag
;
import
org.vadere.util.geometry.shapes.VPoint
;
import
org.vadere.util.geometry.shapes.VRectangle
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -21,6 +22,7 @@ import java.util.List;
@DataProcessorClass
()
public
class
PedestrianWaitingEndTimeProcessor
extends
DataProcessor
<
PedestrianIdKey
,
Double
>
implements
UsesMeasurementArea
{
private
MeasurementArea
waitingArea
;
private
VRectangle
waitingAreaVRec
;
public
PedestrianWaitingEndTimeProcessor
()
{
super
(
"waitingEndTime"
);
...
...
@@ -34,7 +36,7 @@ public class PedestrianWaitingEndTimeProcessor extends DataProcessor<PedestrianI
int
pedId
=
p
.
getId
();
VPoint
pos
=
p
.
getPosition
();
if
(
this
.
waitingArea
.
as
VRec
tangle
()
.
contains
(
pos
))
{
if
(
this
.
waitingAreaVRec
.
contains
(
pos
))
{
PedestrianIdKey
key
=
new
PedestrianIdKey
(
pedId
);
this
.
putValue
(
key
,
state
.
getSimTimeInSec
());
}
...
...
@@ -50,7 +52,7 @@ public class PedestrianWaitingEndTimeProcessor extends DataProcessor<PedestrianI
throw
new
RuntimeException
(
String
.
format
(
"MeasurementArea with index %d does not exist."
,
att
.
getWaitingAreaId
()));
if
(!
waitingArea
.
isRectangular
())
throw
new
RuntimeException
(
"DataProcessor and IntegralVoronoiAlgorithm only supports Rectangular measurement areas."
);
waitingAreaVRec
=
waitingArea
.
asVRectangle
();
}
@Override
...
...
VadereSimulator/src/org/vadere/simulator/projects/dataprocessing/processor/PedestrianWaitingTimeProcessor.java
View file @
83cb5e48
...
...
@@ -11,6 +11,7 @@ import org.vadere.state.scenario.MeasurementArea;
import
org.vadere.state.scenario.Pedestrian
;
import
org.vadere.util.factory.processors.Flag
;
import
org.vadere.util.geometry.shapes.VPoint
;
import
org.vadere.util.geometry.shapes.VRectangle
;
import
java.util.Collection
;
import
java.util.List
;
...
...
@@ -22,6 +23,7 @@ import java.util.List;
public
class
PedestrianWaitingTimeProcessor
extends
DataProcessor
<
PedestrianIdKey
,
Double
>
implements
UsesMeasurementArea
{
private
double
lastSimTime
;
private
MeasurementArea
waitingArea
;
private
VRectangle
waitingAreaRec
;
public
PedestrianWaitingTimeProcessor
()
{
super
(
"waitingTimeStart"
);
...
...
@@ -39,7 +41,7 @@ public class PedestrianWaitingTimeProcessor extends DataProcessor<PedestrianIdKe
int
pedId
=
p
.
getId
();
VPoint
pos
=
p
.
getPosition
();
if
(
this
.
waitingArea
.
asVRectangle
()
.
contains
(
pos
))
{
if
(
this
.
waitingArea
Rec
.
contains
(
pos
))
{
PedestrianIdKey
key
=
new
PedestrianIdKey
(
pedId
);
this
.
putValue
(
key
,
(
this
.
hasValue
(
key
)
?
this
.
getValue
(
key
)
:
0.0
)
+
dt
);
}
...
...
@@ -57,7 +59,7 @@ public class PedestrianWaitingTimeProcessor extends DataProcessor<PedestrianIdKe
throw
new
RuntimeException
(
String
.
format
(
"MeasurementArea with index %d does not exist."
,
att
.
getWaitingAreaId
()));
if
(!
waitingArea
.
isRectangular
())
throw
new
RuntimeException
(
"DataProcessor and IntegralVoronoiAlgorithm only supports Rectangular measurement areas."
);
waitingAreaRec
=
waitingArea
.
asVRectangle
();
this
.
lastSimTime
=
0.0
;
}
...
...
VadereSimulator/testResources/data/ScenarioChecker/ScenarioCheckerTest.scenario
View file @
83cb5e48
{
"name" : "TopographyCheckerTest",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/VTestMultiRun.bak/output/Test1_2015-03-11_17-42-08.826/snapshot.scenario
View file @
83cb5e48
{
"name" : "Test1",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "c45f1d26328baaec22418c15e6351a059e910f5f",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/VTestMultiRun.bak/scenarios/Test1.scenario
View file @
83cb5e48
{
"name" : "Test1",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "c45f1d26328baaec22418c15e6351a059e910f5f",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/VTestMultiRun.bak/scenarios/Test2.scenario
View file @
83cb5e48
{
"name" : "Test2",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "c45f1d26328baaec22418c15e6351a059e910f5f",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/VTestMultiRun/output/Test1_2015-03-11_17-42-08.826/snapshot.scenario
View file @
83cb5e48
{
"name" : "Test1",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "c45f1d26328baaec22418c15e6351a059e910f5f",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/VTestMultiRun/scenarios/Test1.scenario
View file @
83cb5e48
{
"name" : "Test1",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "c45f1d26328baaec22418c15e6351a059e910f5f",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/VTestMultiRun/scenarios/Test2.scenario
View file @
83cb5e48
{
"name" : "Test2",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "c45f1d26328baaec22418c15e6351a059e910f5f",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/basic_1_chicken_osm1.scenario
View file @
83cb5e48
{
"name" : "basic_1_chicken_osm1",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
@@ -172,4 +172,4 @@
"attributesCar" : null
}
}
}
}
\ No newline at end of file
VadereSimulator/testResources/data/corruptedOutput/test_postvis_2018-01-19_13-38-11.666/test_postvis.scenario
View file @
83cb5e48
{
"name" : "test_postvis",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/simpleProject/output/corrupt/test_postvis_2018-01-19_13-38-01.695/test_postvis.scenario
View file @
83cb5e48
{
"name" : "test_postvis",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/simpleProject/output/testOutput2/test_postvis.scenario
View file @
83cb5e48
{
"name" : "test_postvis",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/simpleProject/output/test_postvis_2018-01-17_16-56-37.307/test_postvis.scenario
View file @
83cb5e48
{
"name" : "test_postvis",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/simpleProject/output/test_postvis_2018-01-17_16-57-06.272/test_postvis.scenario
View file @
83cb5e48
{
"name" : "test_postvis",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
VadereSimulator/testResources/data/simpleProject/output/test_postvis_2018-01-19_10-00-32.786/test_postvis.scenario
View file @
83cb5e48
{
"name" : "test_postvis",
"description" : "",
"release" : "0.
7
",
"release" : "0.
8
",
"commithash" : "warning: no commit hash",
"processWriters" : {
"files" : [ {
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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