Class ShortTermEncounter2DDefinition


  • public class ShortTermEncounter2DDefinition
    extends Object
    Defines the encounter between two collision object at time of closest approach assuming a short-term encounter model . It uses the given encounter frame type to define the encounter.

    Both the primary and secondary collision object can be at the reference of the encounter frame, it is up to the user to choose.

    The "reference" object is the object considered at the reference of the given encounter frame while the "other" object is the one not placed at the reference.

    For example, if the user wants the primary to be at the reference of the default encounter frame, they will have to input data in the following manner:

    
     final ShortTermEncounter2DDefinition encounter = new ShortTermEncounter2DDefinition(primaryOrbitAtTCA, primaryCovariance, primaryRadius, secondaryOrbitAtTCA, secondaryCovariance, secondaryRadius);
      
     
    However, if the user wants to put the secondary at the reference and use the Valsecchi encounter frame, they will have to type :
    
     final ShortTermEncounter2DDefinition encounter = new ShortTermEncounter2DDefinition(secondaryOrbitAtTCA, secondaryCovariance, secondaryRadius, primaryOrbitAtTCA, primaryCovariance, primaryRadius, EncounterLOFType.VALSECCHI_2003);
      
     
    Note that in the current implementation, the shape of the collision objects is assumed to be a sphere.
    Since:
    12.0
    Author:
    Vincent Cucchietti
    • Constructor Detail

      • ShortTermEncounter2DDefinition

        public ShortTermEncounter2DDefinition​(Orbit referenceAtTCA,
                                              StateCovariance referenceCovariance,
                                              double referenceRadius,
                                              Orbit otherAtTCA,
                                              StateCovariance otherCovariance,
                                              double otherRadius)
        Constructor.
        Parameters:
        referenceAtTCA - reference collision object orbit at time of closest approach
        referenceCovariance - reference collision object covariance matrix in its respective RTN frame
        referenceRadius - reference collision's equivalent sphere radius
        otherAtTCA - other collision object orbit at time of closest approach
        otherCovariance - other collision object covariance matrix in its respective RTN frame
        otherRadius - other collision's equivalent sphere radius
        Throws:
        OrekitException - If both collision object spacecraft state don't have the same definition date.
      • ShortTermEncounter2DDefinition

        public ShortTermEncounter2DDefinition​(Orbit referenceAtTCA,
                                              StateCovariance referenceCovariance,
                                              Orbit otherAtTCA,
                                              StateCovariance otherCovariance,
                                              double combinedRadius)
        Constructor.
        Parameters:
        referenceAtTCA - reference collision object orbit at time of closest approach
        referenceCovariance - reference collision object covariance matrix in its respective RTN frame
        otherAtTCA - other collision object orbit at time of closest approach
        otherCovariance - other collision object covariance matrix in its respective RTN frame
        combinedRadius - combined radius (m)
        Throws:
        OrekitException - If both collision object spacecraft state don't have the same definition date.
      • ShortTermEncounter2DDefinition

        public ShortTermEncounter2DDefinition​(Orbit referenceAtTCA,
                                              StateCovariance referenceCovariance,
                                              double referenceRadius,
                                              Orbit otherAtTCA,
                                              StateCovariance otherCovariance,
                                              double otherRadius,
                                              EncounterLOFType encounterFrameType,
                                              double tcaTolerance)
        Constructor.
        Parameters:
        referenceAtTCA - reference collision object orbit at time of closest approach
        referenceCovariance - reference collision object covariance matrix in its respective RTN frame
        referenceRadius - reference collision's equivalent sphere radius
        otherAtTCA - other collision object orbit at time of closest approach
        otherCovariance - other collision object covariance matrix in its respective RTN frame
        otherRadius - other collision's equivalent sphere radius
        encounterFrameType - type of encounter frame to use
        tcaTolerance - tolerance on reference and other times of closest approach difference
        Throws:
        OrekitException - If both collision object spacecraft state don't have the same definition date.
      • ShortTermEncounter2DDefinition

        public ShortTermEncounter2DDefinition​(Orbit referenceAtTCA,
                                              StateCovariance referenceCovariance,
                                              Orbit otherAtTCA,
                                              StateCovariance otherCovariance,
                                              double combinedRadius,
                                              EncounterLOFType encounterFrameType,
                                              double tcaTolerance)
        Constructor.
        Parameters:
        referenceAtTCA - reference collision object orbit at time of closest approach
        referenceCovariance - reference collision object covariance matrix in its respective RTN frame
        otherAtTCA - other collision object orbit at time of closest approach
        otherCovariance - other collision object covariance matrix in its respective RTN frame
        combinedRadius - combined radius (m)
        encounterFrameType - type of encounter frame to use
        tcaTolerance - tolerance on reference and other times of closest approach difference
        Throws:
        OrekitException - If both collision object spacecraft state don't have the same definition date.
    • Method Detail

      • computeSquaredMahalanobisDistance

        public static double computeSquaredMahalanobisDistance​(double xm,
                                                               double ym,
                                                               double sigmaX,
                                                               double sigmaY)
        Compute the squared Mahalanobis distance.
        Parameters:
        xm - other collision object projected xm position onto the collision plane in the rotated encounter frame
        ym - other collision object projected ym position onto the collision plane in the rotated encounter frame
        sigmaX - square root of the x-axis eigen value of the diagonalized combined covariance matrix projected onto the collision plane
        sigmaY - square root of the y-axis eigen value of the diagonalized combined covariance matrix projected onto the collision plane
        Returns:
        squared Mahalanobis distance
      • computeSquaredMahalanobisDistance

        public static double computeSquaredMahalanobisDistance​(Vector2D otherPosition,
                                                               RealMatrix covarianceMatrix)
        Compute the squared Mahalanobis distance.
        Parameters:
        otherPosition - other collision object projected position onto the collision plane in the rotated encounter frame
        covarianceMatrix - combined covariance matrix projected onto the collision plane and diagonalized
        Returns:
        squared Mahalanobis distance
      • computeOtherRelativeToReferencePVInReferenceInertial

        public PVCoordinates computeOtherRelativeToReferencePVInReferenceInertial()
        Compute the other collision position and velocity relative to the reference collision object. Expressed in the reference collision object inertial frame.
        Returns:
        other collision position and velocity relative to the reference collision object, expressed in the reference collision object inertial frame.
      • computeReferenceInertialToCollisionPlaneProjectionMatrix

        public RealMatrix computeReferenceInertialToCollisionPlaneProjectionMatrix()
        Compute the projection matrix from the reference collision object inertial frame to the collision plane.

        Note that this matrix will only rotate from the reference collision object inertial frame to the encounter frame and project onto the collision plane, this is only a rotation.

        Returns:
        projection matrix from the reference collision object inertial frame to the collision plane
      • computeProjectedAndDiagonalizedCombinedPositionalCovarianceMatrix

        public RealMatrix computeProjectedAndDiagonalizedCombinedPositionalCovarianceMatrix()
        Compute the combined covariance matrix diagonalized and projected onto the collision plane.

        Diagonalize projected positional covariance matrix in a specific manner to have σxx2 ≤ σyy2.

        Returns:
        combined covariance matrix diagonalized and projected onto the collision plane
      • computeProjectedCombinedPositionalCovarianceMatrix

        public RealMatrix computeProjectedCombinedPositionalCovarianceMatrix()
        Compute the projected combined covariance matrix onto the collision plane.
        Returns:
        projected combined covariance matrix onto the collision plane
      • computeCombinedCovarianceInEncounterFrame

        public StateCovariance computeCombinedCovarianceInEncounterFrame()
        Compute the combined covariance expressed in the encounter frame.
        Returns:
        combined covariance expressed in the encounter frame
      • computeOtherPositionInCollisionPlane

        public Vector2D computeOtherPositionInCollisionPlane()
        Compute the other collision object position projected onto the collision plane.
        Returns:
        other collision object position projected onto the collision plane
      • computeOtherPositionInRotatedCollisionPlane

        public Vector2D computeOtherPositionInRotatedCollisionPlane()
        Compute the other collision object position in the rotated collision plane.

        Uses a default zero threshold of 1e-15.

        The coordinates are often noted xm and ym in probability of collision related papers.

        The mentioned rotation concerns the rotation that diagonalize the combined covariance matrix inside the collision plane.

        Returns:
        other collision object position in the rotated collision plane
      • computeOtherPositionInRotatedCollisionPlane

        public Vector2D computeOtherPositionInRotatedCollisionPlane​(double zeroThreshold)
        Compute the other collision object position in the rotated collision plane.

        The coordinates are often noted xm and ym in probability of collision related papers.

        The mentioned rotation concerns the rotation that diagonalize the combined covariance matrix inside the collision plane.

        Parameters:
        zeroThreshold - threshold below which values are considered equal to zero
        Returns:
        other collision object position in the rotated collision plane
      • computeCoppolaEncounterDuration

        public double computeCoppolaEncounterDuration()
        Compute the Encounter duration (s) evaluated using Coppola's formula described in : "COPPOLA, Vincent, et al. Evaluating the short encounter assumption of the probability of collision formula. 2012."

        This method is to be used to check the validity of the short-term encounter model. The user is expected to compare the computed duration with the orbital period from both objects and draw its own conclusions.

        It uses γ = 1e-16 as the resolution of a double is nearly 1e-16 so γ smaller than that are not meaningful to compute.

        Returns:
        encounter duration (s) evaluated using Coppola's formula
      • computeMissDistance

        public double computeMissDistance()
        Compute the miss distance at time of closest approach.
        Returns:
        miss distance
      • computeMahalanobisDistance

        public double computeMahalanobisDistance()
        Compute the Mahalanobis distance computed with the other collision object projected onto the collision plane (commonly called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is diagonalized, see computeEncounterPlaneRotationMatrix(double) for more details).

        Uses a default zero threshold of 1e-15 for the computation of the diagonalizing of the projected covariance matrix.

        Returns:
        Mahalanobis distance between the reference and other collision object
        See Also:
        Mahalanobis distance
      • computeMahalanobisDistance

        public double computeMahalanobisDistance​(double zeroThreshold)
        Compute the Mahalanobis distance computed with the other collision object projected onto the collision plane (commonly called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is diagonalized, see computeEncounterPlaneRotationMatrix(double) for more details).
        Parameters:
        zeroThreshold - threshold below which values are considered equal to zero
        Returns:
        Mahalanobis distance between the reference and other collision object
        See Also:
        Mahalanobis distance
      • computeSquaredMahalanobisDistance

        public double computeSquaredMahalanobisDistance()
        Compute the squared Mahalanobis distance computed with the other collision object projected onto the collision plane (commonly called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is diagonalized, see computeEncounterPlaneRotationMatrix(double) for more details).

        Uses a default zero threshold of 1e-15 for the computation of the diagonalizing of the projected covariance matrix.

        Returns:
        squared Mahalanobis distance between the reference and other collision object
        See Also:
        Mahalanobis distance
      • computeSquaredMahalanobisDistance

        public double computeSquaredMahalanobisDistance​(double zeroThreshold)
        Compute the squared Mahalanobis distance computed with the other collision object projected onto the collision plane (commonly called B-Plane) and expressed in the rotated encounter frame (frame in which the combined covariance matrix is diagonalized, see computeEncounterPlaneRotationMatrix(double) for more details).
        Parameters:
        zeroThreshold - threshold below which values are considered equal to zero
        Returns:
        squared Mahalanobis distance between the reference and other collision object
        See Also:
        Mahalanobis distance
      • computeCombinedCovarianceInReferenceTNW

        public StateCovariance computeCombinedCovarianceInReferenceTNW()
        Takes both covariance matrices (expressed in their respective RTN local orbital frame) from reference and other collision object with which this instance was created and sum them in the reference collision object TNW local orbital frame.
        Returns:
        combined covariance matrix expressed in the reference collision object TNW local orbital frame
      • getTca

        public AbsoluteDate getTca()
        Get the Time of Closest Approach.

        Commonly called TCA.

        Returns:
        time of closest approach
      • getReferenceAtTCA

        public Orbit getReferenceAtTCA()
        Get reference's orbit at time of closest approach.
        Returns:
        reference's orbit at time of closest approach
      • getOtherAtTCA

        public Orbit getOtherAtTCA()
        Get other's orbit at time of closest approach.
        Returns:
        other's orbit at time of closest approach
      • getReferenceCovariance

        public StateCovariance getReferenceCovariance()
        Get reference's covariance.
        Returns:
        reference's covariance
      • getOtherCovariance

        public StateCovariance getOtherCovariance()
        Get other's covariance.
        Returns:
        other's covariance
      • getCombinedRadius

        public double getCombinedRadius()
        Get combined radius.
        Returns:
        combined radius (m)
      • getEncounterFrame

        public EncounterLOF getEncounterFrame()
        Get encounter local orbital frame.
        Returns:
        encounter local orbital frame