Title: Configuration of Jupiter's Four Largest Satellites
Version: 2.2.0
Description: Calculate, plot and animate the configuration of Jupiter's four largest satellites (known as Galilean satellites) for a given date and time (UTC - Coordinated Universal Time). The galsat() function returns numerical values of the satellites’ positions. x – the apparent rectangular coordinate of the satellite with respect to the center of Jupiter’s disk in the equatorial plane in the units of Jupiter’s equatorial radius; X is positive toward the west, y – the apparent rectangular coordinate of the satellite with respect to the center of Jupiter’s disk from the equatorial plane in the units of Jupiter’s equatorial radius; Y is positive toward the north. For more details see Meeus (1988, ISBN 0-943396-22-0) "Astronomical Formulae for Calculators". The galsat_animate() function creates an animation of the Galilean satellites' positions. You provide the starting time, duration, the time step between frames, and the pause between frames. The function delta_t() returns the value of delta-T in units of seconds.
License: MIT + file LICENSE
Encoding: UTF-8
RoxygenNote: 7.3.3
Imports: graphics, png
URL: https://lechjaszowski.github.io/galilean_satellites/
NeedsCompilation: no
Packaged: 2025-09-27 07:42:03 UTC; lechj
Author: Lech Jaszowski ORCID iD [aut, cre, cph]
Maintainer: Lech Jaszowski <lech.jaszowski@interia.pl>
Repository: CRAN
Date/Publication: 2025-09-27 08:00:02 UTC

Return the value of delta-T in units of seconds

Description

Converting the Coordinated Universal Time (UTC) to the Ephemeris Time (ET) is complex. It is due to the unpredictable nature of the Earth's rotation, which is the basis for UTC, whereas ET was based on the more uniform orbital motion of the Earth around the Sun. The key to converting between these time scales lies in a value known as delta-T, which is the difference between a uniform time scale and one based on Earth's rotation. The conversion is handled as: ET = UTC + deltaT However, delta-T is not a constant value and cannot be calculated using a simple formula. The delta-T values are derived from the historical records and from direct observations. A series of polynomial expressions have been created to simplify the evaluation of delta-T. The calculated values are valid for the years from -1999 to +3000.

Usage

delta_t(year, month)

Arguments

year

Type in the year (integer between -1999 and 3000).

month

Type in the month (integer between 1 and 12).

Details

More details: Morrison, L. and Stephenson, F. R., "Historical Values of the Earth's Clock Error delta-T and the Calculation of Eclipses", J. Hist. Astron., Vol. 35 Part 3, August 2004, No. 120, pp 327-336 (2004) Stephenson F.R., Historical Eclipses and Earth's Rotation, Cambridge Univ. Press, 1997

Value

numeric: vector of numeric values

Examples

delta_t(1999, 10)
delta_t(c(-200, 1610, 2030), c(1, 10, 12))

Calculate & draw the positions of the Galilean satellites

Description

galsat() is used to determine the positions of the four greatest satellites of Jupiter (called Galilean satellites). Positions are shown on the plot for given UTC time (Coordinated Universal Time between year 0 and 3000) with respect to the planet, as seen from the Earth.

The galsat() function returns numerical values of the satellites' positions:

x - the apparent rectangular coordinate of the satellite with respect to the center of Jupiter's disk in the equatorial plane in the units of Jupiter's equatorial radius; X is positive toward the west

y - the apparent rectangular coordinate of the satellite with respect to the center of Jupiter's disk from the equatorial plane in the units of Jupiter's equatorial radius; Y is positive toward the north

u_corrected - the corrected angular position of the satellite in degrees, used to determine visibility conditions (whether a moon can be seen against Jupiter's disk or is hidden behind it)

Usage

galsat(year, month, day, hour, minute)

Arguments

year

Type in the year (integer number from 0 to 3000).

month

Type in the month (integer number from 1 to 12).

day

Type in the day (integer number from 1 to 31).

hour

Type in the hour (integer number from 0 to 23).

minute

Type in the minute (integer number from 0 to 59).

Details

The function is based on algorithms in the book: Astronomical Formulae for Calculators (4th edition), Jean Meeus, Willmann-Bell Inc., 1988

Value

data.frame: 4 observations of 4 variables: $ moon : chr "Io" "Europa" "Ganymede" "Callisto" $ x : num $ y : num $ u_corrected: num Four rows - each row has the position (x,y) and corrected angular position (u_corrected) of one moon. Additionally, the positions of the moons are shown graphically.

Examples

galsat(2025, 10, 13, 23, 30)
# Also try these interesting configuration moments:
galsat(2021, 8, 15, 15, 48)
galsat(2032, 1, 5, 6, 44)
galsat(2033, 7, 28, 4, 50)
galsat(2039, 7, 31, 18, 55)

Animate the motion of Jupiter's Galilean satellites

Description

galsat_animate() creates an animation showing the orbital motion of Jupiter's four largest satellites over time. The function starts from a user-specified time and advances in regular intervals to show how the moons move around Jupiter.

Usage

galsat_animate(
  year,
  month,
  day,
  hour,
  minute,
  duration_hours = 24,
  time_step_minutes = 5,
  pause_seconds = 0.05
)

Arguments

year

Type in the starting year (integer number from 0 to 3000).

month

Type in the starting month (integer number from 1 to 12).

day

Type in the starting day (integer number from 1 to 31).

hour

Type in the starting hour (integer number from 0 to 23).

minute

Type in the starting minute (integer number from 0 to 59).

duration_hours

Duration of the animation in hours (default 24).

time_step_minutes

Time step between frames in minutes (default 5).

pause_seconds

Pause between frames in seconds (default 0.05).

Details

The animation uses the galsat() function internally to calculate satellite positions at each time step. Time is advanced by the specified interval (default 5 minutes) for each frame of the animation.

Value

Creates an animated plot showing the orbital motion of Jupiter's moons. Returns invisibly the final positions data frame.

Examples

# Animate 2 hours with 10-minutes steps
galsat_animate(2025, 10, 6, 21, 50, duration_hours = 2, time_step_minutes = 10)