Getting Started

Let’s start by importing the necessary packages

from aspros import simulate_lc, inject_transits

import astropy.units as u
from astropy.time import Time

import numpy as np
import matplotlib.pyplot as plt

Simulate a light curve with CHEOPS-like noise and window function:

seed = 42  # Makes random number generator reproducible
duration = 24 * u.hour
efficiency = 0.6
clean_lc = simulate_lc(duration, efficiency=efficiency, seed=seed)

Inject a transiting object with specified orbital properties:

period = 3 * u.hour
epoch = Time('2020-04-01') + np.random.rand()*u.day
radius = 1500 * u.km
inc = 90 * u.deg

transit_lc = inject_transits(clean_lc, period, epoch, radius, inc)

Construct a Box Least Squares periodogram and inspect it for peaks:

periods = np.linspace(2, 12, 1500) * u.hour
results, bests, stats = transit_lc.bls(periods=periods, duration=2*u.min)

fig, ax = plt.subplots(1, 2, figsize=(8, 2))
transit_lc.plot(ax=ax[0])
ax[1].plot(results.period.to(u.hour), results.power)
ax[1].set_xlabel('Period [hour]')
ax[1].set_ylabel('BLS Power')
fig.tight_layout()
plt.show()

(Source code, png, hires.png, pdf)

../_images/gettingstarted-1.png