-
Notifications
You must be signed in to change notification settings - Fork 16
Home
Stimela (the IsiZulu word for a train) is a platform independent radio interferometry scripting framework based on Python and the containerization technologies that now comes standard with all major Linux distributions. We currently support the following containerization platforms:
In this framework, radio interferometry related tasks such as imaging, calibration and data synthesis are executed in containers. In fact, within this framework the packages that perform these tasks are Python modules. Stimela does not do any data processing, synthesis or analysis but offers a unified Pythonic interface to packages that perform these tasks.
The primary aims of Stimela is to provide the following services to the Radio Astronomy community:
- A user friendly and modular scripting environment that gives general users easy access to novel radio interferometry calibration, imaging, and synthesis packages.
- Simplified installation and production deployment. All the software available to the Stimela user is prebuild and available on Docker Hub
Another great benefit to this deployment model is that the production environment is fixed. We firmly believe in reproducibility of scientific results. This almost always includes the black box software products that were used to do preprocessing, calibration and analysis. The versions of the interfaced software products is fixed for a particular release version of Stimela. This means you can roll back and forward with ease and ensures that your production environment is always verbatim with that used for your original reduction work.
Stimela is centred around two sets of images, i) base images, which have the required software tools installed in them, and ii) very light weight executor images (a.k.a cab images) based on the base images, these perform radio interferometry related tasks like imaging, data synthesis, and calibration. The base images can either be built locally (on the host machine) or pulled from Docker hub, and the executor images are built locally.
Base images are a suite of Docker images which have various radio astronomy related packages, including data synthesis and calibration packages such as CASA and MeqTrees, and imaging packages such as lwimager and wsclean. Most base images are maintained by us on Docker hub, but any Docker image can be used as a base image. These are some of the available base images:
- stimela/meqtrees - MeqTrees calibration/simulation tool
- stimela/lwimager - Uses the casarest based lwimager tool for imaging and deconvolution
- stimela/wsclean - WSClean imaging tool
- stimela/simms - Uses CASA simulate tool to create a simulated (empty) MS
- stimela/tigger - Tools for managing and manupulating analytic sky models (Gaussian and point sources)
- stimela/aoflagger - Automated RFI flagging tool
- stimela/casa - CASA
- stimela/lofar - Lofar
- stimela/sourcery - Source finding and source characterisation tool
- stimela/msutils - Convenience functions for manipulating MSs
These images are generally pre-loaded with Python scripts that perform a specified task (e.g calibrating a visibility dataset). A stimela cab image takes some input as well a set of instructions, performs some task, then returns the output. The following are examples of available tasks:
- cab/simms
- cab/simulator
- cab/calibrator
- cab/lwimager
- cab/wsclean
- cab/tigger_convert
- cab/tigger_restore
- cab/tigger_tag
- cab/specfit
- cab/sourcery
- cab/autoflagger (AOFlagger)
- cab/flagms
- cab/casa_{clean, gaincal, bandpass, etc.}
- cab/ddfacet
- cab/cubical
- cab/tricolour (Tricolour)
Get help on any of these cabs by running : stimela cabs -i <cab name>
Example
$ stimela cabs -i cleanmask
Cab cleanmask
Info Creates a binary mask from a FITS image
Base Image stimela/astropy
Parameters:
Name image
Description Name of FITS image from which to derive the mask
Type file
Default None
Name output
Description Name of resulting binary mask
Type file
Default None
Name sigma
Description The number of standard deviations to use when clipping image
Type float
Default 5
Name boxes
Description Will divide image into this number of boxes, then perform sigma clipping in each of these boxes
Type int
Default 11
Name iters
Description The number of iterations to perform sigma clipping, or 0 to clip until convergence is achieved.
Type str
Default 3
We make every effort to ensure up to date list of options matching that of a native shell experience. If you find missing options please open a ticket on the tracker (or better yet update the relevant parameters.json file in cargo/cab/[cabname]/parameters.json and open a pull request!)