Skip to content
Christoph Vögele edited this page Feb 10, 2022 · 14 revisions

Overview

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:

  1. A user friendly and modular scripting environment that gives general users easy access to novel radio interferometry calibration, imaging, and synthesis packages.
  2. 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.

Architecture

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

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

Executors (a.k.a 'cabs')

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!)