Design

The processing function library implements common functionality required for the implementation of radio astronomy (specifically interferometry) processing for the SKAO.

Guinding principles:

  • We are taking a functional paradigm, which means that we have a number of functions that from inputs generate outputs in a deterministic fashion (referential transparency).

  • Functions should always be built as far as possible so they can work on subsets of data in isolation. This is to enable users to distribute processing. The processing function library does not in itself implement distribution (outside of supporting Dask arrays).

Processing functions are defined for two different groups of data models:

SDP data models

See Processing Functions (ska-sdp-datamodels)

The original processing function set developed as part of the SKA SDP consortium work part of RASCIL used SKA SDP specific data models, see ska_sdp_datamodels. This is using xarray.Dataset behind wrapper classes to represent data.

xradio data models

See Processing Functions (xradio)

New “xradio” data models defined later in a collaboration between SKAO and NRAO (see XRADIO Schemas). Envisioned to become a new shared standard for radio astronomy data, used by next-generation pipelines developed for new radio astronomy observatories. As such, it is much more general than the SDP data models - for instance, it also caters towards single dish and VLBI use cases, which will not all be supported in ska-sdp-func-python.

Note

Both the xradio data model definitions and the processing function implementations are still subject to active development, and therefore not quite stabilised yet.