Package org.opentrafficsim.kpi.sampling
Class Sampler<G extends GtuData,L extends LaneData>
- java.lang.Object
-
- org.opentrafficsim.kpi.sampling.Sampler<G,L>
-
- Type Parameters:
G- gtu data typeL- lane data type
public abstract class Sampler<G extends GtuData,L extends LaneData> extends Object
Sampler is the highest level organizer for sampling.Copyright (c) 2013-2023 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
Constructors Constructor Description Sampler(Set<ExtendedDataType<?,?,?,G>> extendedDataTypes, Set<FilterDataType<?>> filterDataTypes)Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleancontains(ExtendedDataType<?,?,?,?> extendedDataType)Whether this sampler has the given extended data type registered to it.booleanequals(Object obj)abstract voidfinalizeRecording(L lane)Remove listeners to stop recording.SamplerData<G>getSamplerData()Underlying sampler data.inthashCode()abstract voidinitRecording(L lane)Adds listeners to start recording.abstract Timenow()Returns the current simulation time.voidprocessGtuAddEvent(L lane, G gtu)Creates a trajectory, including filter data.voidprocessGtuAddEventWithMove(L lane, Length position, Speed speed, Acceleration acceleration, Time time, G gtu)Creates a trajectory with the current snapshot of a GTU.voidprocessGtuMoveEvent(L lane, Length position, Speed speed, Acceleration acceleration, Time time, G gtu)Adds a new snapshot of a GTU to its recording trajectory, if recorded.voidprocessGtuRemoveEvent(L lane, G gtu)Finalizes a trajectory.voidprocessGtuRemoveEventWithMove(L lane, Length position, Speed speed, Acceleration acceleration, Time time, G gtu)Finalizes a trajectory with the current snapshot of a GTU.voidregisterSpaceTimeRegion(SpaceTimeRegion<L> spaceTimeRegion)Registers a space-time region.abstract voidscheduleStartRecording(Time time, L lane)Schedules the start of recording for a given lane, i.e.abstract voidscheduleStopRecording(Time time, L lane)Schedules the stop of recording for a given lane, i.e.voidstartRecording(L lane)Start recording at the given time (which should be the current time) on the given lane.voidstopRecording(L lane)Stop recording at given lane.
-
-
-
Constructor Detail
-
Sampler
public Sampler(Set<ExtendedDataType<?,?,?,G>> extendedDataTypes, Set<FilterDataType<?>> filterDataTypes)
Constructor.- Parameters:
extendedDataTypes- Set<ExtendedDataType<?, ?, ?, G>>; extended data types.filterDataTypes- Set<FilterDataType<?>>; filter data types.
-
-
Method Detail
-
getSamplerData
public SamplerData<G> getSamplerData()
Underlying sampler data.- Returns:
- SamplerData<G>; underlying sampler data
-
contains
public boolean contains(ExtendedDataType<?,?,?,?> extendedDataType)
Whether this sampler has the given extended data type registered to it.- Parameters:
extendedDataType- ExtendedDataType<?,?,?,?>; extended data type- Returns:
- whether this sampler has the given extended data type registered to it
-
registerSpaceTimeRegion
public final void registerSpaceTimeRegion(SpaceTimeRegion<L> spaceTimeRegion)
Registers a space-time region. Data will be recorded across the entire length of a lane, but only during specified time periods.- Parameters:
spaceTimeRegion- SpaceTimeRegion<L>; space-time region- Throws:
IllegalStateException- if data is not available from the requested start time
-
now
public abstract Time now()
Returns the current simulation time.- Returns:
- current simulation time
-
scheduleStartRecording
public abstract void scheduleStartRecording(Time time, L lane)
Schedules the start of recording for a given lane, i.e. the implementation has to invokestartRecordingat 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; time to start recordinglane- L; lane to start recording
-
scheduleStopRecording
public abstract void scheduleStopRecording(Time time, L lane)
Schedules the stop of recording for a given lane, i.e. the implementation has to invokestopRecordingat 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 late end time than any before.- Parameters:
time- Time; time to stop recordinglane- L; lane to stop recording
-
startRecording
public final void startRecording(L lane)
Start recording at the given time (which should be the current time) on the given lane.- Parameters:
lane- L; lane
-
initRecording
public abstract void initRecording(L lane)
Adds listeners to start recording.- Parameters:
lane- L; lane to initialize recording for
-
stopRecording
public final void stopRecording(L lane)
Stop recording at given lane.- Parameters:
lane- L; lane
-
finalizeRecording
public abstract void finalizeRecording(L lane)
Remove listeners to stop recording.- Parameters:
lane- L; lane
-
processGtuAddEventWithMove
public final void processGtuAddEventWithMove(L lane, Length position, Speed speed, Acceleration acceleration, Time time, G gtu)
Creates a trajectory with the current snapshot of a GTU.- Parameters:
lane- L; lane the gtu is atposition- Length; position of the gtu on the lanespeed- Speed; speed of the gtuacceleration- Acceleration; acceleration of the gtutime- Time; current timegtu- G; gtu
-
processGtuAddEvent
public final void processGtuAddEvent(L lane, G gtu)
Creates a trajectory, including filter data.- Parameters:
lane- L; lane the gtu is atgtu- G; gtu
-
processGtuMoveEvent
public final void processGtuMoveEvent(L lane, Length position, Speed speed, Acceleration acceleration, Time time, G gtu)
Adds a new snapshot of a GTU to its recording trajectory, if recorded. This method may be invoked on GTU that are not being recorded; the event will then be ignored.- Parameters:
lane- L; lane the gtu is atposition- Length; position of the gtu on the lanespeed- Speed; speed of the gtuacceleration- Acceleration; acceleration of the gtutime- Time; current timegtu- G; gtu
-
processGtuRemoveEventWithMove
public final void processGtuRemoveEventWithMove(L lane, Length position, Speed speed, Acceleration acceleration, Time time, G gtu)
Finalizes a trajectory with the current snapshot of a GTU.- Parameters:
lane- L; lane the gtu is atposition- Length; position of the gtu on the lanespeed- Speed; speed of the gtuacceleration- Acceleration; acceleration of the gtutime- Time; current timegtu- G; gtu
-
processGtuRemoveEvent
public final void processGtuRemoveEvent(L lane, G gtu)
Finalizes a trajectory.- Parameters:
lane- L; lane the gtu is atgtu- G; gtu
-
-