irfpy.juice.attitude0

Draft attitude of JUICE, based on the information available in Mar 2016.

Based on the Airbus document, JUI-ADST-INST-TN-000122_01.

The attitude is defined from several information (vectors) at a certain time. Usually the vectors are obtained using SPICE. For use case, see the folder 160222_jdc.

The attitude convert between the spacecraft frame (SC) and a selected refrence frame (REF).

  • convert_to_nsc: A given vector (REF-frame) is converted to SC-frame vector.

  • convert_to_ref: A given vector (SC-frame) is converted to REF-frame vector.

digraph class_relation { JuiceNominal -> JuiceJupiterPointing; JuiceNominal -> JuiceEarthPointing; JuiceNominal -> JuiceFarFlyby -> JuiceMoonYaw; JuiceNominal -> JuiceNearFlyby -> JuiceMoonNoYaw; }
class irfpy.juice.attitude0.JuiceNominal[source]

Bases: object

JUICE of nominal pointing. Based on JUI-ADST-INST-TN-000122_01.

JUICE spacecraft frame (SC) is defined by the nominal approach.

  • +Z axis points some target (nadir deck): possible target is Sun, Jupiter, and Ganymede.

  • +-y axis along the normal of ecliptic plane.

  • -x should be illuminated by the sun.

set_posvel(pos, vel)[source]
set_configuration(pos, ecliptic_normal, sundir, vel=None)[source]

Set the configuration.

Parameters
  • pos – Position relative to the pointing object. -pos is the nadir direction, namely, -z_SC.

  • vel – Velocity, you may use None if you do not know.

  • ecliptic_normal – Normal vector of the ecliptic plane. It will be aligned to +y_SC or -y_SC axis.

  • sundir – Sun direction in order to define the y_SC alignment.

The parameters (vectors) above can be obtained usually using SPICE. No automated way has been implemented. See scenario1.py for the use case.

yaxis_swap()[source]

Y axis will be swapped to avoid +X illumination.

This method will be used if one wants to swap the y-axis manually, if one realizes +x is illuminated to the Sun.

convert_to_ref(nscvecs)[source]
convert_to_nsc(refvecs)[source]
get_matrix_nsc2ref()[source]
get_matrix_ref2nsc()[source]
irfpy.juice.attitude0.JuiceJupiterPointing

JUICE during jupiter pointing attitude. Alias to JuiceNominal.

alias of irfpy.juice.attitude0.JuiceNominal

irfpy.juice.attitude0.JuiceEarthPointing

JUICE during earth pointing attitude. Alias to JuiceNominal.

alias of irfpy.juice.attitude0.JuiceNominal

irfpy.juice.attitude0.get_juice_jupiter_pointing(juice_ref_jupiter, ecliptic_normal_vector_ref, sun_ref_juice, vel=None)[source]

JUICE’s Jupiter pointing attitude.

Parameters
  • juice_ref_jupiter – Position relative to the pointing object presented in REF frame. -pos is the nadir direction, namely, -z_SC.

  • ecliptic_normal_vector_ref – Normal vector of the ecliptic plane in REF frame. It will be aligned to +y_SC or -y_SC axis.

  • sun_ref_juice – Sun direction in REF frame in order to define the y_SC alignment.

  • vel – Velocity of spacecraft relative to the object in REF frame, you may use None if you do not know.

Returns

JuiceJupiterPointing object that support conversion between SC and REF.

irfpy.juice.attitude0.get_juice_earth_pointing(juice_ref_earth, ecliptic_normal_vector_ref, sun_ref_juice, vel=None)[source]

JUICE’s Earth pointing attitude.

Parameters
  • juice_ref_earth – Position relative to the pointing object presented in REF frame. -pos is the nadir direction, namely, -z_SC.

  • ecliptic_normal_vector_ref – Normal vector of the ecliptic plane in REF frame. It will be aligned to +y_SC or -y_SC axis.

  • sun_ref_juice – Sun direction in REF frame in order to define the y_SC alignment.

  • vel – Velocity of spacecraft relative to the object in REF frame, you may use None if you do not know.

Returns

JuiceEarthPointing object that support conversion between SC and REF.

class irfpy.juice.attitude0.JuiceFarFlyby[source]

Bases: irfpy.juice.attitude0.JuiceNominal

Flyby attitude for -12h to -1h and +1h to +12h.

  • Nadir pointing (+Z axis to the Moon)

  • Y axis perpendicular to Sun direction.

Parameters
  • juice_pos_from_cabody – (3,) array in km seen from the CA body to the spacecraft.

  • sundir – (3,) array in km for the Sun direction from S/C.

