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.
Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
LinearInterpolator(Calendar[] dates,
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(long[] timestamps,
double[] values)
Creates LinearInterpolator from arrays of timestamps and corresponding datasource values.
|
Modifier and Type | Method and Description |
---|---|
double |
getValue(long timestamp)
Retrieves datapoint value based on a given timestamp.
|
void |
setInterpolationMethod(int interpolationMethod)
Sets interpolation method to be used.
|
public static final int INTERPOLATE_LEFT
setInterpolationMethod()
for explanation.public static final int INTERPOLATE_RIGHT
setInterpolationMethod()
for explanation.public static final int INTERPOLATE_LINEAR
setInterpolationMethod()
for explanation.public static final int INTERPOLATE_REGRESSION
setInterpolationMethod()
for explanation.public LinearInterpolator(long[] timestamps, double[] values)
timestamps
- timestamps in secondsvalues
- corresponding datasource valuesIllegalArgumentException
- Thrown if supplied arrays do not contain at least two values, or if
timestamps are not ordered, or array lengths are not equal.public LinearInterpolator(Date[] dates, double[] values)
dates
- Array of Date objectsvalues
- corresponding datasource valuesIllegalArgumentException
- Thrown if supplied arrays do not contain at least two values, or if
timestamps are not ordered, or array lengths are not equal.public LinearInterpolator(Calendar[] dates, double[] values)
dates
- array of GregorianCalendar objectsvalues
- corresponding datasource valuesIllegalArgumentException
- Thrown if supplied arrays do not contain at least two values, or if
timestamps are not ordered, or array lengths are not equal.public void setInterpolationMethod(int interpolationMethod)
(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 interpolation method can be found here.
interpolationMethod
- Should be INTERPOLATE_LEFT
,
INTERPOLATE_RIGHT
, INTERPOLATE_LINEAR
or
INTERPOLATE_REGRESSION
. Any other value will be interpreted as
INTERPOLATE_LINEAR (default).public double getValue(long timestamp)
Copyright © 2015. All rights reserved.