A set of libraries and modules to measure "wideband" pulse times-of-arrival (TOAs), written in python. It uses an extension of Joe Taylor's FFTFIT algorithm (Taylor 1992) to simultaneously measure a phase (TOA) and dispersion measure (DM). It has subsequently been improved to also incoporate fitting for scattering parameters (timescale tau and index alpha) and frequency**-4 phase delays ("GM"). It is to be used with PSRCHIVE-compatible folded archives (PSRFITS format).
The motivation behind writing this software was to develop a wideband measurement routine for high-precision pulsar timing in the era of very broadband receivers and high-cadence timing observations for PTA experiments, and it makes up a chunk of Tim Pennucci's Ph.D. thesis. Algorithm development and coding help was provided by Paul Demorest and Scott Ransom.
The technical description of this work and its related papers are:
-
Pennucci, Demorest, & Ransom (2014), "Elementary Wideband Timing of Radio Pulsars", ApJ, 790, 93.
NB: Equation 13 of the paper was written incorrectly: It should be the reverse:
DMbary = DMtopo / doppler_factor.
-
Pennucci (2015), "Wideband Observations of Radio Pulsars", PhDT, UVa.
-
Pennucci et al. (in prep).
- PSRCHIVE, compiled with the python-interface enabled,
- NumPy & SciPy recent versions will do,
- PyWavelets is required for wavelet smoothing / ppspline.py, and
- LMFIT is required for Gaussian portrait modelling / ppgauss.py and a few other functions.
pplib
contains functions and classes needed for the fitting scripts.ppspline
is a command-line utility to build smoothly varying model portraits based on PCA decomposition, wavelet smoothing, and B-splin einterpolation between the components.ppgauss
is a command-line utility to build Gaussian-component model portraits.pptoaslib
contains functions needed for pptoas.pptoas
is a command-line utility to measure TOAs, DMs, nu**-4 delays, and scattering parameters.ppalign
is a command-line utility to average homogeneous data by measuring phases and DMs.ppzap
is a command-line utility which uses pptoas to identify potentially overlooked bad channels to zap.- The command-line programs can be imported into ipython for additional flexibility of use.
- See the examples directory for simple command-line use.
- Run and examine examples/
example.py
for a more in-depth demonstration. - Try the notebook
example_make_model_and_TOAs.ipynb
for a walk-through.
Released under GPLv2, sans "or later" clause.
Code improvements are underway, as is a broad application to IPTA pulsars of interest. Suggestions and additional development are welcome.