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 voidCreates a trajectory, including filter data.final voidaddGtuWithSnapshot(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.booleancontains(ExtendedDataType<?, ?, ?, ?> extendedDataType) Whether this sampler has the given extended data type registered to it.booleanabstract voidfinalizeRecording(L lane) Remove listeners to stop recording.Underlying sampler data.inthashCode()abstract voidinitRecording(L lane) Adds listeners to start recording.abstract org.djunits.value.vdouble.scalar.Timenow()Returns the current simulation time.final voidregisterSpaceTimeRegion(SpaceTimeRegion<L> spaceTimeRegion) Registers a space-time region.final voidFinalizes a trajectory.final voidremoveGtuWithSnapshot(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 voidscheduleStartRecording(org.djunits.value.vdouble.scalar.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.abstract voidscheduleStopRecording(org.djunits.value.vdouble.scalar.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.final voidsnapshot(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 voidstartRecording(L lane) Start recording at the given time (which should be the current time) on the given lane.final voidstopRecording(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 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 to start recordinglane- lane to start recording
-
scheduleStopRecording
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 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
-