org.orekit.propagation.analytical.covariance
Class CovarianceInterpolation

java.lang.Object
  extended by org.orekit.propagation.analytical.covariance.CovarianceInterpolation

public class CovarianceInterpolation
extends Object

This class allows the interpolation of a covariance matrix at a date t in [t1, t2] using the surrounding covariances matrices Covt1 Covt2. The interpolated covariance matrix is computed using a polynomial approximation of the transition matrix.

Since:
2.3
Version:
$Id: CovarianceInterpolation.java 17582 2017-05-10 12:58:16Z bignon $
Author:
Sophie LAURENS
Concurrency :
not thread-safe
Concurrency comment :
internal mutable attributes

Constructor Summary
CovarianceInterpolation(AbsoluteDate t1In, double[][] matrix1, AbsoluteDate t2In, double[][] matrix2, int order, Orbit orbitSatellite, double muValue)
          Constructor of the class CovarianceInterpolation
CovarianceInterpolation(AbsoluteDate t1In, RealMatrix matrix1, AbsoluteDate t2In, RealMatrix matrix2, int order, Orbit orbitSatellite, double muValue)
          Constructor of the class CovarianceInterpolation
 
Method Summary
static double[][] createDiagonalArray(int dim, double coef)
          Creates a diagonal square matrix of dimension dim equals to coef * identity (dim)
static RealMatrix createDiagonalMatrix(int dim, double coef)
          Creates a diagonal square matrix of dimension dim equals to coef * identity (dim)
 RealMatrix getFirstCovarianceMatrix()
           
 double getMu()
           
 Orbit getOrbit()
           
 int getPolynomialOrder()
           
 RealMatrix getSecondCovarianceMatrix()
           
 AbsoluteDate getT1()
           
 AbsoluteDate getT2()
           
 RealMatrix interpolate(AbsoluteDate t)
          Computes the interpolation of a covariance matrix based on its two surrounding covariance matrices which define the interpolation interval allowed.
 double[][] interpolateArray(AbsoluteDate t)
          Computes the interpolation of a covariance matrix based on its two surrounding covariance matrices which define the interpolation interval allowed.
 void setFirstCovarianceMatrix(RealMatrix covMatrix, AbsoluteDate t)
          Allows to change the CovarianceMatrix standing for the lower bound of the interpolation interval, associated with t1.
 void setMu(double newMu)
          Allows to change the value of the gravitational parameter.
 void setOrbit(Orbit newOrbit)
          Allows to change the orbit.
 void setPolynomialOrder(int order)
           
 void setSecondCovarianceMatrix(RealMatrix covMatrix, AbsoluteDate t)
          Allows to change the CovarianceMatrix standing for the upper bound of the interpolation interval, associated with t2.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CovarianceInterpolation

public CovarianceInterpolation(AbsoluteDate t1In,
                               RealMatrix matrix1,
                               AbsoluteDate t2In,
                               RealMatrix matrix2,
                               int order,
                               Orbit orbitSatellite,
                               double muValue)
                        throws OrekitException
Constructor of the class CovarianceInterpolation

Parameters:
t1In - : begining date of performed interpolation
matrix1 - : first covariance matrix
t2In - : ending date of performed interpolation
matrix2 - : second covariance matrix
order - : Polynomial order of the interpolation, equals 0,1 or 2
orbitSatellite - : Orbit required to retrieve the PV coordinates of the satellite
muValue - : Standard gravitational parameter, can be different from the one contained in orbitSatellite, because the mu value for conversion can be different from the mu value used for propagation.
Throws:
OrekitException - DATE_OUTSIDE_INTERVAL or OUT_OF_RANGE_POLYNOMIAL_ORDER

CovarianceInterpolation

public CovarianceInterpolation(AbsoluteDate t1In,
                               double[][] matrix1,
                               AbsoluteDate t2In,
                               double[][] matrix2,
                               int order,
                               Orbit orbitSatellite,
                               double muValue)
                        throws OrekitException
Constructor of the class CovarianceInterpolation

Parameters:
t1In - : begining date of performed interpolation
matrix1 - : first covariance matrix
t2In - : ending date of performed interpolation
matrix2 - : second covariance matrix
order - : Polynomial order of the interpolation, equals 0,1 or 2
orbitSatellite - : Orbit required to retrieve the PV coordinates of the satellite
muValue - : Standard gravitational parameter, can be different from the one contained in orbitSatellite, because the mu value for conversion can be different from the mu value used for propagation.
Throws:
OrekitException - DATE_OUTSIDE_INTERVAL or OUT_OF_RANGE_POLYNOMIAL_ORDER
Method Detail

