PulsePortraiture
PulsePortraiture (PP): a wideband pulsar timing code 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). PSRCHIVE, lmfit, and the latest vertsions of numpy and scipy are required.
Install / Use
/learn @pennucci/PulsePortraitureREADME
Pulse Portraiture
What?
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).
Why?
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.
How?
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:
DM<sub>bary</sub> = DM<sub>topo</sub> / doppler_factor.
-
Pennucci (2015), "Wideband Observations of Radio Pulsars", PhDT, UVa.
-
Pennucci et al. (in prep).
Requirements
- 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.
TL;DR
pplibcontains functions and classes needed for the fitting scripts.ppsplineis a command-line utility to build smoothly varying model portraits based on PCA decomposition, wavelet smoothing, and B-splin einterpolation between the components.ppgaussis a command-line utility to build Gaussian-component model portraits.pptoaslibcontains functions needed for pptoas.pptoasis a command-line utility to measure TOAs, DMs, nu**-4 delays, and scattering parameters.ppalignis a command-line utility to average homogeneous data by measuring phases and DMs.ppzapis 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.pyfor a more in-depth demonstration. - Try the notebook
example_make_model_and_TOAs.ipynbfor a walk-through.
License
Released under GPLv2, sans "or later" clause.
Other
Code improvements are underway, as is a broad application to IPTA pulsars of interest. Suggestions and additional development are welcome.
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
