Class Sampler<G extends GtuData,L extends LaneData>

java.lang.Object
org.opentrafficsim.kpi.sampling.Sampler<G,L>
Type Parameters:
G - gtu data type
L - 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 Details

    • 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 Details

    • 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 invoke startRecording 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; time to start recording
      lane - 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 invoke stopRecording 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 late end time than any before.
      Parameters:
      time - Time; time to stop recording
      lane - 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 at
      position - Length; position of the gtu on the lane
      speed - Speed; speed of the gtu
      acceleration - Acceleration; acceleration of the gtu
      time - Time; current time
      gtu - G; gtu
    • processGtuAddEvent

      public final void processGtuAddEvent(L lane, G gtu)
      Creates a trajectory, including filter data.
      Parameters:
      lane - L; lane the gtu is at
      gtu - 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 at
      position - Length; position of the gtu on the lane
      speed - Speed; speed of the gtu
      acceleration - Acceleration; acceleration of the gtu
      time - Time; current time
      gtu - 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 at
      position - Length; position of the gtu on the lane
      speed - Speed; speed of the gtu
      acceleration - Acceleration; acceleration of the gtu
      time - Time; current time
      gtu - G; gtu
    • processGtuRemoveEvent

      public final void processGtuRemoveEvent(L lane, G gtu)
      Finalizes a trajectory.
      Parameters:
      lane - L; lane the gtu is at
      gtu - G; gtu
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object