|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jrobin.data.Plottable
org.jrobin.data.LinearInterpolator
public class LinearInterpolator
Class used to interpolate datasource values from the collection of (timestamp, values) points. This class is suitable for linear interpolation only.
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(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. |
Method Summary | |
---|---|
double |
getValue(long timestamp)
Method overriden from the base class. |
void |
setInterpolationMethod(int interpolationMethod)
Sets interpolation method to be used. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
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.
Constructor Detail |
---|
public LinearInterpolator(long[] timestamps, double[] values) throws RrdException
timestamps
- timestamps in secondsvalues
- corresponding datasource values
RrdException
- 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) throws RrdException
dates
- Array of Date objectsvalues
- corresponding datasource values
RrdException
- 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) throws RrdException
dates
- array of GregorianCalendar objectsvalues
- corresponding datasource values
RrdException
- Thrown if supplied arrays do not contain at least two values, or if
timestamps are not ordered, or array lengths are not equal.Method Detail |
---|
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 inteprolation 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)
getValue
in class Plottable
timestamp
- timestamp in seconds
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |