Class CartesianOrbit

    • Method Detail

      • getType

        public OrbitType getType()
        Get the orbit type.
        Specified by:
        getType in class Orbit
        Returns:
        orbit type
      • getA

        public double getA()
        Get the semi-major axis.

        Note that the semi-major axis is considered negative for hyperbolic orbits.

        Specified by:
        getA in class Orbit
        Returns:
        semi-major axis (m)
      • getADot

        public double getADot()
        Get the semi-major axis derivative.

        Note that the semi-major axis is considered negative for hyperbolic orbits.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getADot in class Orbit
        Returns:
        semi-major axis derivative (m/s)
      • getE

        public double getE()
        Get the eccentricity.
        Specified by:
        getE in class Orbit
        Returns:
        eccentricity
      • getEDot

        public double getEDot()
        Get the eccentricity derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getEDot in class Orbit
        Returns:
        eccentricity derivative
      • getI

        public double getI()
        Get the inclination.
        Specified by:
        getI in class Orbit
        Returns:
        inclination (rad)
      • getIDot

        public double getIDot()
        Get the inclination derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getIDot in class Orbit
        Returns:
        inclination derivative (rad/s)
      • getEquinoctialEx

        public double getEquinoctialEx()
        Get the first component of the equinoctial eccentricity vector.
        Specified by:
        getEquinoctialEx in class Orbit
        Returns:
        first component of the equinoctial eccentricity vector
      • getEquinoctialExDot

        public double getEquinoctialExDot()
        Get the first component of the equinoctial eccentricity vector derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getEquinoctialExDot in class Orbit
        Returns:
        first component of the equinoctial eccentricity vector derivative
      • getEquinoctialEy

        public double getEquinoctialEy()
        Get the second component of the equinoctial eccentricity vector.
        Specified by:
        getEquinoctialEy in class Orbit
        Returns:
        second component of the equinoctial eccentricity vector
      • getEquinoctialEyDot

        public double getEquinoctialEyDot()
        Get the second component of the equinoctial eccentricity vector derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getEquinoctialEyDot in class Orbit
        Returns:
        second component of the equinoctial eccentricity vector derivative
      • getHx

        public double getHx()
        Get the first component of the inclination vector.
        Specified by:
        getHx in class Orbit
        Returns:
        first component of the inclination vector
      • getHxDot

        public double getHxDot()
        Get the first component of the inclination vector derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getHxDot in class Orbit
        Returns:
        first component of the inclination vector derivative
      • getHy

        public double getHy()
        Get the second component of the inclination vector.
        Specified by:
        getHy in class Orbit
        Returns:
        second component of the inclination vector
      • getHyDot

        public double getHyDot()
        Get the second component of the inclination vector derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getHyDot in class Orbit
        Returns:
        second component of the inclination vector derivative
      • getLv

        public double getLv()
        Get the true longitude argument.
        Specified by:
        getLv in class Orbit
        Returns:
        v + ω + Ω true longitude argument (rad)
      • getLvDot

        public double getLvDot()
        Get the true longitude argument derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getLvDot in class Orbit
        Returns:
        d(v + ω + Ω)/dt true longitude argument derivative (rad/s)
      • getLE

        public double getLE()
        Get the eccentric longitude argument.
        Specified by:
        getLE in class Orbit
        Returns:
        E + ω + Ω eccentric longitude argument (rad)
      • getLEDot

        public double getLEDot()
        Get the eccentric longitude argument derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getLEDot in class Orbit
        Returns:
        d(E + ω + Ω)/dt eccentric longitude argument derivative (rad/s)
      • getLM

        public double getLM()
        Get the mean longitude argument.
        Specified by:
        getLM in class Orbit
        Returns:
        M + ω + Ω mean longitude argument (rad)
      • getLMDot

        public double getLMDot()
        Get the mean longitude argument derivative.

        If the orbit was created without derivatives, the value returned is Double.NaN.

        Specified by:
        getLMDot in class Orbit
        Returns:
        d(M + ω + Ω)/dt mean longitude argument derivative (rad/s)
      • initPosition

        protected Vector3D initPosition()
        Compute the position coordinates from the canonical parameters.
        Specified by:
        initPosition in class Orbit
        Returns:
        computed position coordinates
      • initPVCoordinates

        protected TimeStampedPVCoordinates initPVCoordinates()
        Compute the position/velocity coordinates from the canonical parameters.
        Specified by:
        initPVCoordinates in class Orbit
        Returns:
        computed position/velocity coordinates
      • withFrame

        public CartesianOrbit withFrame​(Frame inertialFrame)
        Create a new object representing the same physical orbital state, but attached to a different reference frame. If the new frame is not inertial, an exception will be thrown.
        Specified by:
        withFrame in class Orbit
        Parameters:
        inertialFrame - reference frame of output orbit
        Returns:
        orbit with different frame
      • shiftedBy

        public CartesianOrbit shiftedBy​(double dt)
        Get a time-shifted orbit.

        The orbit can be slightly shifted to close dates. The shifting model is a Keplerian one if no derivatives are available in the orbit, or Keplerian plus quadratic effect of the non-Keplerian acceleration if derivatives are available. Shifting is not intended as a replacement for proper orbit propagation but should be sufficient for small time shifts or coarse accuracy.

        Specified by:
        shiftedBy in interface TimeShiftable<Orbit>
        Specified by:
        shiftedBy in class Orbit
        Parameters:
        dt - time shift in seconds
        Returns:
        a new orbit, shifted with respect to the instance (which is immutable)
      • shiftedBy

        public CartesianOrbit shiftedBy​(TimeOffset dt)
        Get a time-shifted orbit.

        The orbit can be slightly shifted to close dates. The shifting model is a Keplerian one if no derivatives are available in the orbit, or Keplerian plus quadratic effect of the non-Keplerian acceleration if derivatives are available. Shifting is not intended as a replacement for proper orbit propagation but should be sufficient for small time shifts or coarse accuracy.

        Specified by:
        shiftedBy in interface TimeShiftable<Orbit>
        Specified by:
        shiftedBy in class Orbit
        Parameters:
        dt - time shift
        Returns:
        a new orbit, shifted with respect to the instance (which is immutable)
      • computeJacobianMeanWrtCartesian

        protected double[][] computeJacobianMeanWrtCartesian()
        Description copied from class: Orbit
        Compute the Jacobian of the orbital parameters with mean angle with respect to the Cartesian parameters.

        Element jacobian[i][j] is the derivative of parameter i of the orbit with respect to Cartesian coordinate j. This means each row correspond to one orbital parameter whereas columns 0 to 5 correspond to the Cartesian coordinates x, y, z, xDot, yDot and zDot.

        The array returned by this method will not be modified.

        Specified by:
        computeJacobianMeanWrtCartesian in class Orbit
        Returns:
        6x6 Jacobian matrix
        See Also:
        Orbit.computeJacobianEccentricWrtCartesian(), Orbit.computeJacobianTrueWrtCartesian()
      • computeJacobianEccentricWrtCartesian

        protected double[][] computeJacobianEccentricWrtCartesian()
        Description copied from class: Orbit
        Compute the Jacobian of the orbital parameters with eccentric angle with respect to the Cartesian parameters.

        Element jacobian[i][j] is the derivative of parameter i of the orbit with respect to Cartesian coordinate j. This means each row correspond to one orbital parameter whereas columns 0 to 5 correspond to the Cartesian coordinates x, y, z, xDot, yDot and zDot.

        The array returned by this method will not be modified.

        Specified by:
        computeJacobianEccentricWrtCartesian in class Orbit
        Returns:
        6x6 Jacobian matrix
        See Also:
        Orbit.computeJacobianMeanWrtCartesian(), Orbit.computeJacobianTrueWrtCartesian()
      • computeJacobianTrueWrtCartesian

        protected double[][] computeJacobianTrueWrtCartesian()
        Description copied from class: Orbit
        Compute the Jacobian of the orbital parameters with true angle with respect to the Cartesian parameters.

        Element jacobian[i][j] is the derivative of parameter i of the orbit with respect to Cartesian coordinate j. This means each row correspond to one orbital parameter whereas columns 0 to 5 correspond to the Cartesian coordinates x, y, z, xDot, yDot and zDot.

        The array returned by this method will not be modified.

        Specified by:
        computeJacobianTrueWrtCartesian in class Orbit
        Returns:
        6x6 Jacobian matrix
        See Also:
        Orbit.computeJacobianMeanWrtCartesian(), Orbit.computeJacobianEccentricWrtCartesian()
      • addKeplerContribution

        public void addKeplerContribution​(PositionAngleType type,
                                          double gm,
                                          double[] pDot)
        Add the contribution of the Keplerian motion to parameters derivatives

        This method is used by integration-based propagators to evaluate the part of Keplerian motion to evolution of the orbital state.

        Specified by:
        addKeplerContribution in class Orbit
        Parameters:
        type - type of the position angle in the state
        gm - attraction coefficient to use
        pDot - array containing orbital state derivatives to update (the Keplerian part must be added to the array components, as the array may already contain some non-zero elements corresponding to non-Keplerian parts)
      • toString

        public String toString()
        Returns a string representation of this Orbit object.
        Overrides:
        toString in class Object
        Returns:
        a string representation of this object