Skip to main content

Calculate the redshift of a FRB from its dispersion measure

Project description

PyPI - Latest Release PyPI - Python Versions PyPI - License Travis Documentation Status Code Coverage JOSS Review Status

Fruitbat Logo

Fruitbat is an open source python package used to estimate the redshift of Fast Radio Bursts (FRB) from their dispersion measure. Fruitbat combines various dispersion measure (DM) and redshift relations with the YMW16 galactic dispersion measure model into a single easy to use API.


The documentation for fruitbat can be found at


You can install the latest release of fruitbat from PyPi by running the following:

pip install fruitbat

You can install the latest development version of fruitbat by cloning this repository:

git clone
cd fruitbat
pip install .

If you are installing the latest development version of fruitbat then you will also need to install git-lfs. Instructions for installing git-lfs for your operating system can be found here.

Linux Users

If you are installing fruitbat on a linux machine you may see this ‘error’: ERROR: Failed building wheel for pyymw16. This does not mean the installation failed. The C++ bindings were compiled using MacOS and needed to be recompiled for your machine. The installation process does this for you. You should still be able to run fruitbat normally.


Below are the listed requirements for running fruitbat and the purpose for each requirement.

  • numpy: Array manipulation
  • scipy: Modules for integration and interpolation
  • astropy: Modules for cosmology, coordinates, constants and units
  • matplotlib: Modules for plotting
  • pandas: Reading csv files from FRBCAT
  • pyymw16: Python wrapper for YMW16 galactic dispersion measure model.
  • e13tools: Utility tools for writing docstrings.


If you want to get started using fruitbat there is a Getting Started section of the documentation made just for you! Otherwise the tl;dr is the following:

Most of the calculations will be centred around the Frb class. You can can define an instance of the Frb class with a dispersion measure. To calculate the redshift of the FRB use the method calc_redshift.

>>> import fruitbat
>>> FRB121102 = fruitbat.Frb(557, dm_excess=369)
>>> FRB121102.calc_redshift()
<Quantity 0.37581945>

The calc_redshift function can also be passed a method and/or a cosmology. The method will specify which DM-redshift relation to assume and the cosmology will specify which cosmology to assume.

>>> FRB121102.calc_redshift(method="Zhang2018", cosmology="Planck18")
<Quantity 0.42166019>

It is also possible to specify the coordinates of the burst and use the calc_dm_galaxy function to calculate the DM contribution from the Milky Way using the YMW16 model. Performing calc_dm_galaxy will automatically calculate the excess dispersion measure for the redshift calculation.

>>> FRB190222 = fruitbat.Frb(500, raj="12:34:43.5", decj="2:34:15.2")
>>> FRB190222.calc_dm_galaxy()
<Quantity 22.43696785 pc / cm3>
>>> FRB190222.calc_redshift()
<Quantity 0.4808557>

Issues and Contributing

If there is a feature of fruitbat that currently does not exist, but you would like it to, you can contribute by openning a Github Issue and outlining the feature. Similar to contributing, if you find a problem with fruitbat or are having difficulties using fruitbat please do not hesitate to open a Github Issue.

Referencing Fruitbat

If you use fruitbat in your research, we would like it if you could reference our paper.

       author = {{Batten}, Adam},
        title = "{Fruitbat: A Python Package for Estimating Redshifts of Fast Radio Bursts}",
      journal = {The Journal of Open Source Software},
     keywords = {Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - High Energy Astrophysical Phenomena},
         year = "2019",
        month = "May",
       volume = {4},
       number = {37},
        pages = {1399},
          doi = {10.21105/joss.01399},
archivePrefix = {arXiv},
       eprint = {1905.04294},
 primaryClass = {astro-ph.IM},
       adsurl = {},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for fruitbat, version 1.1.0
Filename, size File type Python version Upload date Hashes
Filename, size fruitbat-1.1.0-py3-none-any.whl (2.6 MB) File type Wheel Python version py3 Upload date Hashes View
Filename, size fruitbat-1.1.0.tar.gz (2.6 MB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page