Class ContourDataSource

java.lang.Object
org.opentrafficsim.draw.graphs.ContourDataSource

public class ContourDataSource extends Object
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

    • 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 org.djunits.value.vdouble.scalar.Time DEFAULT_LOWER_TIME_BOUND
      Initial lower bound for the time scale.
    • spaceAxis

      final ContourDataSource.Axis spaceAxis
      Space axis.
    • timeAxis

      final ContourDataSource.Axis timeAxis
      Time axis.
  • Constructor Details

    • ContourDataSource

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

      public ContourDataSource(SamplerData<?> samplerData, org.djunits.value.vdouble.scalar.Duration delay, GraphPath<? extends LaneData<?>> path, double[] spaceGranularity, int initSpaceIndex, double[] timeGranularity, int initTimeIndex, org.djunits.value.vdouble.scalar.Time start, org.djunits.value.vdouble.scalar.Time initialEnd)
      Constructor for non-default input.
      Parameters:
      samplerData - SamplerData<?>; sampler data
      delay - Duration; delay so critical future events have occurred, e.g. GTU's next move's to extend trajectories
      path - GraphPath<? extends LaneData>; path
      spaceGranularity - double[]; granularity options for space dimension
      initSpaceIndex - int; initial selected space granularity
      timeGranularity - double[]; granularity options for time dimension
      initTimeIndex - int; initial selected time granularity
      start - Time; start time
      initialEnd - Time; 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:
      SamplerData<?>; the sampler
    • getUpdateInterval

      final org.djunits.value.vdouble.scalar.Duration getUpdateInterval()
      Returns the update interval for an AbstractContourPlot using this ContourDataSource.
      Returns:
      Duration; update interval
    • getDelay

      final org.djunits.value.vdouble.scalar.Duration getDelay()
      Returns the delay for an AbstractContourPlot using this ContourDataSource.
      Returns:
      Duration; delay
    • getPath

      final GraphPath<? extends LaneData<?>> getPath()
      Returns the path for an AbstractContourPlot using this ContourDataSource.
      Returns:
      GraphPath<? extends LaneData>; the path
    • registerContourPlot

      final void registerContourPlot(AbstractContourPlot<?> contourPlot)
      Register a contour plot to this data pool. The contour constructor will do this.
      Parameters:
      contourPlot - AbstractContourPlot<?>; contour plot
    • getBinCount

      final int getBinCount(ContourDataSource.Dimension dimension)
      Returns the bin count.
      Parameters:
      dimension - Dimension; space or time
      Returns:
      int; bin count
    • getBinSize

      final double getBinSize(ContourDataSource.Dimension dimension, int item)
      Returns the size of a bin. Usually this is equal to the granularity, except for the last which is likely smaller.
      Parameters:
      dimension - Dimension; space or time
      item - int; item number (cell number in contour plot)
      Returns:
      double; the size of a bin
    • getAxisValue

      final double getAxisValue(ContourDataSource.Dimension dimension, int item)
      Returns the value on the axis of an item.
      Parameters:
      dimension - Dimension; space or time
      item - int; item number (cell number in contour plot)
      Returns:
      double; the value on the axis of this item
    • getAxisBin

      final int getAxisBin(ContourDataSource.Dimension dimension, double value)
      Returns the axis bin number of the given value.
      Parameters:
      dimension - Dimension; space or time
      value - double; value
      Returns:
      int; axis bin number of the given value
    • getGranularities

      public final double[] getGranularities(ContourDataSource.Dimension dimension)
      Returns the available granularities that a linked plot may use.
      Parameters:
      dimension - Dimension; space or time
      Returns:
      double[]; 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 - Dimension; space or time
      Returns:
      double; granularity that a linked plot should use
    • increaseTime

      final void increaseTime(org.djunits.value.vdouble.scalar.Time updateTime)
      Called by AbstractContourPlot to update the time. This will invalidate the plot triggering a redraw.
      Parameters:
      updateTime - Time; current time
    • 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 - Dimension; space or time
      granularity - double; 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 - boolean; 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 - boolean; whether to smooth the plor
    • getSpeed

      public double getSpeed(int item)
      Returns the speed of the cell pertaining to plot item.
      Parameters:
      item - int; plot item
      Returns:
      double; 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 - int; plot item
      Returns:
      double; 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 - int; plot item
      Returns:
      double; 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 - int; plot item
      contourDataType - ContourDataType<?, ?>; contour data type
      Returns:
      data of the given ContourDataType for a specific item
    • toString

      public String toString()
      Overrides:
      toString in class Object