Package org.djutils.stats.summarizers
Class TimestampWeightedTally
- java.lang.Object
-
- org.djutils.stats.summarizers.WeightedTally
-
- org.djutils.stats.summarizers.TimestampWeightedTally
-
- All Implemented Interfaces:
Serializable
,Statistic
,TallyStatistic
- Direct Known Subclasses:
EventBasedTimestampWeightedTally
public class TimestampWeightedTally extends WeightedTally
The TimestampWeightedTally class defines a time-weighted tally based on timestamped data. The difference with a normal time-weighed tally is that the weight of a value is only known at the occurrence of the next timestamp. Furthermore, a last timestamp needs to be specified to determine the weight of the last value. Timestamps can be Number based or Calendar based.Copyright (c) 2020-2023 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://simulation.tudelft.nl. The DSOL project is distributed under a three-clause BSD-style license, which can be found at https://simulation.tudelft.nl/dsol/3.0/license.html.
- Author:
- Alexander Verbraeck
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.djutils.stats.summarizers.WeightedTally
semaphore
-
-
Constructor Summary
Constructors Constructor Description TimestampWeightedTally(String description)
constructs a new TimestampWeightedTally with a description.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
endObservations(Number timestamp)
End the observations and closes the last interval of observations.void
endObservations(Calendar timestamp)
End the observations and closes the last interval of observations.double
getLastValue()
Return the last observed value.void
initialize()
Initialize the statistic.boolean
isActive()
Return whether the statistic is active (accepting observations) or not.double
register(double timestamp, double value)
Explicit;y override the double value method signature of WeightedTally to call the right method.
Process one observed double value.double
register(Number timestamp, double value)
Process one observed Number-based value.double
register(Calendar timestamp, double value)
Process one observed Calender-based value.protected double
registerValue(Number timestamp, double value)
Process one observed Number-based value.static String
reportFooter()
Return a string representing a footer for a textual table with a monospaced font that can contain multiple statistics.static String
reportHeader()
Return a string representing a header for a textual table with a monospaced font that can contain multiple statistics.String
reportLine()
Return a string representing a line with important statistics values for this statistic, for a textual table with a monospaced font that can contain multiple statistics.String
toString()
-
Methods inherited from class org.djutils.stats.summarizers.WeightedTally
getDescription, getMax, getMin, getN, getWeightedPopulationMean, getWeightedPopulationStDev, getWeightedPopulationVariance, getWeightedSampleMean, getWeightedSampleStDev, getWeightedSampleVariance, getWeightedSum
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.djutils.stats.summarizers.Statistic
formatFixed
-
-
-
-
Constructor Detail
-
TimestampWeightedTally
public TimestampWeightedTally(String description)
constructs a new TimestampWeightedTally with a description.- Parameters:
description
- String; the description of this TimestampWeightedTally
-
-
Method Detail
-
initialize
public void initialize()
Initialize the statistic.- Specified by:
initialize
in interfaceStatistic
- Overrides:
initialize
in classWeightedTally
-
isActive
public boolean isActive()
Return whether the statistic is active (accepting observations) or not.- Returns:
- boolean; whether the statistic is active (accepting observations) or not
-
endObservations
public void endObservations(Number timestamp)
End the observations and closes the last interval of observations. After ending, no more observations will be accepted. Calling this method will create an extra observation, and corresponding events for the EventBased implementations of this interface will be called.- Parameters:
timestamp
- Number; the Number object representing the final timestamp
-
endObservations
public void endObservations(Calendar timestamp)
End the observations and closes the last interval of observations. After ending, no more observations will be accepted. Calling this method will create an extra observation, and corresponding events for the EventBased implementations of this interface will be called.- Parameters:
timestamp
- Calendar; the Calendar object representing the final timestamp
-
getLastValue
public double getLastValue()
Return the last observed value.- Returns:
- double; the last observed value
-
register
public double register(Calendar timestamp, double value)
Process one observed Calender-based value. The time used will be the Calendar's time in milliseconds. Silently ignore when a value is registered, but tally is not active, i.e. when endObservations() has been called.- Parameters:
timestamp
- Calendar; the Calendar object representing the timestampvalue
- double; the value to process- Returns:
- double; the value
- Throws:
NullPointerException
- when timestamp is nullIllegalArgumentException
- when value is NaNIllegalArgumentException
- when given timestamp is before last timestamp
-
register
public double register(Number timestamp, double value)
Process one observed Number-based value. Silently ignore when a value is registered, but tally is not active, i.e. when endObservations() has been called.- Parameters:
timestamp
- Number; the object representing the timestampvalue
- double; the value to process- Returns:
- double; the value
- Throws:
NullPointerException
- when timestamp is nullIllegalArgumentException
- when value is NaN or timestamp is NaNIllegalArgumentException
- when given timestamp is before last timestamp
-
register
public double register(double timestamp, double value)
Explicit;y override the double value method signature of WeightedTally to call the right method.
Process one observed double value. Silently ignore when a value is registered, but tally is not active, i.e. when endObservations() has been called.- Overrides:
register
in classWeightedTally
- Parameters:
timestamp
- Number; the object representing the timestampvalue
- double; the value to process- Returns:
- double; the value
- Throws:
NullPointerException
- when timestamp is nullIllegalArgumentException
- when value is NaN or timestamp is NaNIllegalArgumentException
- when given timestamp is before last timestamp
-
registerValue
protected double registerValue(Number timestamp, double value)
Process one observed Number-based value. Silently ignore when a value is registered, but tally is not active, i.e. when endObservations() has been called.- Parameters:
timestamp
- Number; the object representing the timestampvalue
- double; the value to process- Returns:
- double; the value
- Throws:
NullPointerException
- when timestamp is nullIllegalArgumentException
- when value is NaN or timestamp is NaNIllegalArgumentException
- when given timestamp is before last timestamp
-
reportHeader
public static String reportHeader()
Return a string representing a header for a textual table with a monospaced font that can contain multiple statistics.- Returns:
- String; header for the textual table.
-
reportLine
public String reportLine()
Return a string representing a line with important statistics values for this statistic, for a textual table with a monospaced font that can contain multiple statistics.- Specified by:
reportLine
in interfaceStatistic
- Overrides:
reportLine
in classWeightedTally
- Returns:
- String; line with most important values of the statistic
-
reportFooter
public static String reportFooter()
Return a string representing a footer for a textual table with a monospaced font that can contain multiple statistics.- Returns:
- String; footer for the textual table
-
toString
public String toString()
- Overrides:
toString
in classWeightedTally
-
-