JupiterMoons¶
Class to model JupiterMoons.
-
class
pymeeus.JupiterMoons.
JupiterMoons
[source]¶ Class JupiterMoons models the four galilean satellites of Jupiter. With: 1: Io 2: Europa 3: Ganymede 4: Callisto The algorithm used can be found in chapter 44 (high accuracy method) of Meeus’ book Astronomic Algorithms
-
__weakref__
¶ list of weak references to the object (if defined)
-
static
apparent_rectangular_coordinates
(epoch, X, Y, Z, OMEGA, psi, i, lambda_0, beta_0, D=0, isFictional=False)[source]¶ This method computes the apparent rectangular coordinates of a Jupiter satellite for given coordinates.
Parameters: - epoch (
Epoch
) – Epoch to compute satellite position, as an Epoch object - X (float) – X-coordinate of the satellite in Jupiter radii
- Y (float) – Y-coordinate of the satellite in Jupiter radii
- Z (float) – Z-coordinate of the satellite in Jupiter radii
- OMEGA (float) – longitude of the node of Jupiter
- psi (float) – longitude of the node of Jupiter
- i (float) – inclination on the plane of the ecliptic
- beta_0 (float) – Jupiter’s geocentric latitude
- lambda_0 (float) – Jupiter’s geocentric longitude
- D (float) – parameter calculated by the fifth fictional satellite (fictional satellite has to be calculated first, in order to calculate the coordinates of the remaining “true” satellites)
- isFictional (bool) – Whether or not the satellite is the fictional satellite No. 5
Returns: A tuple with the apparent rectangular coordinates of the satellite or parameter D if isFictional=True
Return type: Raises: TypeError if input values are wrong type
>>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> psi_corrected = 317.1058009213959 >>> i_ecliptic_jupiter = 1.3036541530886598 >>> lambda_0 = -2.9355662143229146 >>> beta_0 = 0.021667777174910842 >>> OMEGA_ascending_node_jupiter= 100.39249942976576 >>> X_1 = 5.60361395790844 >>> Y_1 = 1.9398758261880644 >>> Z_1 = 0.00449258104769796 >>> X_5 = 0 >>> Y_5 = 0 >>> Z_5 = 1 >>> d = JupiterMoons.apparent_rectangular_coordinates( utc_1992_12_16_00_00_00, X_5, Y_5, Z_5, OMEGA_ascending_node_jupiter, psi_corrected, i_ecliptic_jupiter, lambda_0, beta_0, isFictional=True) >>> print(round(d, 10)) -0.0320562469 >>> io = JupiterMoons.apparent_rectangular_coordinates( utc_1992_12_16_00_00_00, X_1, Y_1, Z_1, OMEGA_ascending_node_jupiter, psi_corrected, i_ecliptic_jupiter, lambda_0, beta_0, d) >>> print(io) (-3.4489935969836503, 0.21361563816963675, -4.818966623735296)
- epoch (
-
static
calculate_delta
(epoch)[source]¶ This method calculates the distance between Earth and Jupiter (DELTA) for a given epoch by iteration.
Parameters: epoch ( Epoch
) – Epoch the distance should be calculated for.Returns: Distance Earth-Jupiter in AU and light-time delay from Earth-Jupiter, together with Coordinates of Jupiter Return type: tuple Raises: TypeError if input values are wrong type >>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> delta, tau, l, b, r = JupiterMoons.calculate_delta( utc_1992_12_16_00_00_00) >>> print(round(delta, 10)) 5.6611211815 >>> print(round(tau, 10)) 0.032695909
-
static
check_coordinates
(X, Y)[source]¶ This method checks if the given coordinates correspond with a satellite phenomena. It returns if the satellite with the given coordinates is hidden behind Jupiter or directly in front.
Parameters: Returns: Perspective distance to Jupiter’s center in Jupiter’s radii
Return type: Calculation of the perspective distance of the planet Io to the center of Jupiter for December 16 at 0h UTC as seen from the Earth
>>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> result_matrix = JupiterMoons.rectangular_positions_jovian_equatorial( utc_1992_12_16_00_00_00, solar=False) >>> io_radius_to_center_of_jupiter_earth = JupiterMoons.check_coordinates(result_matrix[0][0], result_matrix[ 0][1]) >>> print(round(io_radius_to_center_of_jupiter_earth, 10)) 3.4577572706
-
static
check_eclipse
(X_0=0, Y_0=0, Z_0=0, epoch=None, i_sat=None)[source]¶ This method checks if the given coordinates or Epoch correspond with a satellite being in eclipse.
Parameters: - X_0 (float) – X-coordinate of the satellite in Jupiter’s radii observed from the sun
- Y_0 (float) – Y-coordinate of the satellite in Jupiter’s radii observed from the sun
- Z_0 (float) – Z-coordinate of the satellite in Jupiter’s radii observed from the sun
- epoch (
Epoch
) – Epoch that should be checked - i_sat (int) – Index of the satellite (only for given Epoch)
Returns: perspective distance to center of Jupiter in Jupiter radii as seen from the Sun (value of perspective distance is negative when the satellite is closer to the Sun than Jupiter, otherwise positive)
Return type: Raises: TypeError if input values are wrong type
Calculation of the Perspective distance of the planet Io squareroot(X_0^2 + Y_0^2) to the center of Jupiter for December 16 at 0h UTC as seen from the Sun
>>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> result_matrix = JupiterMoons.rectangular_positions_jovian_equatorial( utc_1992_12_16_00_00_00, solar=True) >>> io_radius_to_center_of_jupiter_sunview = JupiterMoons.check_eclipse(result_matrix[0][0], result_matrix[0][1]) >>> print(round(io_radius_to_center_of_jupiter_sunview, 10)) -2.5533012642
-
static
check_occultation
(X=0, Y=0, Z=0, epoch=None, i_sat=None)[source]¶ This method checks if the given coordinates or Epoch correspond with a satellite being in occultation.
Parameters: Returns: Perspective distance to center of Jupiter in Jupiter radii as seen from the Earth (value of perspective distance is negative when the satellite is closer to the Earth than Jupiter, otherwise positive)
Return type: Raises: TypeError if input values are wrong type
Calculation of the perspective distance of the planet Io squareroot(X^2 + Y^2) to the center of Jupiter for December 16 at 0h UTC as seen from the Earth
>>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> result_matrix = JupiterMoons.rectangular_positions_jovian_equatorial( utc_1992_12_16_00_00_00, solar=False) >>> io_distance_to_center_of_jupiter_earthview = JupiterMoons.check_occultation(result_matrix[0][0], result_matrix[ 0][1]) >>> print(round(io_distance_to_center_of_jupiter_earthview, 10)) -3.4577572706
-
static
check_phenomena
(epoch, check_all=True, i_sat=0)[source]¶ This method returns the perspective distance to any phenomena of all satellites for the given epoch.
Parameters: Returns: Distance to the satellite being ecclipsed, occulted in penumbra
Return type: Raises: TypeError if input values are wrong type
>>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> result_matrix = JupiterMoons.check_phenomena( utc_1992_12_16_00_00_00) >>> print(result_matrix[0]) [-3.457757270630766, -2.553301264153796, 0.0] >>> print(result_matrix[1]) [-7.44770945299594, -8.33419997337025, 0.0] >>> print(result_matrix[2]) [-1.3572840767173413, -3.817302564886177, 0.0] >>> print(result_matrix[3]) [-7.157430454898491, -11.373611474420906, 0.0]
>>> io_ecc_start_2021_02_12_14_19_14 = Epoch(2021, 2, 12.5966898148148) >>> result_matrix = JupiterMoons.check_phenomena( io_ecc_start_2021_02_12_14_19_14) >>> print([round(result_matrix[0][0], 10), round(result_matrix[0][ 1], 10), round(result_matrix[0][2], 10)]) [1.192605868, 0.8560277162, 0.0] >>> print([round(result_matrix[1][0], 10), round(result_matrix[1][ 1], 10), round(result_matrix[1][2], 10)]) [-8.7397202369, -8.8930940921, 0.0] >>> print([round(result_matrix[2][0], 10), round(result_matrix[2][ 1], 10), round(result_matrix[2][2], 10)]) [14.0691219925, 13.8323491768, 0.0] >>> print([round(result_matrix[3][0], 10), round(result_matrix[3][ 1], 10), round(result_matrix[3][2], 10)]) [-2.9341209156, -3.9904598153, 0.0]
-
static
correct_rectangular_positions
(R, i_sat, DELTA, X_coordinate, Y_coordinate=0, Z_coordinate=0)[source]¶ This method corrects the given rectangular coordinates of a Jupiter satellite in order to obtain higher accuracy by considering differential light-time and the perspective effect.
Parameters: - R (float) – Radius vector of the satellite
- i_sat (int) – Number of the satellite
- DELTA (float) – Distance Observer-Jupiter in AU
- X_coordinate (float, tuple, list) – Uncorrected X-coordinate of the satellite in Jupiter’s radii or tuple for all coordinates
- Y_coordinate (float) – Uncorrected Y-coordinate of the satellite in Jupiter’s radii
- Z_coordinate (float) – Uncorrected Z-coordinate of the satellite in Jupiter’s radii
Returns: A tuple with the corrected rectangular coordinates (X, Y, Z) of the satellite in Jupiter’s radii
Return type: Raises: TypeError if input values are wrong type
Calculate corrected rectangular Coordinates X, Y and Z in Jupiter’s radii for Io (1)
>>> R = 5.929892730360271 >>> i_sat = 1 >>> DELTA = 5.6611211815432645 >>> X_coordinate = -3.4489935969836503 >>> Y_coordinate = 0.21361563816963675 >>> Z_coordinate = -4.818966623735296 >>> io = JupiterMoons.correct_rectangular_positions(R, i_sat, DELTA, X_coordinate, Y_coordinate, Z_coordinate) >>> print(io) (-3.450168811390241, 0.21370246960509387, -4.818966623735296)
-
static
is_phenomena
(epoch)[source]¶ This method checks if the given coordinates correspond with any satellite phenomena. It returns the type of phenomena for all satellites.
Parameters: epoch (:py:class:'Epoch') – Epoch the calculations should be made for Returns: Result matrix for the four Galilean satellites Row 0: Io Column 0: Occultation Row 1: Europa Column 1: Eclipse Row 2: Ganymede Column 2: No use Row 3: Callisto Return type: tuple Raises: TypeError if input values are wrong type Calculation of result matrix for December 16 at 0h UTC
>>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> result_matrix = JupiterMoons.is_phenomena(utc_1992_12_16_00_00_00) >>> print(result_matrix[0]) [False, False, False] >>> print(result_matrix[1]) [False, False, False] >>> print(result_matrix[2]) [False, False, False] >>> print(result_matrix[3]) [False, False, False] >>> io_ecc_start_2021_02_12_14_19_14 = Epoch(2021, 2, 12.5966898148148) >>> result_matrix = JupiterMoons.is_phenomena( io_ecc_start_2021_02_12_14_19_14) >>> print(result_matrix[0]) [False, True, False] >>> print(result_matrix[1]) [False, False, False] >>> print(result_matrix[2]) [False, False, False] >>> print(result_matrix[3]) [False, False, False]
-
static
jupiter_system_angles
(epoch)[source]¶ This method computes the ascending node of Jupiter as well as the node of the equator of Jupiter on the ecliptic (psi).
Parameters: epoch ( Epoch
) – Epoch to compute satellites’ positions, as an Epoch objectReturns: Two float values with the ascending node of Jupiter and psi Return type: (float, float) >>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> psi_corrected, OMEGA_ascending_node_jupiter = JupiterMoons.jupiter_system_angles(utc_1992_12_16_00_00_00) >>> print(round(psi_corrected, 9)) 317.105800921 >>> print(round(OMEGA_ascending_node_jupiter, 9)) 100.39249943
-
static
rectangular_positions_jovian_equatorial
(epoch, tofk5=True, solar=False, do_correction=True)[source]¶ This method computes the rectangular geocentric position of Jupiter’s satellites for a given epoch, using the E5-theory.
Parameters: - epoch (
Epoch
) – Epoch to compute satellites’ positions, as an Epoch object - tofk5 (bool) – Whether or not the small correction to convert to the FK5 system will be applied or not
- solar (bool) – Whether the satellites’ positions are observed from the Earth (False) or the Sun (True)
- do_correction (bool) – Whether the satellites’ positions is corrected for the effect of different light-time and perspective effect or not
Returns: Four tuple with the rectangular X, Y and Z coordinates in Jupiter radii (float), where Z is positive if the satellite is more distant than Jupiter.
Return type: Raises: TypeError if input values are of wrong type.
>>> utc_1992_12_16_00_00_00 = Epoch(1992, 12, 16, utc=True) >>> io, europa, ganymede, callisto = JupiterMoons.rectangular_positions_jovian_equatorial( utc_1992_12_16_00_00_00) >>> print(io) (-3.450168811390241, 0.21370246960509387, -4.818966623735296) >>> print(europa) (7.441869121153001, 0.27524463479625677, -5.747104399729193) >>> print(ganymede) (1.201111684800708, 0.5899903274317162, -14.940581367576527) >>> print(callisto) (7.072022641384802, 1.0289678450543338, -25.224420329457175)
- epoch (
-