Package org.opentrafficsim.draw.graphs
Class ContourDataSource
java.lang.Object
org.opentrafficsim.draw.graphs.ContourDataSource
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-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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classClass to store and determine axis information such as granularity, ticks, and range.static interfaceContourDataSource.ContourDataType<Z extends Number,I> Interface for data types of which a contour plot can be made.static enumEnum to refer to either the distance or time axis. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final TimeInitial lower bound for the time scale.protected static final double[]Space granularity values.protected static final intIndex of the initial space granularity.protected static final double[]Time granularity values.protected static final intIndex of the initial time granularity.(package private) final ContourDataSource.AxisSpace axis.(package private) final ContourDataSource.AxisTime axis. -
Constructor Summary
ConstructorsConstructorDescriptionContourDataSource(org.opentrafficsim.kpi.sampling.SamplerData<?> samplerData, Duration delay, GraphPath<? extends org.opentrafficsim.kpi.interfaces.LaneData> path, double[] spaceGranularity, int initSpaceIndex, double[] timeGranularity, int initTimeIndex, Time start, Time initialEnd) Constructor for non-default input.ContourDataSource(org.opentrafficsim.kpi.sampling.SamplerData<?> samplerData, GraphPath<? extends org.opentrafficsim.kpi.interfaces.LaneData> path) Constructor using default granularities. -
Method Summary
Modifier and TypeMethodDescriptiondoubleget(int item, ContourDataSource.ContourDataType<?, ?> contourDataType) Returns data of the givenContourDataTypefor a specific item.(package private) final intgetAxisBin(ContourDataSource.Dimension dimension, double value) Returns the axis bin number of the given value.(package private) final doublegetAxisValue(ContourDataSource.Dimension dimension, int item) Returns the value on the axis of an item.(package private) final intgetBinCount(ContourDataSource.Dimension dimension) Returns the bin count.(package private) final doublegetBinSize(ContourDataSource.Dimension dimension, int item) Returns the size of a bin.(package private) final DurationgetDelay()Returns the delay for anAbstractContourPlotusing thisContourDataSource.final double[]getGranularities(ContourDataSource.Dimension dimension) Returns the available granularities that a linked plot may use.final doublegetGranularity(ContourDataSource.Dimension dimension) Returns the selected granularity that a linked plot should use.(package private) final GraphPath<? extends org.opentrafficsim.kpi.interfaces.LaneData>getPath()Returns the path for anAbstractContourPlotusing thisContourDataSource.final org.opentrafficsim.kpi.sampling.SamplerData<?>Returns the sampler data for anAbstractContourPlotusing thisContourDataSource.doublegetSpeed(int item) Returns the speed of the cell pertaining to plot item.doublegetTotalDistance(int item) Returns the total distance traveled in the cell pertaining to plot item.doublegetTotalTime(int item) Returns the total time traveled in the cell pertaining to plot item.(package private) final DurationReturns the update interval for anAbstractContourPlotusing thisContourDataSource.(package private) final voidincreaseTime(Time updateTime) Called byAbstractContourPlotto update the time.(package private) final voidregisterContourPlot(AbstractContourPlot<?> contourPlot) Register a contour plot to this data pool.final voidsetGranularity(ContourDataSource.Dimension dimension, double granularity) Sets the granularity of the plot.final voidsetInterpolate(boolean interpolate) Sets bi-linear interpolation enabled or disabled.final voidsetSmooth(boolean smooth) Sets the adaptive smoothing enabled or disabled.toString()
-
Field Details
-
DEFAULT_SPACE_GRANULARITIES
protected static final double[] DEFAULT_SPACE_GRANULARITIESSpace granularity values. -
DEFAULT_SPACE_GRANULARITY_INDEX
protected static final int DEFAULT_SPACE_GRANULARITY_INDEXIndex of the initial space granularity.- See Also:
-
DEFAULT_TIME_GRANULARITIES
protected static final double[] DEFAULT_TIME_GRANULARITIESTime granularity values. -
DEFAULT_TIME_GRANULARITY_INDEX
protected static final int DEFAULT_TIME_GRANULARITY_INDEXIndex of the initial time granularity.- See Also:
-
DEFAULT_LOWER_TIME_BOUND
Initial lower bound for the time scale. -
spaceAxis
Space axis. -
timeAxis
Time axis.
-
-
Constructor Details
-
ContourDataSource
public ContourDataSource(org.opentrafficsim.kpi.sampling.SamplerData<?> samplerData, GraphPath<? extends org.opentrafficsim.kpi.interfaces.LaneData> path) Constructor using default granularities.- Parameters:
samplerData- SamplerData<?>; sampler datapath- GraphPath<? extends LaneData>; path
-
ContourDataSource
public ContourDataSource(org.opentrafficsim.kpi.sampling.SamplerData<?> samplerData, Duration delay, GraphPath<? extends org.opentrafficsim.kpi.interfaces.LaneData> path, double[] spaceGranularity, int initSpaceIndex, double[] timeGranularity, int initTimeIndex, Time start, Time initialEnd) Constructor for non-default input.- Parameters:
samplerData- SamplerData<?>; sampler datadelay- Duration; delay so critical future events have occurred, e.g. GTU's next move's to extend trajectoriespath- GraphPath<? extends LaneData>; pathspaceGranularity- double[]; granularity options for space dimensioninitSpaceIndex- int; initial selected space granularitytimeGranularity- double[]; granularity options for time dimensioninitTimeIndex- int; initial selected time granularitystart- Time; start timeinitialEnd- Time; initial end time of plots, will be expanded if simulation time exceeds it
-
-
Method Details
-
getSamplerData
public final org.opentrafficsim.kpi.sampling.SamplerData<?> getSamplerData()Returns the sampler data for anAbstractContourPlotusing thisContourDataSource.- Returns:
- SamplerData<?>; the sampler
-
getUpdateInterval
Returns the update interval for anAbstractContourPlotusing thisContourDataSource.- Returns:
- Duration; update interval
-
getDelay
Returns the delay for anAbstractContourPlotusing thisContourDataSource.- Returns:
- Duration; delay
-
getPath
Returns the path for anAbstractContourPlotusing thisContourDataSource.- Returns:
- GraphPath<? extends LaneData>; the path
-
registerContourPlot
Register a contour plot to this data pool. The contour constructor will do this.- Parameters:
contourPlot- AbstractContourPlot<?>; contour plot
-
getBinCount
Returns the bin count.- Parameters:
dimension- Dimension; space or time- Returns:
- int; bin count
-
getBinSize
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 timeitem- int; item number (cell number in contour plot)- Returns:
- double; the size of a bin
-
getAxisValue
Returns the value on the axis of an item.- Parameters:
dimension- Dimension; space or timeitem- int; item number (cell number in contour plot)- Returns:
- double; the value on the axis of this item
-
getAxisBin
Returns the axis bin number of the given value.- Parameters:
dimension- Dimension; space or timevalue- double; value- Returns:
- int; axis bin number of the given value
-
getGranularities
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
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
Called byAbstractContourPlotto update the time. This will invalidate the plot triggering a redraw.- Parameters:
updateTime- Time; current time
-
setGranularity
Sets the granularity of the plot. This will invalidate the plot triggering a redraw.- Parameters:
dimension- Dimension; space or timegranularity- 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
Returns data of the givenContourDataTypefor a specific item.- Parameters:
item- int; plot itemcontourDataType- ContourDataType<?, ?>; contour data type- Returns:
- data of the given
ContourDataTypefor a specific item
-
toString
-