presto

Open source pulsar search and analysis toolkit

https://github.com/scottransom/presto

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    11 of 43 committers (25.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary

Keywords

fourier-methods pulsars
Last synced: 7 months ago · JSON representation ·

Repository

Open source pulsar search and analysis toolkit

Basic Info
Statistics
  • Stars: 254
  • Watchers: 22
  • Forks: 182
  • Open Issues: 39
  • Releases: 10
Topics
fourier-methods pulsars
Created over 16 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Citation

README.md

PINT on ASCL

PRESTO

PRESTO is a large suite of pulsar search and analysis software developed primarily by Scott Ransom mostly from scratch, and released under the GPL (v2). 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!

PRESTO has discovered well over 1500 pulsars, including ~500 recycled and/or binary pulsars!

Version 5.1.0:

  • Updated ATNF Pulsar Catalog to v2.65
  • Three new and useful python programs / utilities:
    • stacksearch.py Read multiple PRESTO-style *.fft files and conduct a stack search for periodicities.
    • fourier_fold.py Use the complex amplitudes in a PRESTO .fft file (or in multiple FFT files) to generate pulse profiles without having to do time-domain folding.
    • pfdzap.py Perform simple time- and/or frequency domain zapping of .pfd files. Generate zap commands for show_pfd, get_TOAs.py, and sum_profiles.py.
  • Many small bug fixes and tweaks, including more correct handling of DM smearing in DDplan.py

For information on older versions, please see the CHANGELOG.md.

About PRESTO:

PRESTO is 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, PUPPI and the Mock Spectrometers at Arecibo, and much new and archived data from Parkes)
  • 1-, 2-, 4-, 8-, and 32-bit (float) filterbank format from SIGPROC
  • A time series composed of single precision (i.e. 4-byte) floating point data (with a text ".inf" file describing it)
  • Photon arrival times (or events) in ASCII or double-precision binary formats

Notice that the following formats which used to be supported are not:

  • Wideband Arecibo Pulsar Processor (WAPP) at Arecibo
  • The Parkes and Jodrell Bank 1-bit filterbank formats
  • SPIGOT at the GBT
  • Berkeley-Caltech Pulsar Machine (BCPM) at the GBT

If you need to process them, you can either checkout the "classic" branch of PRESTO (see below), which is not being actively developed. Or you can use DSPSR to convert those formats into SIGPROC filterbank or (even better) PSRFITS search format. You can grab DSPSR here. If you really need to get one of these machines working in modern PRESTO, let me know and we can probably make it happen.

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 and pfdzap.py), de-dispersion (prepdata, prepsubband, and mpiprepsubband), barycentering (via TEMPO).
  2. Searching: Fourier-domain acceleration and jerk (accelsearch), single-pulse (single_pulse_search.py), and phase-modulation or sideband searches (search_bin).
  3. Folding: Candidate optimization (prepfold and fourier_fold.py) and Time-of-Arrival (TOA) generation (get_TOAs.py).
  4. Misc: Data exploration (readfile, exploredat, explorefft), de-dispersion planning (DDplan.py), date conversion (mjd2cal, cal2mjd), tons of python pulsar/astro libraries, average pulse creation and flux density estimation (sum_profiles.py), and more...
  5. Post Single Pulse Searching Tools: Grouping algorithm (rrattrap.py), Production and of single pulse diagnostic plots (make_spd.py, plot_spd.py, and waterfaller.py).

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.

References: The Fourier-Domain acceleration search technique that PRESTO uses in the routine accelsearch is described in Ransom, Eikenberry, and Middleditch (2002), the "jerk" search capability is described in Andersen & Ransom (2018), 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.

Support/Docs: I may eventually get around to finishing the documentation for PRESTO (or not), 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 (see below). And make sure to check out the FAQ.md!

Tutorial: There is a tutorial in the "docs" directory 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://github.com/scottransom/presto.git

To update it on a regular basis do

