Enum Class LOFType

java.lang.Object
java.lang.Enum<LOFType>
org.orekit.frames.LOFType
All Implemented Interfaces:
Serializable, Comparable<LOFType>, Constable, LOF

public enum LOFType extends Enum<LOFType> implements LOF
Enumerate for different types of Local Orbital Frames.
Author:
Luc Maisonobe, Maxime Journot, Vincent Cucchietti
  • Enum Constant Details

    • TNW

      public static final LOFType TNW
      Constant for TNW frame (X axis aligned with velocity, Z axis aligned with orbital momentum).

      The axes of this frame are parallel to the axes of the VNC and NTW frames:

      • XTNW = XVNC = YNTW
      • YTNW = -ZVNC = -XNTW
      • ZTNW = YVNC = ZNTW
      See Also:
    • TNW_INERTIAL

      public static final LOFType TNW_INERTIAL
      Constant for TNW frame considered inertial (X axis aligned with velocity, Z axis aligned with orbital momentum).

      The axes of this frame are parallel to the axes of the VNC and NTW frames:

      • XTNW = XVNC = YNTW
      • YTNW = -ZVNC = -XNTW
      • ZTNW = YVNC = ZNTW
      See Also:
    • QSW

      public static final LOFType QSW
      Constant for QSW frame (X axis aligned with position, Z axis aligned with orbital momentum).

      This frame is also known as the LVLH frame, both constants are equivalent.

      The axes of these frames are parallel to the axes of the VVLH frame:

      • XQSW/LVLH = -ZVVLH
      • YQSW/LVLH = XVVLH
      • ZQSW/LVLH = -YVVLH
      See Also:
    • QSW_INERTIAL

      public static final LOFType QSW_INERTIAL
      Constant for QSW frame considered inertial (X axis aligned with position, Z axis aligned with orbital momentum).

      This frame is also known as the LVLH frame, both constants are equivalent.

      The axes of these frames are parallel to the axes of the VVLH frame:

      • XQSW/LVLH = -ZVVLH
      • YQSW/LVLH = XVVLH
      • ZQSW/LVLH = -YVVLH
      See Also:
    • LVLH

      public static final LOFType LVLH
      Constant for Local Vertical, Local Horizontal frame (X axis aligned with position, Z axis aligned with orbital momentum).

      BEWARE! Depending on the background (software used, textbook, community), different incompatible definitions for LVLH are used. This one is consistent with Vallado's book and with AGI's STK. However CCSDS standard, Wertz, and a.i. solutions' FreeFlyer use another definition (see LVLH_CCSDS).

      This frame is also known as the QSW frame, both constants are equivalent.

      The axes of these frames are parallel to the axes of the LVLH_CCSDS frame:

      • XLVLH/QSW = -ZLVLH_CCSDS
      • YLVLH/QSW = XLVLH_CCSDS
      • ZLVLH/QSW = -YLVLH_CCSDS
      See Also:
    • LVLH_INERTIAL

      public static final LOFType LVLH_INERTIAL
      Constant for Local Vertical, Local Horizontal frame considered inertial (X axis aligned with position, Z axis aligned with orbital momentum).

      BEWARE! Depending on the background (software used, textbook, community), different incompatible definitions for LVLH are used. This one is consistent with Vallado's book and with AGI's STK. However CCSDS standard, Wertz, and a.i. solutions' FreeFlyer use another definition (see LVLH_CCSDS).

      This frame is also known as the QSW frame, both constants are equivalent.

      The axes of these frames are parallel to the axes of the LVLH_CCSDS frame:

      • XLVLH/QSW = -ZLVLH_CCSDS
      • YLVLH/QSW = XLVLH_CCSDS
      • ZLVLH/QSW = -YLVLH_CCSDS
      See Also:
    • LVLH_CCSDS

      public static final LOFType LVLH_CCSDS
      Constant for Local Vertical, Local Horizontal frame as defined by CCSDS (Z axis aligned with opposite of position, Y axis aligned with opposite of orbital momentum).

      BEWARE! Depending on the background (software used, textbook, community), different incompatible definitions for LVLH are used. This one is consistent with CCSDS standard, Wertz, and a.i. solutions' FreeFlyer. However Vallado's book and with AGI's STK use another definition (see LVLH).

      The axes of this frame are parallel to the axes of both the QSW and LVLH frames:

      • XLVLH_CCSDS/VVLH = YQSW/LVLH
      • YLVLH_CCSDS/VVLH = -ZQSW/LVLH
      • ZLVLH_CCSDS/VVLH = -XQSW/LVLH
      Since:
      11.0
      See Also:
    • LVLH_CCSDS_INERTIAL

      public static final LOFType LVLH_CCSDS_INERTIAL
      Constant for Local Vertical, Local Horizontal frame as defined by CCSDS considered inertial (Z axis aligned with opposite of position, Y axis aligned with opposite of orbital momentum).

      BEWARE! Depending on the background (software used, textbook, community), different incompatible definitions for LVLH are used. This one is consistent with CCSDS standard, Wertz, and a.i. solutions' FreeFlyer. However Vallado's book and with AGI's STK use another definition (see LVLH).

      The axes of this frame are parallel to the axes of both the QSW and LVLH frames:

      • XLVLH_CCSDS/VVLH = YQSW/LVLH
      • YLVLH_CCSDS/VVLH = -ZQSW/LVLH
      • ZLVLH_CCSDS/VVLH = -XQSW/LVLH
      Since:
      11.0
      See Also:
    • VVLH

      public static final LOFType VVLH
      Constant for Vehicle Velocity, Local Horizontal frame (Z axis aligned with opposite of position, Y axis aligned with opposite of orbital momentum).

      This is another name for LVLH_CCSDS, kept here for compatibility with STK.

      Beware that the name is misleading: in the general case (i.e. not perfectly circular), none of the axes is perfectly aligned with velocity! The preferred name for this should be LVLH_CCSDS.

      The axes of this frame are parallel to the axes of both the QSW and LVLH frames:

      • XLVLH_CCSDS/VVLH = YQSW/LVLH
      • YLVLH_CCSDS/VVLH = -ZQSW/LVLH
      • ZLVLH_CCSDS/VVLH = -XQSW/LVLH
      See Also:
    • VVLH_INERTIAL

      public static final LOFType VVLH_INERTIAL
      Constant for Vehicle Velocity, Local Horizontal frame considered inertial (Z axis aligned with opposite of position, Y axis aligned with opposite of orbital momentum).

      This is another name for LVLH_CCSDS, kept here for compatibility with STK.

      Beware that the name is misleading: in the general case (i.e. not perfectly circular), none of the axes is perfectly aligned with velocity! The preferred name for this should be LVLH_CCSDS.

      The axes of this frame are parallel to the axes of both the QSW and LVLH frames:

      • XLVLH_CCSDS/VVLH = YQSW/LVLH
      • YLVLH_CCSDS/VVLH = -ZQSW/LVLH
      • ZLVLH_CCSDS/VVLH = -XQSW/LVLH
      See Also:
    • VNC

      public static final LOFType VNC
      Constant for Velocity - Normal - Co-normal frame (X axis aligned with velocity, Y axis aligned with orbital momentum).

      The axes of this frame are parallel to the axes of the TNW and NTW frames:

      • XVNC = XTNW = YNTW
      • YVNC = ZTNW = ZNTW
      • ZVNC = -YTNW = XNTW
      See Also:
    • VNC_INERTIAL

      public static final LOFType VNC_INERTIAL
      Constant for Velocity - Normal - Co-normal frame considered inertial (X axis aligned with velocity, Y axis aligned with orbital momentum).

      The axes of this frame are parallel to the axes of the TNW and NTW frames:

      • XVNC = XTNW = YNTW
      • YVNC = ZTNW = ZNTW
      • ZVNC = -YTNW = XNTW
      See Also:
    • EQW

      public static final LOFType EQW
      Constant for Equinoctial Coordinate System (X axis aligned with ascending node, Z axis aligned with orbital momentum).
      Since:
      11.0
    • NTW

      public static final LOFType NTW
      Constant for Transverse Velocity Normal coordinate system (Y axis aligned with velocity, Z axis aligned with orbital momentum).

      The axes of this frame are parallel to the axes of the TNW and VNC frames:

      • XNTW = -YTNW = ZVNC
      • YNTW = XTNW = XVNC
      • ZNTW = ZTNW = YVNC
      Since:
      11.0
      See Also:
    • NTW_INERTIAL

      public static final LOFType NTW_INERTIAL
      Constant for Transverse Velocity Normal coordinate system considered inertial (Y axis aligned with velocity, Z axis aligned with orbital momentum).

      The axes of this frame are parallel to the axes of the TNW and VNC frames:

      • XNTW = -YTNW = ZVNC
      • YNTW = XTNW = XVNC
      • ZNTW = ZTNW = YVNC
      Since:
      11.0
      See Also:
    • ENU

      public static final LOFType ENU
      Constant for East-North-Up frame. (Z aligned with position, North Pole in the (+Y, ±Z) half-plane)
      Since:
      13.0
      See Also:
    • NED

      public static final LOFType NED
      Constant for North-East-Down frame. (Z aligned with opposite of position, North Pole in the (+X, ±Z) half-plane)
      Since:
      13.0
      See Also:
  • Method Details

    • values

      public static LOFType[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static LOFType valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getName

      public String getName()
      Get name of the local orbital frame.
      Specified by:
      getName in interface LOF
      Returns:
      name of the local orbital frame
    • rotationFromLOF

      public Rotation rotationFromLOF(LOFType fromLOF, PVCoordinates pv)
      Get the rotation from input local orbital frame to the instance.

      This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well, the full LOF.transformFromLOF(LOF, AbsoluteDate, PVCoordinates) method must be called and the complete rotation transform must be extracted from it.

      Parameters:
      fromLOF - input local orbital frame
      pv - position-velocity of the spacecraft in some inertial frame
      Returns:
      rotation from input local orbital frame to the instance
    • rotationFromLOF

      public <T extends CalculusFieldElement<T>> FieldRotation<T> rotationFromLOF(Field<T> field, LOFType fromLOF, FieldPVCoordinates<T> pv)
      Get the rotation from input local orbital frame to the instance.

      This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well, the full LOF.transformFromLOF(LOF, FieldAbsoluteDate, FieldPVCoordinates) method must be called and the complete rotation transform must be extracted from it.

      Type Parameters:
      T - type of the field elements
      Parameters:
      field - field to which the elements belong
      fromLOF - input local orbital frame
      pv - position-velocity of the spacecraft in some inertial frame
      Returns:
      rotation from input local orbital frame to the instance
    • rotationFromInertial

      public Rotation rotationFromInertial(AbsoluteDate date, PVCoordinates pv)
      Get the rotation from inertial frame to local orbital frame.

      This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well, the full transformFromInertial method must be called and the complete rotation transform must be extracted from it.

      It is unnecessary to use this method when dealing with LOFType, use rotationFromInertial(PVCoordinates) instead.
      Specified by:
      rotationFromInertial in interface LOF
      Parameters:
      date - date of the rotation
      pv - position-velocity of the spacecraft in some inertial frame
      Returns:
      rotation from inertial frame to local orbital frame
    • rotationFromInertial

      public abstract Rotation rotationFromInertial(PVCoordinates pv)
      Get the rotation from inertial frame to local orbital frame.

      This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well, the full LOF.transformFromInertial(AbsoluteDate, PVCoordinates) method must be called and the complete rotation transform must be extracted from it.

      Parameters:
      pv - position-velocity of the spacecraft in some inertial frame
      Returns:
      rotation from inertial frame to local orbital frame
    • rotationToInertial

      public Rotation rotationToInertial(PVCoordinates pv)
      Get the rotation from local orbital frame to inertial frame.

      This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well, the full LOF.transformToInertial(AbsoluteDate, PVCoordinates) method must be called and the complete rotation transform must be extracted from it.

      Parameters:
      pv - position-velocity of the spacecraft in some inertial frame
      Returns:
      rotation from local orbital frame to inertial frame
    • rotationFromInertial

      public <T extends CalculusFieldElement<T>> FieldRotation<T> rotationFromInertial(Field<T> field, FieldAbsoluteDate<T> date, FieldPVCoordinates<T> pv)
      Get the rotation from inertial frame to local orbital frame.

      This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well, the full LOF.transformFromInertial(FieldAbsoluteDate, FieldPVCoordinates) method must be called and the complete rotation transform must be extracted from it.

      It is unnecessary to use this method when dealing with LOFType, use rotationFromInertial(Field, FieldPVCoordinates) instead.
      Specified by:
      rotationFromInertial in interface LOF
      Type Parameters:
      T - type of the field elements
      Parameters:
      field - field to which the elements belong
      date - date of the rotation
      pv - position-velocity of the spacecraft in some inertial frame
      Returns:
      rotation from inertial frame to local orbital frame
    • rotationFromInertial

      public abstract <T extends CalculusFieldElement<T>> FieldRotation<T> rotationFromInertial(Field<T> field, FieldPVCoordinates<T> pv)
      Get the rotation from inertial frame to local orbital frame.

      This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well, the full LOF.transformFromInertial(FieldAbsoluteDate, FieldPVCoordinates) method must be called and the complete rotation transform must be extracted from it.

      Type Parameters:
      T - type of the field elements
      Parameters:
      field - field to which the elements belong
      pv - position-velocity of the spacecraft in some inertial frame
      Returns:
      rotation from inertial frame to local orbital frame
    • rotationToInertial

      public <T extends CalculusFieldElement<T>> FieldRotation<T> rotationToInertial(Field<T> field, FieldPVCoordinates<T> pv)
      Get the rotation from local orbital frame to inertial frame.

      This rotation does not include any time derivatives. If first time derivatives (i.e. rotation rate) is needed as well, the full LOF.transformToInertial(FieldAbsoluteDate, FieldPVCoordinates) method must be called and the complete rotation transform must be extracted from it.

      Type Parameters:
      T - type of the field elements
      Parameters:
      field - field to which the elements belong
      pv - position-velocity of the spacecraft in some inertial frame
      Returns:
      rotation from local orbital frame to inertial frame
    • toOrbitRelativeFrame

      public abstract OrbitRelativeFrame toOrbitRelativeFrame()
      Convert current local orbital frame to CCSDS equivalent orbit relative frame when possible, null otherwise.
      Returns:
      CCSDS equivalent orbit relative frame when possible, null otherwise
      See Also: