Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Open source pulsar search and analysis toolkit
C FORTRAN Python Groff Makefile PostScript Other

This branch is 4 commits ahead, 277 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.



NOTE: This is "CLASSIC" PRESTO.  This means that it is effectively
version "1" and is not being actively developed any longer (except for
bugfixes).  The difference between this branch and the new "master"
branch of PRESTO is that it allows you to process data from several
older pulsar backends which you (currently) cannot process with the
mainline PRESTO.  This resulted from a massive internal cleanup where
raw data which used to be passed as bytes are now being passed as

In general, if you need to process WAPP, Spigot, BCPM, or 1-bit
Parkes/Jodrell filterbank formats, you should use this branch.
Otherwise, use the mainline "master" branch of PRESTO.  It just works

PRESTO is a large suite of pulsar search and analysis software
developed by Scott Ransom mostly from scratch.  It was primarily
designed to efficiently search for binary millisecond pulsars from
long observations of globular clusters (although it has since been
used in several surveys with short integrations and to process a lot
of X-ray data as well).  It is written primarily in ANSI C, with many
of the recent routines in Python.  According to Steve Eikenberry,
PRESTO stands for: PulsaR Exploration and Search TOolkit!

**To date, PRESTO has discovered more than 300 pulsars, including
more than 150 recycled pulsars, most of which are in binaries!**

Written with portability, ease-of-use, and memory efficiency in mind,
it can currently handle raw data from the following pulsar machines or

    * PSRFITS search-format data (as from GUPPI at the GBT, the 
      Mock Spectrometers at Arecibo, and much new and archived data
      from Parkes)
    * 1-, 2-, 4-, and 8-bit filterbank format from SIGPROC
    * Wideband Arecibo Pulsar Processor (WAPP) at Arecibo
    * The Parkes and Jodrell Bank 1-bit filterbank formats
    * SPIGOT at the GBT (may it RIP...)
    * Berkeley-Caltech Pulsar Machine (BCPM) at the GBT (may it RIP...)
    * A time series composed of single precision (i.e. 4-byte) 
      floating point data
    * Photon arrival times (or events) in ASCII or double-precision 
      binary formats

The software is composed of numerous routines designed to handle three
main areas of pulsar analysis:

   1. Data Preparation: Interference detection (rfifind) and removal
      (zapbirds) , de-dispersion (prepdata, prepsubband, and
      mpiprepsubband), barycentering (via TEMPO).

   2. Searching: Fourier-domain acceleration (accelsearch),
      single-pulse (, and phase-modulation or
      sideband searches (search_bin).

   3. Folding: Candidate optimization (prepfold) and Time-of-Arrival
      (TOA) generation (

   4. Misc: Data exploration (readfile, exploredat, explorefft),
      de-dispersion planning (, date conversion (mjd2cal,
      cal2mjd), tons of python pulsar/astro libraries, average pulse
      creation, flux density estimation, and more...

Many additional utilities are provided for various tasks that are
often required when working with pulsar data such as time conversions,
Fourier transforms, time series and FFT exploration, byte-swapping,

The Fourier-Domain acceleration search technique that PRESTO uses in
the routine accelsearch is described in Ransom, Eikenberry, and
Middleditch (2002), and the phase-modulation search technique used by
search_bin is described in Ransom, Cordes, and Eikenberry (2003).
Some other basic information about PRESTO can be found in my thesis.
I will eventually get around to finishing the documentation for
PRESTO, but until then you should know that each routine returns its
basic usage when you call it with no arguments.  I am also willing to
provide limited support via email or telephone (434-296-0320).

Tutorial(!): Note that in the "docs" directory there is a now a
tutorial which walks you through all the main steps of finding pulsars
using PRESTO.

Getting it: The PRESTO source code is released under the GPL and can
be browsed or gotten from here in many different ways (including
zipped or tar'd or via git).  If you are too lazy to read how to get
it but have git on your system do:

> git clone git://

To update it on a regular basis do

> cd $PRESTO
> git pull

and then re-make things in $PRESTO/src. 

If you don't want to mess with git (which means that you will need to
re-install a tarball whenever there are updates) you can get it from
the "Download Source" link on the github page.

If you plan to tweak the code, I highly suggest that you use git and
clone the directory (or fork it using an account on github).  Read the
following "living document" on how to develop and collaborate in a
relatively sane way using git:
If you plan on doing any significant development, please let me know
and I'll either add you as a developer, or we can push/pull changes
via git/github (see the "gitwash" document above).  Code contributions
and/or patches to fix bugs are most welcome!

NOTE: for barycentering data, PRESTO uses TEMPO.  You should get the
newest version from Sourceforge.  You will also need FFTW, CFITSIO,

Final Thoughts: Please let me know if you decide to use PRESTO for any
"real" searches.  And if you find anything with it, it would be great
if you would cite either my thesis or whichever of the two papers
listed above is appropriate.  Thanks!

Acknowledgements: Big thanks go to Steve Eikenberry for his help
developing the algorithms, Dunc Lorimer for the basic code which was
used to process BCPM and WAPP data, David Kaplan for lots of help with
the GBT SPIGOT code, Jason Hessels for many contributions to the
Python routines, and a bunch of other contributions of various kinds
from (alphabetical): Anne Archibald, Cees Bassa, Slavko Bogdanov,
Fernando Camilo, Paul Demorest, Paulo Freire, Mike Keith, Patrick
Lazarus, Maggie Livingstone, Paul Ray, Paul Scholz, Ingrid Stairs,
Kevin Stovall, and for many comments, suggestions and patches!

Scott Ransom <>
Something went wrong with that request. Please try again.