Exomoon transit detection algorithm
Project description
Fast open-source exomoon transit detection algorithm
Named after the imaginary 5th moon of the gas giant Polyphemus, orbiting Alpha Centauri A, in the film Avatar.
Pandora employs an analytical photodynamical model, including:
- Stellar limb darkening
- Full and partial planet-moon eclipses
- Barycentric motion of planet and moon
To search for moons, Pandora can used with nested samplers, e.g. UltraNest or dynesty. We will provide an example workflow for injection and retrievals soon. Pandora is fast, calculating 10,000 models and log-likelihood evaluation per second (give or take an order of magnitude, depending on parameters and data). This means that a retrieval with 250 Mio. evaluations until convergence takes about 5 hours on a single core. Scaling with cores is worse than linear. For searches in large amounts of data, it is most efficient to assign one core per lightcurve.
Create transit lightcurve
import pandora
params = pandora.model_params()
params.per_bary = 365.25 # [days]
# (...) See tutorials for list of parameters
time = pandora.time(params).grid()
model = pandora.moon_model(params)
flux_total, flux_planet, flux_moon = model.light_curve(time)
plt.plot(time, flux_planet, color="blue")
plt.plot(time, flux_moon, color="red")
plt.plot(time, flux_total, color="black")
plt.show()
Create video
With Pandora, you can create transit videos to understand, teach, and explore exomoon transits. Try it out:
video = model.video(
time=time
limb_darkening=True,
teff=3200,
planet_color="black",
moon_color="black",
ld_circles=100
)
video.save(filename="video.mp4", fps=25, dpi=200)
Videos approximate the true lightcurve as calculated by Pandora very well. They are, however, not pixel-perfect due to the underlying Matplotlib render engine. Klick the image to view the video:
Installation
Install with pip install pandora-moon
. If you end up in dependency hell, set up a fresh environment:
conda create -n pandora_env python=3.9
conda activate pandora_env
conda install numpy matplotlib numba
pip install pandora-moon
For sampling, the following packages will be useful:
conda install cython scipy
pip install ultranest dynesty h5py
Attribution
Please cite Hippke & Heller (2022, A&A in press) if you find this code useful in your research. The BibTeX entry for the paper is:
@ARTICLE{
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pandoramoon-1.2.tar.gz
.
File metadata
- Download URL: pandoramoon-1.2.tar.gz
- Upload date:
- Size: 27.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80e393a3a26b3984aff808bb7f35984aad7fce164befa0d77351dd69abbf38ed |
|
MD5 | f1a0068c4f168d863922c1cd18064eaa |
|
BLAKE2b-256 | e7bae5d4c1dd5e5efbfefd04e22b6cd0a88c05c3db8a7ad5cd87dab7bd2065fb |
File details
Details for the file pandoramoon-1.2-py3-none-any.whl
.
File metadata
- Download URL: pandoramoon-1.2-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7e08575dba1965c04f1067f32650db6ae87b25f171fddb75102983dba415d29 |
|
MD5 | 308408d35d38e224519ee238e1708f5a |
|
BLAKE2b-256 | 88e29e274ff1af76c2ee13aba3cfafa1e1c53000f855a42ea4c35a33191b7d86 |