Skip to content

astrogewgaw/priwo

Repository files navigation

priwo: I/O for common pulsar data formats.

License Version Python versions

Tests Documentation Status Interrogate

Stars Downloads Issues

Gitmoji Code style: black

What is this?

priwo is a library that allows you to read in and write out pulsar data from the following data formats:

  • SIGPROC headers,
  • PRESTO FFT (*.fft) files,
  • PRESTO infodata (*.inf) files,
  • PRESTO folded data (*.pfd) files,
  • PRESTO time series (*.dat) files,
  • SIGPROC filterbank (*.fil) files,
  • SIGPROC time series (*.tim) files,
  • PRESTO best pulse profile (*.bestprof) files,
  • TEMPO polynomial ephemerides (*.polycos) files.

priwo's API is deliberately low-level: each function in priwo deals with a single file format and takes/returns a Python dictionary. This allows users to design arbitrary high-level APIs on top of priwo's functionality. This is unlike most other contemporary libraries, such as your. your (to which this library has been frequently compared to) provides a high-level API for reading in pulsar data, while also providing modules to help process and analyze it. This is makes the number of dependencies it uses is a bit high (as of 05/10/22, that is a total of 9 dependencies). On the other hand, priwo has just a single dependency: pabo1. This makes it an ideal choice to drop into your projects, without worrying about dependency hell.

priwo is well-tested (via ward) and actively maintained. No major changes to the API are expected before v0.1.0. Support for many more formats, such as PSRFITS, is on the way. If you would like to contribute, have a look at CONTRIBUTING.md, and get in touch! If you find a bug, feel free to open an issue. If you would like to suggest support for any data format(s) I have missed, suggest a feature, or just chat, feel free to jump into the discussions.

Installing

Installing priwo is as easy as:

pip install priwo

Footnotes

  1. pabo is a package I made to make parsing binary data easier, and it has just two dependencies : attrs and numpy.