A simple code for getting fast predictions on upcoming or recent eclipses or transits for eclipsing binary stars.
BLEPS is primarily designed for ground-based observers who wish to observe eclipsing binaries from smaller observatories or with amateur equipment, e.g. to measure the flux ratio in several photometric bands.
BLEPS takes basic information about your targets and calculates all feasible eclipses for your location, considering daylight and altitude limits. Output options include:
- A .csv file containing all of the info you need to prepare observations (times in UTC)
- An .ics calendar file which you can import into most calendars (e.g. Google, Apple, Outlook), which automatically matches your local timezone on import
- A .csv file which you can import to Google Calendar (times in your local
timezone) - An astropy table object (if scripting with BLEPS)
Clone this repository:
git clone https://github.com/nmiller95/bleps.git
Check you have the dependencies installed. You can do this manually or use the command (in the bleps/ directory):
pip install -r requirements.txt
You can then run BLEPS (from the bleps/ directory) with the command:
python3 bleps.py
BLEPS uses a configuration file to set up the calculations. It should be named config.yaml and kept in the same folder as the bleps.py script.
In here, you can point to your list of target info, specify your location / altitude / date constraints, and choose how you want to save the output.
Output files are saved to the output/ folder by default, but you can change this with the output_dir field in the config file.
You can also specify what observing strategy you want to use to hunt for visible eclipses.
Those familiar with observing long-period eclipsing binaries are familiar with the problem of eclipse durations being longer than a single night. In this case, if your system has (near)-total eclipses, you can choose to split the eclipse in half, so at least you can get a measure of the flux ratio by fixing the geometry of the system with e.g. a prior fit to TESS light curves. See Miller et al. 2022 for an example of this strategy in practice.
There are three options for observing strategy in BLEPS:
'split': Consider each half of an eclipse separately in feasibility checks (ingress/egress).'full': The whole eclipse must pass feasibility checks in order to be returned.'any': Returns info if the system is observable at any point during the eclipse.
BLEPS takes basic information on your target(s) from a .csv file which must have the following named columns:
- 'Name' - str - name of system(s)
- 'RA' - str - right ascension of target in hour angle format 'XX XX XX.XX'
- 'Dec' - str - declination of target in degree format '+/-XX XX XX.X'
- 'T0' - float - time of primary eclipse minimum in HJD or BJD
- 'Period' - float - orbital period of system in days
- 'Width1' - float - width of primary eclipse in phase units
- 'Phase2' - float - phase of secondary eclipse in phase units
- 'Width2' - float - width of secondary eclipse in phase units
You can specify the path to this file in the config.yaml file.
If you run BLEPS with the ics option, it generates an .ics file that can be imported to most calendar apps.
Times in this file are timezone-aware, so they should show the local time of observation rather than UTC.
Alternatively, the gcal option generates a .csv file that can be imported into Google Calendar, with times in the timezone set in the config file.
Make sure your calendar matches this timezone, and to use the file starting gcal_ to avoid mixing it up with the main .csv (which is in UTC).
You can import a calendar from the Settings menu - see this guide from Google for more info.
Upcoming eclipses imported into Google Calendar from the BLEPS .ics output:

