kal-cal is a Python library developed to provide proof-of-concept tools for Kalman Filtering and Smoothing Theory (see Bayesian Filtering and Smoothing by Simo S ̈arkk ̈a) as a replacement calibration framework for Radio-Interoferometric Gains Calibration (see Non-linear Kalman Filters for calibration in radio interferometry by Cyril Tasse). This library is part of the master's thesis work of Brian Welman (@brianWelman2 on github) through Radio Astronomy Techniques and Technologies under SARAO during the period of 2020 to 2021.
The only external requirement is the simms
which can be installed via pip
and apt
. Otherwise, all Python packages are listed in requirements.txt
and are installed when kal-cal is installed.
Firstly, you need at least python3
, or even better python3.6
, as this is the version the library was developed on. Use the package manager pip
to install kal-cal as follows:
pip install https://github.com/brianwelman2/kal-cal/archive/refs/heads/main.zip
To import kal-cal:
import kalcal
Within kalcal
exists the following subsections:
calibration
- Filter and Smoother algorithms to calibrate for gains,cli
- Command-Line Interface section that houses the commands for kal-cal,create
- Simulation functions for measurement sets, gains and visibilities,datasets
- Pre-defined datasets such as sky-models and antenna tables,examples
- Quick tutorials on how to utilize some of the basic functionality of kal-cal, both as an API and a CLI,filters
- Contains various optimized filtering algorithms to be used during calibration,plotting
- Set of plotting tools to look at results of the calibration,smoothers
- Contains various optimized smoothing algorithms to be used during calibration,tools
- Extra functionality and utilities too small for its own section,tuners
- Hyperparameter tuning algorithms based on EM-algorithm for linear Kalman filters and smoothers.
If you want to create data to test the library on, use the create
section to generate a measurement set, gains to corrupt the visibilities, and then the visibilities corrupted by the gains with added noise.
Next, utilize an algorithm from the calibration
section to calibrate this newly simulated measurement set. Once complete, plot the results from the calibration using the plotting
section.
For a quick tutorial, see the API tutorial and CLI tutorial in examples
section.
TBD
This library uses github-actions for continuous integration tests on the same repository.
This package uses the MIT license.