Package org.opentrafficsim.kpi.sampling
Class Sampler<G extends GtuData,L extends LaneData<L>>
java.lang.Object
org.opentrafficsim.kpi.sampling.Sampler<G,L>
- Type Parameters:
G
- GTU data typeL
- lane data type
Sampler is the highest level organizer for sampling.
Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
-
Constructor Summary
ConstructorsConstructorDescriptionSampler
(Set<ExtendedDataType<?, ?, ?, ? super G>> extendedDataTypes, Set<FilterDataType<?, ? super G>> filterDataTypes) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionfinal void
Creates a trajectory, including filter data.final void
addGtuWithSnapshot
(L lane, org.djunits.value.vdouble.scalar.Length position, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Acceleration acceleration, org.djunits.value.vdouble.scalar.Time time, G gtu) Creates a trajectory with the current snapshot of a GTU.boolean
contains
(ExtendedDataType<?, ?, ?, ?> extendedDataType) Whether this sampler has the given extended data type registered to it.boolean
abstract void
finalizeRecording
(L lane) Remove listeners to stop recording.Underlying sampler data.int
hashCode()
abstract void
initRecording
(L lane) Adds listeners to start recording.abstract org.djunits.value.vdouble.scalar.Time
now()
Returns the current simulation time.final void
registerSpaceTimeRegion
(SpaceTimeRegion<L> spaceTimeRegion) Registers a space-time region.final void
Finalizes a trajectory.final void
removeGtuWithSnapshot
(L lane, org.djunits.value.vdouble.scalar.Length position, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Acceleration acceleration, org.djunits.value.vdouble.scalar.Time time, G gtu) Finalizes a trajectory with the current snapshot of a GTU.abstract void
scheduleStartRecording
(org.djunits.value.vdouble.scalar.Time time, L lane) Schedules the start of recording for a given lane, i.e. the implementation has to invokestartRecording
at the specified time, with the given lane as input.abstract void
scheduleStopRecording
(org.djunits.value.vdouble.scalar.Time time, L lane) Schedules the stop of recording for a given lane, i.e. the implementation has to invokestopRecording
at the specified time, with the given lane as input.final void
snapshot
(L lane, org.djunits.value.vdouble.scalar.Length position, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Acceleration acceleration, org.djunits.value.vdouble.scalar.Time time, G gtu) Adds a new snapshot of a GTU to its recording trajectory, if recorded.final void
startRecording
(L lane) Start recording at the given time (which should be the current time) on the given lane.final void
stopRecording
(L lane) Stop recording at given lane.
-
Constructor Details
-
Sampler
public Sampler(Set<ExtendedDataType<?, ?, ?, ? super G>> extendedDataTypes, Set<FilterDataType<?, ? super G>> filterDataTypes) Constructor.- Parameters:
extendedDataTypes
- extended data types.filterDataTypes
- filter data types.
-
-
Method Details
-
getSamplerData
Underlying sampler data.- Returns:
- underlying sampler data
-
contains
Whether this sampler has the given extended data type registered to it.- Parameters:
extendedDataType
- extended data type- Returns:
- whether this sampler has the given extended data type registered to it
-
registerSpaceTimeRegion
Registers a space-time region. Data will be recorded across the entire length of a lane, but only during specified time periods.- Parameters:
spaceTimeRegion
- space-time region- Throws:
IllegalStateException
- if data is not available from the requested start time
-
now
public abstract org.djunits.value.vdouble.scalar.Time now()Returns the current simulation time.- Returns:
- current simulation time
-
scheduleStartRecording
Schedules the start of recording for a given lane, i.e. the implementation has to invokestartRecording
at the specified time, with the given lane as input. In case multiple space time-regions are registered for the same lane, this method is invoked whenever the next space-time region that is added has an earlier start time than any before.- Parameters:
time
- time to start recordinglane
- lane to start recording
-
scheduleStopRecording
Schedules the stop of recording for a given lane, i.e. the implementation has to invokestopRecording
at the specified time, with the given lane as input. In case multiple space time-regions are registered for the same lane, this method is invoked whenever the next space-time region that is added has a later end time than any before.- Parameters:
time
- time to stop recordinglane
- lane to stop recording
-
startRecording
Start recording at the given time (which should be the current time) on the given lane.- Parameters:
lane
- lane
-
initRecording
Adds listeners to start recording.- Parameters:
lane
- lane to initialize recording for
-
stopRecording
Stop recording at given lane.- Parameters:
lane
- lane
-
finalizeRecording
Remove listeners to stop recording.- Parameters:
lane
- lane
-
addGtuWithSnapshot
public final void addGtuWithSnapshot(L lane, org.djunits.value.vdouble.scalar.Length position, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Acceleration acceleration, org.djunits.value.vdouble.scalar.Time time, G gtu) Creates a trajectory with the current snapshot of a GTU.- Parameters:
lane
- lane the gtu is atposition
- position of the gtu on the lanespeed
- speed of the gtuacceleration
- acceleration of the gtutime
- current timegtu
- gtu
-
addGtu
Creates a trajectory, including filter data.- Parameters:
lane
- lane the gtu is atgtu
- gtu
-
snapshot
public final void snapshot(L lane, org.djunits.value.vdouble.scalar.Length position, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Acceleration acceleration, org.djunits.value.vdouble.scalar.Time time, G gtu) Adds a new snapshot of a GTU to its recording trajectory, if recorded. This method may be invoked on GTUs that are not being recorded; the event will then be ignored.- Parameters:
lane
- lane the gtu is atposition
- position of the gtu on the lanespeed
- speed of the gtuacceleration
- acceleration of the gtutime
- current timegtu
- gtu
-
removeGtuWithSnapshot
public final void removeGtuWithSnapshot(L lane, org.djunits.value.vdouble.scalar.Length position, org.djunits.value.vdouble.scalar.Speed speed, org.djunits.value.vdouble.scalar.Acceleration acceleration, org.djunits.value.vdouble.scalar.Time time, G gtu) Finalizes a trajectory with the current snapshot of a GTU.- Parameters:
lane
- lane the gtu is atposition
- position of the gtu on the lanespeed
- speed of the gtuacceleration
- acceleration of the gtutime
- current timegtu
- gtu
-
removeGtu
Finalizes a trajectory.- Parameters:
lane
- lane the gtu is atgtu
- gtu
-
hashCode
public int hashCode() -
equals
-