Skip to content

robkavanagh/maser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MASER

MASER is a tool I developed for computing the visibility windows of radio emission generated by magnetic interactions between stars and their orbiting planets. These signatures are transient, and this tool predicts when they will appear based on the underlying system geometry. The emission is emitted in a hollow cone shape from the Northern and Southern magnetic hemispheres of the host star, as illustrated below:

MASER is written in Python, and is described in the publication Kavanagh & Vedantham (2023). While it was developed for studying star-planet interactions, MASER can be applied to any magnetised body that interacts with an orbiting satellite (e.g. planets, brown dwarfs, white dwarfs).

The installation steps for MASER are listed below. I also recommend you try out the dedicated web app!

Installation and basic usage

MASER can be installed via pip, and depends solely on NumPy (>2.42):

pip install git+https://github.com/robkavanagh/maser.git

Once installed, you can utilise it in your Python workflow via:

from maser import maser

The function maser requires the vector params, which contains the system parameters required to compute the visibility of the radio emission, and the NumPy array times, which contains the observing times in days. The elements of params are as follows:

Star:

  • M_s: Mass (solar masses)
  • R_s: Radius (solar radii)
  • P_s: Rotation period (days)
  • i_s: Inclination of the rotation axis relative to the line of sight (radians)
  • B_s: Dipole field strength at the magnetic poles (Gauss)
  • beta: Magnetic obliquity (radians)
  • phi_s0: Rotation phase at times = 0 (0 – 1)

Planet:

  • a: Orbital distance (stellar radii)
  • i_p: Inclination of the orbital axis relative to the line of sight (radians)
  • lam: Projected spin-orbit angle (radians)
  • phi_p0: Orbital phase at times = 0 (0 – 1)

Emission:

  • f: Observing frequency (MHz)
  • alpha: Cone opening angle (radians)
  • dalpha: Cone thickness (radians)

Two optional parameters Lmax and tol can also be set when calling maser, which set the maximum size of the magnetic field loops and the tolerance of the numerical solver implemented (see the associated publication for details).

Example calculation

Calling maser(params, times) returns two arrays corresponding to the visibility of the emission from the Northern and Southern magnetic hemispheres of the star at each time in times (see sketch above). Visible emission is represented with the value True, whereas emission that is either not visible or cannot be generated is represented with the value False. The script examples/example lightcurve.py provides an example of using MASER to compute the visibility of radio emission from a star-planet system observed over two days. The computed time series should resemble the following figure when plotted, where the visibility windows of the emission from the North and South are coloured in red and blue respectively:

Use cases

MASER has been utilised for a variety of science cases. The published use cases as of March 2026 are as follows:

Performance optimisation

While it is not a requirement for MASER, the underlying code was written to benefit from the enhanced performance offered by Numba. With Numba, the function maser computes about 70 times faster. See the script examples/numba speedup.py for a demonstration.

Acknowledging use of the code

If you use MASER in your own work, please cite Kavanagh & Vedantham (2023).

About

A tool for analysing and forecasting time series data of radio emission from magnetic star-planet interactions

Topics

Resources

License

Stars

Watchers

Forks

Contributors