sigpyproc

On this page

sigpyproc#

A modern, object-oriented Python library for FRB and pulsar data analysis.

GitHub CI Docs codecov License Ruff SPEC 0 — Minimum Supported Dependencies


sigpyproc provides high-performance tools for manipulating pulsar and fast radio burst (FRB) data, combining a clean object-oriented API with Numba-accelerated kernels for time-critical workloads. Originally developed as a Python alternative to the SIGPROC filterbank toolbox, the project has evolved into an independent framework for structured pulsar/FRB data manipulation. Unlike full search pipelines such as SIGPROC or PRESTO, sigpyproc is not a complete searching software. Instead, it focuses on:

  • Precise data inspection, data format conversion and header manipulation

  • Fine-grained control/visualization of filterbank and time series data

  • Rapid experimentation prior to large-scale pipeline execution

This makes it particularly well suited for exploratory research, validation work, and a simple plug-and-play system with new modules and extensions.


Features#

  • Object-Oriented Design — Explicit data objects for SIGPROC filterbank, PSRFITS, TimeSeries.

  • High Performance — Critical paths implemented with Numba for speed without sacrificing clarity.

  • Structured Metadata — Explicit header schemas for metadata handling.

  • Modern Stack — Built with uv, enforced with ruff, and maintained with strict ty type checking.


Get Started#

🚀 Installation & Quickstart

Installation, environment setup, and a minimal working example.

Installation
📘 API Reference

Complete documentation of core classes, data structures, and kernels.

API Reference
🖥️ Command Line Tools

Utilities such as spp_header, spp_extract, and other CLI helpers.

Command line utilities
🛠️ Development Guide

Contributing, extending kernels, and architectural details.

Development Guide