
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!
Written with portability, ease-of-use, and memory efficiency in mind, it can currently handle raw data
from the following pulsar machines or formats:
- PSRFITS
search-format data (as from GUPPI at
the GBT and the Mock Spectrometers and PUPPI at Arecibo)
- SPIGOT
at the GBT
- Most Wideband Arecibo
Pulsar Processor (WAPP) at Arecibo
- The Parkes and Jodrell
Bank 1-bit filterbank formats
- Berkeley-Caltech Pulsar
Machine (BCPM) at the GBT (may it RIP...)
- 2-, 4-, and 8-bit filterbank format
from SIGPROC
(other formats will be added if required)
- 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:
- Data
Preparation: Interference
detection (rfifind) and removal (zapbirds) ,
de-dispersion (prepdata, prepsubband, and mpiprepsubband),
barycentering (via TEMPO).
- Searching: Fourier-domain
acceleration (accelsearch), single-pulse (single_pulse_search.py), and
phase-modulation or sideband searches (search_bin).
- Folding: Candidate
optimization (prepfold) and Time-of-Arrival (TOA) generation (get_TOAs.py).
- Misc: Data exploration (readfile,
exploredat, explorefft), de-dispersion planning (DDplan.py), 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, etc.
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).
To date, PRESTO has
discovered well over two hundred pulsars,
including more than 120 recycled
pulsars, about 100 of which are
in binaries!
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://github.com/scottransom/presto.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). 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. 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, and PGPLOT.
Tutorial:
There is now a tutorial
available that will show you the basics. It is included in the
docs directory of the source code as well.
Other Languages: Here is a Romanian translation of this page (thanks to Alexsandra Seremina!) Let me know if you have others!
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 is 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 along with Maggie Livingstone for the
rednoise reduction routine), Anne Archibald (for significant help with
the recent accelsearch improvements), and Paul Demorest, Paul Ray,
Ingrid Stairs, Fernando
Camilo, Cees Bassa, Patrick Lazarus, Mike Keith, Kevin Stovall, and Paulo Freire for
many
comments and suggestions (and even some patches!).
Scott Ransom