Package org.opentrafficsim.draw.graphs
Interface FundamentalDiagram.FdSource
- All Known Implementing Classes:
FundamentalDiagram.AbstractFdSource
- Enclosing class:
- FundamentalDiagram
public static interface FundamentalDiagram.FdSource
Data source for a fundamental diagram.
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addFundamentalDiagram
(FundamentalDiagram fundamentalDiagram) Add fundamental diagram.void
Clears all connected fundamental diagrams.org.djunits.value.vdouble.scalar.Duration
The aggregation period.org.djunits.value.vdouble.scalar.Duration
getDelay()
Return the delay for graph updates so future influencing events have occurred, e.d.double
getDensity
(int series, int item) Return the SI density value of item in series.org.djutils.immutablecollections.ImmutableSet<FundamentalDiagram>
Returns the diagrams.double
getFlow
(int series, int item) Return the SI flow value of item in series.int
getItemCount
(int series) Returns the number of items in the series.getName
(int series) Returns a name of the series.int
Returns the number of series (i.e. lanes or 1 for aggregated).default double[]
Returns the possible intervals.default int[]
Returns the possible frequencies, as a factor on 1 / 'aggregation interval'.double
getSpeed
(int series, int item) Return the SI speed value of item in series.org.djunits.value.vdouble.scalar.Duration
The update interval.void
increaseTime
(org.djunits.value.vdouble.scalar.Time time) Increase the time span.boolean
Returns whether this source aggregates lanes.void
recalculate
(org.djunits.value.vdouble.scalar.Time time) Recalculates the data after the aggregation or update time was changed.void
setAggregateName
(String aggregateName) Sets the name of the series when aggregated, e.g. for legend.void
setAggregationPeriod
(org.djunits.value.vdouble.scalar.Duration period) Changes the aggregation period.void
setUpdateInterval
(org.djunits.value.vdouble.scalar.Duration interval, org.djunits.value.vdouble.scalar.Time time) Changes the update interval.
-
Method Details
-
getPossibleAggregationPeriods
default double[] getPossibleAggregationPeriods()Returns the possible intervals.- Returns:
- double[]; possible intervals
-
getPossibleUpdateFrequencies
default int[] getPossibleUpdateFrequencies()Returns the possible frequencies, as a factor on 1 / 'aggregation interval'.- Returns:
- int[]; possible frequencies
-
addFundamentalDiagram
Add fundamental diagram. Used to notify diagrams when data has changed.- Parameters:
fundamentalDiagram
- FundamentalDiagram; fundamental diagram
-
clearFundamentalDiagrams
void clearFundamentalDiagrams()Clears all connected fundamental diagrams. -
getDiagrams
org.djutils.immutablecollections.ImmutableSet<FundamentalDiagram> getDiagrams()Returns the diagrams.- Returns:
- ImmutableSet<FundamentalDiagram> diagrams
-
getUpdateInterval
org.djunits.value.vdouble.scalar.Duration getUpdateInterval()The update interval.- Returns:
- Duration; update interval
-
setUpdateInterval
void setUpdateInterval(org.djunits.value.vdouble.scalar.Duration interval, org.djunits.value.vdouble.scalar.Time time) Changes the update interval.- Parameters:
interval
- Duration; update intervaltime
- Time; time until which data has to be recalculated
-
getAggregationPeriod
org.djunits.value.vdouble.scalar.Duration getAggregationPeriod()The aggregation period.- Returns:
- Duration; aggregation period
-
setAggregationPeriod
void setAggregationPeriod(org.djunits.value.vdouble.scalar.Duration period) Changes the aggregation period.- Parameters:
period
- Duration; aggregation period
-
recalculate
void recalculate(org.djunits.value.vdouble.scalar.Time time) Recalculates the data after the aggregation or update time was changed.- Parameters:
time
- Time; time up to which recalculation is required
-
getDelay
org.djunits.value.vdouble.scalar.Duration getDelay()Return the delay for graph updates so future influencing events have occurred, e.d. GTU move's.- Returns:
- Duration; graph delay
-
increaseTime
void increaseTime(org.djunits.value.vdouble.scalar.Time time) Increase the time span.- Parameters:
time
- Time; time to increase to
-
getNumberOfSeries
int getNumberOfSeries()Returns the number of series (i.e. lanes or 1 for aggregated).- Returns:
- int; number of series
-
getName
Returns a name of the series.- Parameters:
series
- int; series number- Returns:
- String; name of the series
-
getItemCount
int getItemCount(int series) Returns the number of items in the series.- Parameters:
series
- int; series number- Returns:
- int; number of items in the series
-
getFlow
double getFlow(int series, int item) Return the SI flow value of item in series.- Parameters:
series
- int; series numberitem
- int; item number in the series- Returns:
- double; SI flow value of item in series
-
getDensity
double getDensity(int series, int item) Return the SI density value of item in series.- Parameters:
series
- int; series numberitem
- int; item number in the series- Returns:
- double; SI density value of item in series
-
getSpeed
double getSpeed(int series, int item) Return the SI speed value of item in series.- Parameters:
series
- int; series numberitem
- int; item number in the series- Returns:
- double; SI speed value of item in series
-
isAggregate
boolean isAggregate()Returns whether this source aggregates lanes.- Returns:
- boolean; whether this source aggregates lanes
-
setAggregateName
Sets the name of the series when aggregated, e.g. for legend. Default is "Aggregate".- Parameters:
aggregateName
- String; name of the series when aggregated
-