cd $PRESTO
git pull

and then re-build things in $PRESTO.

For more detailed installation instructions, see INSTALL.md.

If you want the "classic" branch, do the following:

git clone git://github.com/scottransom/presto.git
cd presto
git checkout -b classic origin/classic

then build as per the (old) INSTALL file.

Development:

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). And if you want to contribute your changes back, please give me a "pull request"!

Code contributions and/or patches to fix bugs are most welcome!

Final Thoughts:

Please let me know if you decide to use PRESTO for any "real" searches, especially if you find pulsars with it!

And if you find anything with it, it would be great if you would cite either my thesis or whichever of the three papers listed above is appropriate.

Also note that many people are now also citing software using the ASCL, in addition to the relevant papers: PRESTO is there!.

Thanks!

Acknowledgements:

Big thanks go to Steve Eikenberry for his help developing the algorithms, Dunc Lorimer and David Kaplan for help with (retired) code to process BCPM, SCAMP, and Spigot data, among other things, Jason Hessels and Patrick Lazarus for many contributions to the Python routines, and (alphabetical): Bridget Andersen, Anne Archibald, Cees Bassa, Matteo Bachetti, Slavko Bogdanov, Fernando Camilo, Shami Chatterjee, Kathryn Crowter, Paul Demorest, Paulo Freire, Nate Garver-Daniels, Chen Karako, Mike Keith, Maggie Livingstone, Ryan Lynch, Erik Madsen, Bradley Meyers, Gijs Molenaar, Timothy Olszanski, Chitrang Patel, Paul Ray, Alessandro Ridolfi, Paul Scholz, Maciej Serylak, Ingrid Stairs, Kevin Stovall, Nick Swainston, and Joeri van Leeuwen for many comments, suggestions and patches!

Scott Ransom sransom@nrao.edu

Owner

  • Name: Scott Ransom
  • Login: scottransom
  • Kind: user
  • Location: Charlottesville, VA USA
  • Company: @nrao @nanograv

Pulsar guy

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: PRESTO
message: >-
  If you use this software, please at least cite the ASCL
  link below. But even better, please cite the relevant
  research papers listed below or in the README.
type: software
authors:
  - given-names: Scott
    family-names: Ransom
    email: sransom@nrao.edu
    affiliation: NRAO / Univ. of Virginia
    orcid: 'https://orcid.org/0000-0001-5799-9714'
identifiers:
  - type: url
    value: 'https://ascl.net/1107.017'
    description: ASCL entry
repository-code: 'https://github.com/scottransom/presto'
abstract: >-
  PRESTO is a large suite of pulsar search and analysis
  software developed primarily by Scott Ransom.
keywords:
  - astronomy
  - pulsars
  - timing
license: GPL-2.0
preferred-citation:
  title: "New search techniques for binary pulsars"
  notes: "Cite this for general uses of PRESTO"
  year: "2001"
  type: generic
  thesis-type: "PhD thesis"
  authors:
    - family-names: Ransom
      given-names: Scott M.
  institution:
    name: "Harvard University"
  url: "https://ui.adsabs.harvard.edu/abs/2001PhDT.......123R"
references:
  - title: "Fourier Techniques for Very Long Astrophysical Time-Series Analysis"
    notes: "Cite this if you use accelsearch (acceleration search)"
    doi: "10.1086/342285"
    year: "2002"
    type: article
    journal: "AJ"
    authors:
      - family-names: Ransom
        given-names: Scott M.
      - family-names: Eikenberry
        given-names: Stephen S.
      - family-names: Middleditch
        given-names: John.
    url: "https://ui.adsabs.harvard.edu/abs/2002AJ....124.1788R"
  - title: "A New Search Technique for Short Orbital Period Binary Pulsars"
    notes: "Cite this if you use searchbin (phase modulation search)"
    doi: "10.1086/374806"
    year: "2003"
    type: article
    journal: "ApJ"
    authors:
      - family-names: Ransom
        given-names: Scott M.
      - family-names: Cordes
        given-names: James M.
      - family-names: Eikenberry
        given-names: Stephen S.
    url: "https://ui.adsabs.harvard.edu/abs/2003ApJ...589..911R"
  - title: "A Fourier Domain Jerk Search for Binary Pulsars"
    notes: "Cite this if you use accelsearch (jerk search)"
    doi: "10.3847/2041-8213/aad59f"
    year: "2018"
    type: article
    journal: "ApJL"
    authors:
      - family-names: Andersen
        given-names: Bridget C.
      - family-names: Ransom
        given-names: Scott M.
    url: "https://ui.adsabs.harvard.edu/abs/2018ApJ...863L..13A"