interpolate

public RealMatrix interpolate(AbsoluteDate t)
                       throws OrekitException
Computes the interpolation of a covariance matrix based on its two surrounding covariance matrices which define the interpolation interval allowed. Since the transition matrix is constant on [t1, t], its computation has to be done only once

Parameters:
t - : Interpolation date
Returns:
interpolatedCovarianceMatrix under the form of a RealMatrix
Throws:
OrekitException - if the date does not belong to the interpolation interval defined at the construction of the instance through the two CovarianceMatrix entered as parameters.

interpolateArray

public double[][] interpolateArray(AbsoluteDate t)
                            throws OrekitException
Computes the interpolation of a covariance matrix based on its two surrounding covariance matrices which define the interpolation interval allowed. Since the transition matrix is constant on [t1, t], its computation has to be done only once

Parameters:
t - : Interpolation date
Returns:
interpolatedCovarianceMatrix under the form double[][]
Throws:
OrekitException - if the date does not belong to the interpolation interval defined at the construction of the instance through the two CovarianceMatrix entered as parameters.

createDiagonalArray

public static double[][] createDiagonalArray(int dim,
                                             double coef)
Creates a diagonal square matrix of dimension dim equals to coef * identity (dim)

Parameters:
dim - : dimension of the square matrix
coef - : value of all the diagonal coefficients of the matrix
Returns:
matrix : a Array2DRowRealMatrix square diagonal matrix proportional to identity

createDiagonalMatrix

public static RealMatrix createDiagonalMatrix(int dim,
                                              double coef)
Creates a diagonal square matrix of dimension dim equals to coef * identity (dim)

Parameters:
dim - : dimension of the square matrix
coef - : value of all the diagonal coefficients of the matrix
Returns:
matrix : a Array2DRowRealMatrix square diagonal matrix proportional to identity

setFirstCovarianceMatrix

public void setFirstCovarianceMatrix(RealMatrix covMatrix,
                                     AbsoluteDate t)
Allows to change the CovarianceMatrix standing for the lower bound of the interpolation interval, associated with t1. If do so, the computation of the approximated transition matrix A has to be done again, since A is considered constant on [t1,t2] if multiple calls to method interpolate(AbsoluteDate) are made.

Parameters:
covMatrix - the new covariance matrix covarianceMatrix1
t - : setting date for the new covariance matrix

setSecondCovarianceMatrix

public void setSecondCovarianceMatrix(RealMatrix covMatrix,
                                      AbsoluteDate t)
Allows to change the CovarianceMatrix standing for the upper bound of the interpolation interval, associated with t2. If do so, the computation of the approximated transition matrix A has to be done again, since A is considered constant on [t1,t2] if multiple calls to method interpolate(AbsoluteDate) are made.

Parameters:
covMatrix - the new covariance matrix covarianceMatrix2
t - : setting date for the new covariance matrix

setPolynomialOrder

public void setPolynomialOrder(int order)
Parameters:
order - the polynomial order to set

setOrbit

public void setOrbit(Orbit newOrbit)
Allows to change the orbit. If do so, the computation of the approximated transition matrix A has to be done again, since A depends on the PV coordinates extracted from orbit.

Parameters:
newOrbit - the orbit to set

setMu

public void setMu(double newMu)
Allows to change the value of the gravitational parameter. If do so, the computation of the approximated transition matrix A has to be done again, since A depends on mu.

Parameters:
newMu - the mu value to set

getFirstCovarianceMatrix

public RealMatrix getFirstCovarianceMatrix()
Returns:
the first covariance matrix covarianceMatrix1

getSecondCovarianceMatrix

public RealMatrix getSecondCovarianceMatrix()
Returns:
the second covariance matrix covarianceMatrix1

getPolynomialOrder

public int getPolynomialOrder()
Returns:
the polynomial order

getOrbit

public Orbit getOrbit()
Returns:
the orbit

getMu

public double getMu()
Returns:
the standard gravitational parameter

getT1

public AbsoluteDate getT1()
Returns:
beginning interpolation date t1

getT2

public AbsoluteDate getT2()
Returns:
ending interpolation date t2


Copyright © 2017 CNES. All Rights Reserved.