PFB-Imaging¶
PFB-Imaging is a radio interferometric imaging suite based on the preconditioned forward-backward algorithm. It's designed for high-performance astronomical data processing with distributed computing capabilities.
Overview¶
PFB-Imaging provides a comprehensive suite of tools for processing radio interferometric data, with a focus on:
- High-performance computing: Distributed processing using Dask
- Advanced algorithms: Preconditioned forward-backward optimization
- Flexible deconvolution: Support for classical and modern sparsity-based methods
- Scientific accuracy: Built on proven mathematical foundations
Key Features¶
🚀 Performance¶
- Distributed computing with Dask for scalability
- Memory-efficient chunked processing for large datasets
- Optimized algorithms using Numba JIT compilation and DUCC0
🔬 Scientific Capabilities¶
- Full Stokes polarization processing
- Advanced deconvolution algorithms (SARA, Hogbom, Clark)
- Sparsity regularization with wavelet transforms
- Preconditioned optimization for faster convergence
🛠️ Developer-Friendly¶
- Modular architecture with worker-based processing pipeline
- Configuration-driven with YAML schemas
- Comprehensive testing with automated CI/CD
- Extensive documentation with examples and tutorials
Quick Start¶
Installation¶
# Install from PyPI
pip install pfb-imaging
# Or install from source
git clone https://github.com/ratt-ru/pfb-imaging.git
cd pfb-imaging
pip install -e .
Basic Usage¶
# Initialize measurement set
pfb init --ms my_data.ms --output-filename my_output
# Create dirty image and PSF
pfb grid --output-filename my_output
# Deconvolve using classical methods
pfb kclean --output-filename my_output
# Restore clean components
pfb restore --output-filename my_output
Mathematical Foundation¶
PFB-Imaging is built on the preconditioned forward-backward algorithm, which solves the optimization problem:
Where: - \(A\) is the measurement operator (gridding + FFT) - \(x\) is the image to be reconstructed - \(b\) are the observed visibilities - \(W\) is a sparsifying transform (wavelets) - \(\lambda\) controls the regularization strength
The algorithm alternates between: 1. Forward step: Gradient descent on the data fidelity term 2. Backward step: Proximal operator of the regularization term
Architecture¶
The system follows a modular worker-based pattern where each processing step is a separate CLI command:
graph LR
A[Measurement Set] --> B[pfb init]
B --> C[pfb grid]
C --> D[pfb kclean/sara]
D --> E[pfb restore]
E --> F[FITS Output]
Getting Help¶
- 📖 Documentation: https://pfb-imaging.readthedocs.io/
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
Contributing¶
We welcome contributions! Please see our Contributing Guide for details on how to get started.
Citation¶
If you use PFB-Imaging in your research, please cite:
@software{pfb_imaging,
author = {Bester, Landman},
title = {PFB-Imaging: Radio interferometric imaging suite},
url = {https://github.com/ratt-ru/pfb-imaging},
version = {0.0.5},
year = {2024}
}
License¶
PFB-Imaging is licensed under the MIT License. See LICENSE for details.