I normally post on worldbuilding, but this question is merely about facts of a planets orbit and spin. I am trying to figure out how time periods work on Mercury to possibly make a worldbuilding guide for the planet. I recently heard on an educational video that the eccentricity of Mercuries orbit can cause the sun to temporarily become still on mercury, and then move in the opposite direction, then become still again, and move along it's normal course in the sky. The possible effects of this are that certain regions of mercury could experience a "season" where the son only goes partway through the sky before turning around and setting creating something of a cycle of "short days" and "long days". I imagine because of mercury's mathematically synchronized orbit, these short days can only be experience on small bands of the planet, I would imagine there is only one circular band going around the world along a line of longitude that is like this.

What I am trying to understand is how different parts of mercury experience the day and not simply the length of mercuries day in absolute terms. I am wondering how a hypothetical person that would be following the "evening" and "morning" sections of mercury would experience the backwards movement of the sun over the course of the mercurian year. I am wondering if this backwards movement of the sun causes one side of the planet to experience less daylight than the other side, but I will leave the practical effects of this on colonization for a worldbuilding SE.

Simply put: I am trying to understand how different regions of mercury experience the day/night cycle and the way the day/night cycle travels over the planet. This is ultimately a question of what mercuries natural time zones are and the length (and irregularity) of the day-night cycle on the different parts of the planet.


2 Answers 2


Partial answer about the retrograde motion only:

Yes, the Sun has yearly retrograde motion as seen from Mercury

I've written a simple script to generate the orbital motion of Mercury based on its eccentricity. I've used reduced units with $GM = a = 1$ and period $T = 2 \pi$.

Mercury's rotational period is 2/3 of its orbital period.

I've plotted the rotational angle of mercury minus the angle of the Sun as seen from Mercury's position. To address retrograde motion, it's not necessary to consider from where on Mercury you are looking,

There are tiny dips below zero every year.

retrograde motion of the Sun seen from Mercury

retrograde motion of the Sun seen from Mercury

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint

def deriv(X, t):
    x, v = X.reshape(2, -1)
    acc = - x * ((x**2).sum())**-1.5
    return np.hstack((v, acc))

halfpi, pi, twopi, fourpi, sixpi = [f*np.pi for f in (0.5, 1, 2, 4, 6)]
to_degs, to_rads = 180/pi, pi/180

# Mercury
# https://space.stackexchange.com/questions/43213/what-is-the-analytical-closed-form-solution-of-the-two-body-problem-to-verify-it/43237#43237
# https://solarsystem.nasa.gov/planets/mercury/by-the-numbers/

e = 0.20563593
a = 1
peri = (1 - e) * a
v_peri = np.sqrt(2/peri - 1/a)

X0 = np.array([peri, 0, 0, v_peri])
times = np.linspace(0, sixpi, 1001)
dt_years = (times[1] - times[0]) / twopi

answer, info = ODEint(deriv, X0, times, full_output=True)
xy = answer.T[:2]
x, y = xy
r = np.sqrt((xy**2).sum(axis=0))

theta_rot = np.mod((3/2) * times, twopi)
sun = np.zeros(2)[:, None] - xy
theta_sun = np.arctan2(sun[1], sun[0])

if True:
    plt.subplot(2, 1, 1)
    angle = theta_rot - theta_sun
    dangle = np.mod(angle[1:] - angle[:-1]+halfpi, twopi)-halfpi
    dangle_dt = dangle / dt_years
    angle = np.mod(angle+halfpi, twopi)-halfpi
    plt.plot(times/twopi, angle)
    plt.ylabel('angle (rad)')
    plt.subplot(2, 1, 2)
    plt.plot(times[1:]/twopi, dangle_dt)
    plt.plot(times[1:]/twopi, np.zeros_like(dangle_dt), '-k', lw=0.5)
    plt.ylabel('dangle/dt (rad/year)')

if True:
    plt.subplot(3, 1, 1)
    plt.plot(x, y)
    plt.plot(x[:1], y[:1], 'ok', ms=2)
    plt.plot([0], [0], 'oy', ms=8)
    plt.subplot(3, 1, 2)
    plt.plot(times/twopi, x)
    plt.plot(times/twopi, y)
    plt.plot(times/twopi, r, '-k')
    plt.subplot(3, 1, 3)
    plt.plot(times/twopi, theta_rot)
    plt.plot(times/twopi, theta_sun)

Interesting question. The terms day and year become funny when you move to Mercury: Mercury is tidally locked to the Sun and has a 2:3 spin-orbit-resonance. That means that a complete day-night cycle takes two Mercury year, thus one year / orbital period around the Sun you have completely day, the other completely night).

Du to this spin-orbit resonance, you do not have a favoured region in terms of longitude. Every longitude experiences the same variation over the course of ~176 days (2 Mercury years). If you had an atmosphere or fixed solar panels, longitude matters: During each Mercury day the Sun will appear to make some apparent backward motion at some time; where in the sky this apparent backward motion appears, whether during the morning hours, during noon time or evening hours, is a matter of longitude you place yourself on.

I strongly suggest to grab a copy of Stellarium, place yourself on Mercury and observe the Sun on your own to get a feeling how this "wiggle" of the Sun on its apparent path through the Mercury sky looks like.

  • 1
    $\begingroup$ As far as my research can tell, it seems to me that your answer is wrong. Firstly, since mercury has one day-night cycle per year, and since the sun only reverses course at perihelion, there are two bands that can experience multiple sunrises and sunsets per regular day-night cycle. The bands would alternate as the evening band and morning band every mercury year, but the same geographic locations would experience these odd days at the same time. (you may have meant "no favored region based on latitude" and put down the wrong word.) $\endgroup$
    – skout
    Feb 13, 2021 at 18:46
  • 2
    $\begingroup$ @skout Mercury has 1 day/night cycle per 2 Mercury years. He's correct. $\endgroup$
    – userLTK
    Feb 14, 2021 at 4:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .