org.jrobin.data
public class LinearInterpolator extends Plottable
Interpolation algorithm returns different values based on the value passed to
setInterpolationMethod()
. If not set, interpolation
method defaults to standard linear interpolation (INTERPOLATE_LINEAR).
Interpolation method handles NaN datasource
values gracefully.
Field Summary | |
---|---|
static int | INTERPOLATE_LEFT
constant used to specify LEFT interpolation.
|
static int | INTERPOLATE_LINEAR
constant used to specify LINEAR interpolation (default interpolation method).
|
static int | INTERPOLATE_REGRESSION
constant used to specify LINEAR REGRESSION as interpolation method.
|
static int | INTERPOLATE_RIGHT
constant used to specify RIGHT interpolation.
|
Constructor Summary | |
---|---|
LinearInterpolator(long[] timestamps, double[] values)
Creates LinearInterpolator from arrays of timestamps and corresponding datasource values.
| |
LinearInterpolator(Date[] dates, double[] values)
Creates LinearInterpolator from arrays of timestamps and corresponding datasource values.
| |
LinearInterpolator(Calendar[] dates, double[] values)
Creates LinearInterpolator from arrays of timestamps and corresponding datasource values.
|
Method Summary | |
---|---|
double | getValue(long timestamp)
Method overriden from the base class. |
void | setInterpolationMethod(int interpolationMethod)
Sets interpolation method to be used. |
setInterpolationMethod()
for explanation. setInterpolationMethod()
for explanation. setInterpolationMethod()
for explanation. setInterpolationMethod()
for explanation.Parameters: timestamps timestamps in seconds values corresponding datasource values
Throws: RrdException Thrown if supplied arrays do not contain at least two values, or if timestamps are not ordered, or array lengths are not equal.
Parameters: dates Array of Date objects values corresponding datasource values
Throws: RrdException Thrown if supplied arrays do not contain at least two values, or if timestamps are not ordered, or array lengths are not equal.
Parameters: dates array of GregorianCalendar objects values corresponding datasource values
Throws: RrdException Thrown if supplied arrays do not contain at least two values, or if timestamps are not ordered, or array lengths are not equal.
Parameters: timestamp timestamp in seconds
Returns: inteprolated datasource value
(t, 100)
and (t + 100, 300)
. Here are the results interpolator
returns for t + 50 seconds, for various interpolationMethods
:
INTERPOLATE_LEFT: 100
INTERPOLATE_RIGHT: 300
INTERPOLATE_LINEAR: 200
INTERPOLATE_LINEAR
.The fourth available interpolation method is INTERPOLATE_REGRESSION. This method uses simple linear regression to interpolate supplied data with a simple straight line which does not necessarily pass through all data points. The slope of the best-fit line will be chosen so that the total square distance of real data points from from the best-fit line is at minimum.
The full explanation of this inteprolation method can be found here.
Parameters: interpolationMethod Should be INTERPOLATE_LEFT
,
INTERPOLATE_RIGHT
, INTERPOLATE_LINEAR
or
INTERPOLATE_REGRESSION
. Any other value will be interpreted as
INTERPOLATE_LINEAR (default).