Class ContourDataSource

java.lang.Object
org.djutils.event.LocalEventProducer
org.opentrafficsim.draw.graphs.ContourDataSource
All Implemented Interfaces:
EventProducer

public class ContourDataSource extends LocalEventProducer
Class that contains data for contour plots. One data source can be shared between contour plots, in which case the granularity, path, sampler, update interval, and whether the data is smoothed (EGTF) are equal between the plots.

By default the source contains traveled time and traveled distance per cell.

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

    • GRANULARITY

      public static final EventType GRANULARITY
      Granularity changed.
    • INTERPOLATE

      public static final EventType INTERPOLATE
      Interpolation changed.
    • SMOOTH

      public static final EventType SMOOTH
      Smooth changed.
    • DEFAULT_SPACE_GRANULARITIES

      protected static final double[] DEFAULT_SPACE_GRANULARITIES
      Space granularity values.
    • DEFAULT_SPACE_GRANULARITY_INDEX

      protected static final int DEFAULT_SPACE_GRANULARITY_INDEX
      Index of the initial space granularity.
      See Also:
    • DEFAULT_TIME_GRANULARITIES

      protected static final double[] DEFAULT_TIME_GRANULARITIES
      Time granularity values.
    • DEFAULT_TIME_GRANULARITY_INDEX

      protected static final int DEFAULT_TIME_GRANULARITY_INDEX
      Index of the initial time granularity.
      See Also:
    • DEFAULT_LOWER_TIME_BOUND

      protected static final Time DEFAULT_LOWER_TIME_BOUND
      Initial lower bound for the time scale.
  • Constructor Details

    • ContourDataSource

      public ContourDataSource(SamplerData<?> samplerData, GraphPath<? extends LaneData<?>> path)
      Constructor using default granularities.
      Parameters:
      samplerData - sampler data
      path - path
    • ContourDataSource

      public ContourDataSource(SamplerData<?> samplerData, Duration delay, GraphPath<? extends LaneData<?>> path, double[] spaceGranularity, int initSpaceIndex, double[] timeGranularity, int initTimeIndex, Time start, Time initialEnd)
      Constructor for non-default input.
      Parameters:
      samplerData - sampler data
      delay - delay so critical future events have occurred, e.g. GTU's next move's to extend trajectories
      path - path
      spaceGranularity - granularity options for space dimension
      initSpaceIndex - initial selected space granularity
      timeGranularity - granularity options for time dimension
      initTimeIndex - initial selected time granularity
      start - start time
      initialEnd - initial end time of plots, will be expanded if simulation time exceeds it
  • Method Details

    • getSamplerData

      public final SamplerData<?> getSamplerData()
      Returns the sampler data for an AbstractContourPlot using this ContourDataSource.
      Returns:
      the sampler
    • getGranularities

      public final double[] getGranularities(ContourDataSource.Dimension dimension)
      Returns the available granularities that a linked plot may use.
      Parameters:
      dimension - space or time
      Returns:
      available granularities that a linked plot may use
    • getGranularity

      public final double getGranularity(ContourDataSource.Dimension dimension)
      Returns the selected granularity that a linked plot should use.
      Parameters:
      dimension - space or time
      Returns:
      granularity that a linked plot should use
    • offerGranularity

      public final void offerGranularity(ContourDataSource.Dimension dimension, double granularity)
      Offer granularity to the updater. This is a thread-safe execution as it hands over setting the granularity to the graph updater.
      Parameters:
      dimension - space or time
      granularity - granularity in space or time (SI unit)
    • setGranularity

      public final void setGranularity(ContourDataSource.Dimension dimension, double granularity)
      Sets the granularity of the plot. This will invalidate the plot triggering a redraw.
      Parameters:
      dimension - space or time
      granularity - granularity in space or time (SI unit)
    • setInterpolate

      public final void setInterpolate(boolean interpolate)
      Sets bi-linear interpolation enabled or disabled. This will invalidate the plot triggering a redraw.
      Parameters:
      interpolate - whether to enable interpolation
    • setSmooth

      public final void setSmooth(boolean smooth)
      Sets the adaptive smoothing enabled or disabled. This will invalidate the plot triggering a redraw.
      Parameters:
      smooth - whether to smooth the plot
    • getSpeed

      public double getSpeed(int item)
      Returns the speed of the cell pertaining to plot item.
      Parameters:
      item - plot item
      Returns:
      speed of the cell, calculated as 'total distance' / 'total space'.
    • getTotalDistance

      public double getTotalDistance(int item)
      Returns the total distance traveled in the cell pertaining to plot item.
      Parameters:
      item - plot item
      Returns:
      total distance traveled in the cell
    • getTotalTime

      public double getTotalTime(int item)
      Returns the total time traveled in the cell pertaining to plot item.
      Parameters:
      item - plot item
      Returns:
      total time traveled in the cell
    • get

      public double get(int item, ContourDataSource.ContourDataType<?,?> contourDataType)
      Returns data of the given ContourDataType for a specific item.
      Parameters:
      item - plot item
      contourDataType - contour data type
      Returns:
      data of the given ContourDataType for a specific item
    • toString

      public String toString()
      Overrides:
      toString in class Object