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 Type
    Method
    Description
    void
    Add fundamental diagram.
    void
    Clears all connected fundamental diagrams.
    org.djunits.value.vdouble.scalar.Duration
    The aggregation period.
    org.djunits.value.vdouble.scalar.Duration
    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

      void addFundamentalDiagram(FundamentalDiagram fundamentalDiagram)
      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 interval
      time - 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

      String getName(int series)
      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 number
      item - 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 number
      item - 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 number
      item - 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

      void setAggregateName(String aggregateName)
      Sets the name of the series when aggregated, e.g. for legend. Default is "Aggregate".
      Parameters:
      aggregateName - String; name of the series when aggregated