public class OrbitalCovariance extends AbstractOrbitalCovariance<OrbitalCovariance>
This class associates a Covariance instance with a given orbit, its date being the date of definition of the orbital covariance. The frame, orbit type (Cartesian, Keplerian, etc) and position angle type (mean, true, eccentric) in which it is expressed can also be specified at construction if they are not the frame, orbit type and position angle type of the associated orbit.
The covariance matrix must be at least six by six, where the first six rows/columns represent the uncertainty on the orbital parameters and the remaining ones represent the uncertainty on the additional parameters. The parameter descriptors of these first six rows/columns must be associated to an orbital coordinate descriptor, and this descriptor must be mapped to a valid OrbitalCoordinate (one with the expected orbit type and state vector index).
ORBIT_DIMENSION, ORBITAL_COORDINATE_DESCRIPTOR
Constructor and Description |
---|
OrbitalCovariance(Covariance covariance,
Orbit orbit)
Creates a new instance that associates a covariance matrix with a given orbit, the covariance
being defined in the orbit's frame and type, and a
TRUE position
angle type. |
OrbitalCovariance(Covariance covariance,
Orbit orbit,
Frame frame,
OrbitType orbitType,
PositionAngle positionAngle)
Creates a new instance that associates a covariance matrix with a given orbit, the covariance
being defined in the specified frame, orbit type and position angle type.
|
OrbitalCovariance(Covariance covariance,
Orbit orbit,
PositionAngle positionAngle)
Creates a new instance that associates a covariance matrix with a given orbit, the covariance
being defined in the orbit's frame and type, and the specified position angle type.
|
OrbitalCovariance(SymmetricPositiveMatrix covarianceMatrix,
Orbit orbit)
Creates a new instance that associates a covariance matrix with a given orbit, the covariance
being defined in the orbit's frame and type, and a
TRUE position
angle type. |
OrbitalCovariance(SymmetricPositiveMatrix covarianceMatrix,
Orbit orbit,
Frame frame,
OrbitType orbitType,
PositionAngle positionAngle)
Creates a new instance that associates a covariance matrix with a given orbit, the covariance
being defined in the specified frame, orbit type and position angle type.
|
OrbitalCovariance(SymmetricPositiveMatrix covarianceMatrix,
Orbit orbit,
PositionAngle positionAngle)
Creates a new instance that associates a covariance matrix with a given orbit, the covariance
being defined in the orbit's frame and type, and the specified position angle type.
|
Modifier and Type | Method and Description |
---|---|
OrbitalCovariance |
copy()
Gets a copy of this orbital covariance.
|
boolean |
equals(Object object) |
AbsoluteDate |
getDate()
Get the date.
|
Orbit |
getOrbit()
Gets the orbit associated with the covariance.
|
int |
hashCode() |
OrbitalCovariance |
shiftedBy(double dt)
Shifts the orbital covariance in time by a given duration.
|
OrbitalCovariance |
transformTo(Frame destFrame,
OrbitType destOrbitType,
PositionAngle destPositionAngle)
Transforms this orbital covariance to the specified frame, orbit type and position angle
type.
|
OrbitalCovariance |
transformTo(LOFType lofType,
boolean frozenLof)
Transforms this orbital covariance to a local orbital frame centered on the associated orbit.
|
OrbitalCovariance |
transformTo(Orbit referenceOrbit,
LOFType lofType,
boolean frozenLof)
Transforms this orbital covariance to a local orbital frame centered on a given orbit.
|
checkCovarianceMatrixDimension, checkCovarianceMatrixDimension, checkOrbit, checkParameterDescriptors, checkParameterDescriptors, convertParameterDescriptors, getCovariance, getCovarianceMatrix, getFrame, getOrbitType, getParameterDescriptors, getPositionAngle, initParameterDescriptors, requireNonEmpty, requireNonNull, toString, toString, toString, toString, transformTo, transformTo, transformTo, transformTo, transformTo
public OrbitalCovariance(SymmetricPositiveMatrix covarianceMatrix, Orbit orbit)
TRUE
position
angle type.
The covariance matrix must be at least six by six, where the first six rows/columns represent the uncertainty on the orbital parameters and the remaining ones represent the uncertainty on the additional parameters. The parameter descriptors of these first six rows/columns are automatically associated with an orbital coordinate descriptor, mapped to a valid OrbitalCoordinate.
covarianceMatrix
- the covariance matrixorbit
- the orbit associated with the covarianceIllegalArgumentException
- if any of the provided arguments is null
or if the dimension of the
covariance matrix is less than 6public OrbitalCovariance(SymmetricPositiveMatrix covarianceMatrix, Orbit orbit, PositionAngle positionAngle)
The covariance matrix must be at least six by six, where the first six rows/columns represent the uncertainty on the orbital parameters and the remaining ones represent the uncertainty on the additional parameters. The parameter descriptors of these first six rows/columns are automatically associated with an orbital coordinate descriptor, mapped to a valid OrbitalCoordinate.
covarianceMatrix
- the covariance matrixorbit
- the orbit associated with the covariancepositionAngle
- the position angle type of the covarianceIllegalArgumentException
- if any of the provided arguments is null
or if the dimension of the
covariance matrix is less than 6public OrbitalCovariance(SymmetricPositiveMatrix covarianceMatrix, Orbit orbit, Frame frame, OrbitType orbitType, PositionAngle positionAngle)
The covariance matrix must be at least six by six, where the first six rows/columns represent the uncertainty on the orbital parameters and the remaining ones represent the uncertainty on the additional parameters. The parameter descriptors of these first six rows/columns are automatically associated with an orbital coordinate descriptor, mapped to a valid OrbitalCoordinate.
covarianceMatrix
- the covariance matrixorbit
- the orbit associated with the covarianceframe
- the frame of the covarianceorbitType
- the orbit type of the covariancepositionAngle
- the position angle type of the covarianceIllegalArgumentException
- if any of the provided arguments is null
or if the dimension of the
covariance matrix is less than 6public OrbitalCovariance(Covariance covariance, Orbit orbit)
TRUE
position
angle type.
The covariance matrix must be at least six by six, where the first six rows/columns represent the uncertainty on the orbital parameters and the remaining ones represent the uncertainty on the additional parameters. The parameter descriptors of these first six rows/columns must be associated to an orbital coordinate descriptor, and this descriptor must be mapped to a valid OrbitalCoordinate (one with the expected orbit type and state vector index).
covariance
- the covarianceorbit
- the orbit associated with the covarianceIllegalArgumentException
- if any of the provided arguments is null
or if the dimension of the
covariance matrix is less than 6, or if the parameter descriptors associated with the
orbital parameters are not validpublic OrbitalCovariance(Covariance covariance, Orbit orbit, PositionAngle positionAngle)
The covariance matrix must be at least six by six, where the first six rows/columns represent the uncertainty on the orbital parameters and the remaining ones represent the uncertainty on the additional parameters. The parameter descriptors of these first six rows/columns must be associated to an orbital coordinate descriptor, and this descriptor must be mapped to a valid OrbitalCoordinate (one with the expected orbit type and state vector index).
covariance
- the covarianceorbit
- the orbit associated with the covariancepositionAngle
- the position angle type of the covarianceIllegalArgumentException
- if any of the provided arguments is null
or if the dimension of the
covariance matrix is less than 6, or if the parameter descriptors associated with the
orbital parameters are not validpublic OrbitalCovariance(Covariance covariance, Orbit orbit, Frame frame, OrbitType orbitType, PositionAngle positionAngle)
The covariance matrix must be at least six by six, where the first six rows/columns represent the uncertainty on the orbital parameters and the remaining ones represent the uncertainty on the additional parameters. The parameter descriptors of these first six rows/columns must be associated to an orbital coordinate descriptor, and this descriptor must be mapped to a valid OrbitalCoordinate (one with the expected orbit type and state vector index).
covariance
- the covarianceorbit
- the orbit associated with the covarianceframe
- the frame of the covarianceorbitType
- the orbit type of the covariancepositionAngle
- the position angle type of the covarianceIllegalArgumentException
- if any of the provided arguments is null
or if the dimension of the
covariance matrix is less than 6, or if the parameter
descriptors associated with the orbital parameters are not validpublic AbsoluteDate getDate()
public Orbit getOrbit()
public OrbitalCovariance shiftedBy(double dt) throws PatriusException
The shift of the orbital covariance is based on a simple Keplerian model. It is not intended as a replacement for proper covariance propagation, but it should be sufficient for small time shifts or coarse accuracy.
dt
- the time shiftPatriusException
- if the Keplerian transition matrix cannot be computedpublic OrbitalCovariance transformTo(Frame destFrame, OrbitType destOrbitType, PositionAngle destPositionAngle) throws PatriusException
Important:
The use of non-Cartesian coordinates types may be incompatible with some frames (e.g. local
orbital frames).
transformTo
in class AbstractOrbitalCovariance<OrbitalCovariance>
destFrame
- the destination framedestOrbitType
- the destination orbit typedestPositionAngle
- the destination position angle typePatriusException
- if the orbital covariance cannot be transformed to the specified frame, orbit type
and position angle typepublic OrbitalCovariance transformTo(LOFType lofType, boolean frozenLof) throws PatriusException
Important:
The returned covariance is defined in Cartesian coordinates,
in the specified LOFType. Note that the local orbital frame uses the associated
orbit as its PVCoordinatesProvider, which relies on a simple Keplerian model for
the propagation. The LOF built is therefore only valid at the date of the associated orbit,
unless it is frozen at this date (the LOF then becomes an inertial frame which can be used at
other dates).
lofType
- the type of the local orbital framefrozenLof
- whether or not the local orbital frame built should be frozen at the date of the
reference orbitPatriusException
- if the orbital covariance cannot be transformed to the specified local orbital framepublic OrbitalCovariance transformTo(Orbit referenceOrbit, LOFType lofType, boolean frozenLof) throws PatriusException
The reference orbit must be defined at the same date as the covariance.
Important:
The returned covariance is defined in Cartesian coordinates,
in the specified LOFType. Note that the local orbital frame uses the reference
orbit as its PVCoordinatesProvider, which relies on a simple Keplerian model for
the propagation. The LOF built is therefore only valid at the date of the reference orbit,
unless it is frozen at this date (the LOF then becomes an inertial frame which can be used at
other dates).
referenceOrbit
- the orbit used to build the local orbital framelofType
- the type of the local orbital framefrozenLof
- whether or not the local orbital frame built should be frozen at the date of the
reference orbitPatriusException
- if the orbital covariance cannot be transformed to the specified local orbital framepublic OrbitalCovariance copy()
This method performs a shallow copy of the associated covariance (shallow copy of the parameter descriptors list, deep copy of the covariance matrix). The orbit, frame, orbit type and position angle type are all passed by reference since they are immutable.
Covariance.copy()
public boolean equals(Object object)
equals
in class AbstractOrbitalCovariance<OrbitalCovariance>
public int hashCode()
hashCode
in class AbstractOrbitalCovariance<OrbitalCovariance>
Copyright © 2021 CNES. All rights reserved.