A simple example showing the effects of light travel time delay on an edge-on planet in an orbit similar to that of Earth.
%matplotlib inline
%run notebook_setup.py
import matplotlib.pyplot as plt
import numpy as np
import starry
from astropy import units as u
starry.config.lazy = True
starry.config.quiet = True
star = starry.Primary(starry.Map(udeg=2, amp=1.0), m=1.0, r=1.0)
star.map[1:] = [0.5, 0.25]
planet = starry.Secondary(
starry.Map(1, amp=0.0025), porb=365.25, r=0.1, prot=365.25, m=0.0, t0=0.0
)
planet.map[1, 0] = 0.5
sys1 = starry.System(star, planet, light_delay=False)
sys2 = starry.System(star, planet, light_delay=True)
# Compute the delay in the zero-crossing
t = np.linspace(-0.01, 0.01, 999)
t1 = t[np.argmin(np.abs(sys1.position(t)[0][1].eval()))]
t2 = t[np.argmin(np.abs(sys2.position(t)[0][1].eval()))]
diff = (t1 - t2) * u.day.to(u.minute)
# Plot the transits
t = np.linspace(-0.5, 0.5, 20000)
fig = plt.figure(figsize=(8, 3))
plt.plot(t, sys1.flux(t).eval() - 1, label="no delay")
plt.plot(t, sys2.flux(t).eval() - 1, label="with delay")
plt.xlabel("time [days]")
plt.ylabel("relative flux")
plt.legend(fontsize=10, loc="lower right")
plt.title("Light delay causes transits to occur %.2f minutes early" % diff, fontsize=14);
# Compute the delay in the zero-crossing
t = np.linspace(planet.porb.eval() / 2 - 0.01, planet.porb.eval() / 2 + 0.01, 999)
t1 = t[np.argmin(np.abs(sys1.position(t)[0][1].eval()))]
t2 = t[np.argmin(np.abs(sys2.position(t)[0][1].eval()))]
diff = (t2 - t1) * u.day.to(u.minute)
t = np.linspace(planet.porb.eval() / 2 - 0.5, planet.porb.eval() / 2 + 0.5, 20000)
fig = plt.figure(figsize=(8, 3))
plt.plot(t, sys1.flux(t).eval() - 1, label="no delay")
plt.plot(t, sys2.flux(t).eval() - 1, label="with delay")
plt.xlabel("time [days]")
plt.ylabel("relative flux")
plt.legend(fontsize=10, loc="lower right")
plt.title("Light delay causes eclipses to occur %.2f minutes late" % diff, fontsize=14);