Returns

JuiceNominal object with attitude configuration ready.

set_configuration(pos, sundir, vel=None)[source]

Flyby configuration definition.

Parameters
  • pos – Position relative to the pointing object. -pos is the nadir direction, namely, -z_SC.

  • vel – Velocity, you may use None if you do not know.

  • sundir – Sun direction in order to define the y_SC alignment.

The parameters (vectors) above can be obtained usually using SPICE. No automated way has been implemented. See scenario4.py for the use case.

irfpy.juice.attitude0.get_juice_farflyby(juice_ref_moon, sun_ref_juice, vel=None)[source]

JUICE’s far flyby attitude used for pm 12 hours except for pm 1 hour.

Parameters
  • juice_ref_moon – Position relative to the moon for flyby. -pos is the nadir direction, namely, -z_SC.

  • sun_ref_moon – Sun direction in REF-frame; used to define the y_SC alignment.

  • vel – Velocity, you may use None if you do not know.

Returns

JuiceFarFlyby object that support conversion between SC and REF.

irfpy.juice.attitude0.JuiceMoonYaw

Juice attitude during the yaw-steering.

alias of irfpy.juice.attitude0.JuiceFarFlyby

irfpy.juice.attitude0.get_juice_ganymede_yaw_steering(juice_ref_ganymede, sun_ref_juice, vel=None)[source]

JUICE’s far flyby attitude used for pm 12 hours except for pm 1 hour.

Parameters
  • juice_ref_moon – Position relative to the moon for flyby. -pos is the nadir direction, namely, -z_SC.

  • sun_ref_moon – Sun direction in REF-frame; used to define the y_SC alignment.

  • vel – Velocity, you may use None if you do not know.

Returns

JuiceFarFlyby object that support conversion between SC and REF.

class irfpy.juice.attitude0.JuiceNearFlyby[source]

Bases: irfpy.juice.attitude0.JuiceNominal

Flyby attitude for -1h and +1h.

  • Nadir pointing (+Z axis to Moon)

  • Y axis is aligned with the projection of the velocity vector in the plane orthogonal to Z.

\[\]

ec{Y} = ec{V} - ec{Z}cdot ec{V} ec{Z}

return

set_configuration(pos, vel, sundir)[source]

Position and velocity in a reference frame to form the axes.

Parameters
  • pos – Position of the JUICE with respeictive to the moon in the reference system.

  • vel – Velocity of the JUICE in the reference system

  • sundir – Sundirection (to be used for y-flip condition evaluation)

irfpy.juice.attitude0.get_juice_nearflyby(juice_ref_moon, v_juice_ref_moon, sun_ref_juice)[source]

JUICE’s near flyby attitude. Used pm 1 hour relative to CA.

Parameters
  • juice_ref_moon – Position relative to the moon for flyby. -pos is the nadir direction, namely, -z_SC.

  • v_juice_ref_moon – Velocity of JUICE relative to the flybying moon. You need it to calculate x and y.

  • sun_ref_moon – Sun direction in REF-frame; used to define the y_SC alignment.

Returns

JuiceFarFlyby object that support conversion between SC and REF.

irfpy.juice.attitude0.JuiceMoonNoYaw

Moon orbiting attitude for no yaw steering.

alias of irfpy.juice.attitude0.JuiceNearFlyby

irfpy.juice.attitude0.get_juice_ganymede_no_yaw_steering(juice_ref_ganymede, v_juice_ref_ganymede, sun_ref_juice)[source]

JUICE’s Ganymede orbiting (both eliptic / orbiting) attitude.

Parameters
  • juice_ref_ganymede – Position relative to the moon for flyby. -pos is the nadir direction, namely, -z_SC.

  • v_juice_ref_ganymede – Velocity of JUICE relative to the flybying moon. You need it to calculate x and y.

  • sun_ref_moon – Sun direction in REF-frame; used to define the y_SC alignment.

Returns

JuiceFarFlyby object that support conversion between SC and REF.

irfpy.juice.attitude0.axis_configuration_xy(sc, axis=None)[source]

Create a plot of the configuration

Parameters
  • sc – Spacecraft aattitude class, irfpy.pep.pep_attitude.NadirLookingSc for example.

  • axis – Axis class, if you have already. If None is given, a new figure and axis can be produced.

Returns

Axis class.

irfpy.juice.attitude0.axis_configuration_xz(sc, axis=None)[source]
irfpy.juice.attitude0.axis_configuration_yz(sc, axis=None)[source]
irfpy.juice.attitude0.axis_configuration_3d(sc, rbody=1)[source]

Create subplot (Axis) displaying the configurations.