Skip to content
Benjamin Hugo edited this page Aug 15, 2019 · 14 revisions

Overview

stimela (Stimela is the IsiZulu word for a train) is a platform independent radio interferometry scripting framework based on Docker and Python. In this framework, radio interferometry related tasks such as imaging, calibration and data synthesis are executed in Docker containers. In fact, within this framework the packages that perform these tasks are Python modules. Much like Oleg Smirnov's pyxis package, stimela does not do any data processing, synthesis or analysis but merely offers a simple interface to packages that perform these tasks. However, unlike pyxis which requires multiple radio astronomy packages to be working on the same system, stimela only requires Docker and Python.

The aim of stimela is to provide a user friendly and modular scripting environment that gives general users easy access to novel radio interferometry calibration, imaging, and synthesis packages.

Architecture

stimela is centred around two sets of Docker 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 mages 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. Base images are maintained by the {\tt Radio Astro} project on the 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!)