GitHub Events

Total
  • Create event: 1
  • Commit comment event: 2
  • Release event: 2
  • Issues event: 6
  • Watch event: 19
  • Issue comment event: 13
  • Push event: 25
  • Pull request event: 2
  • Fork event: 11
Last Year
  • Create event: 1
  • Commit comment event: 2
  • Release event: 2
  • Issues event: 6
  • Watch event: 19
  • Issue comment event: 13
  • Push event: 25
  • Pull request event: 2
  • Fork event: 11

Committers

Last synced: about 3 years ago

All Time
  • Total Commits: 2,601
  • Total Committers: 43
  • Avg Commits per committer: 60.488
  • Development Distribution Score (DDS): 0.155
Top Committers
Name Email Commits
Scott Ransom s****m@n****u 2,197
Patrick Lazarus p****s@m****e 74
Patrick Lazarus p****s@g****m 55
Matteo Bachetti m****o@m****t 35
Chitrang Patel p****i@h****a 32
Paul Scholz p****z@p****a 30
Paul Ray p****y@n****l 21
Scott Ransom S****m@n****u 19
Gijs Molenaar g****s@p****l 13
Paul Demorest p****s@n****u 12
Ryan Lynch r****h@g****m 12
Bridget Andersen b****h@v****u 10
Nick Swainston n****n@g****m 10
Patrick Lazarus p****s@m****e 7
Joeri van Leeuwen l****n@a****l 7
Chitrang Patel p****4@l****a 6
Timothy Olszanski 5****s@u****m 6
Kevin Luke 7****n@u****m 5
Bradley Meyers b****3@g****m 4
Anne Archibald a****a@h****a 4
Maciej Serylak m****k@g****m 3
Kathryn Crowter 4****c@u****m 3
Chitrang Patel p****4@l****a 3
Patrick Lazarus p****r@h****a 3
Paul Ray p****y@m****m 3
Paul Scholz p****z@l****) 3
Erik Madsen e****k@m****t 2
Kevin Stovall k****l@g****) 2
pscholz@physics.mcgill.ca p****z@l****) 2
Kevin Stovall k****l@t****) 2
and 13 more...

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 4
  • Total pull requests: 1
  • Average time to close issues: 7 days
  • Average time to close pull requests: 1 minute
  • Total issue authors: 4
  • Total pull request authors: 1
  • Average comments per issue: 2.75
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 1
  • Average time to close issues: 7 days
  • Average time to close pull requests: 1 minute
  • Issue authors: 4
  • Pull request authors: 1
  • Average comments per issue: 2.75
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • paulray (3)
  • afinemax (3)
  • Meiz07 (1)
  • astrogewgaw (1)
  • hongban248 (1)
  • jackttj (1)
  • bwmeyers (1)
  • k-perez (1)
  • aweaver1fandm (1)
Pull Request Authors
  • k-perez (1)
  • remsforian (1)
  • fjankowsk (1)
  • alex88ridolfi (1)
  • scottransom (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

Dockerfile docker
  • ubuntu 22.04 build
setup.py pypi
  • astropy *
  • future *
  • matplotlib *
  • numpy *
  • pyslalib *
  • scipy *
  • six *
pyproject.toml pypi