Skip to content

Visibility Visualization

pford edited this page Feb 22, 2024 · 13 revisions

CASA is designing a new visibility visualization application ( to replace the CASA6 plotms and msview applications ).

Milestones

  • Initial Prototype : June 2024 : Basic plots with a focus on performance/scaling of the backend data I/O and pre-processing steps.

Design Documentation ( To move to casagui readthedocs )

Functional layers : Frontend GUI and Backend non-interactive application.

  • Backend
    • Data I/O : Read visibilities with appropriate HTC infrastructure, using a Python I/O API with parallelization as needed. (e.g. xradio)
    • Data transforms and reductions : Convert the raw visibilities into averaged or other derived quantities. API is Python calls with parallelization as needed (e.g. astro-viper + graph-viper)
    • Save plot to disk.
  • Frontend - This package implements a front-end GUI, for an application where one can view plot results and interact with data selection, plot selection/setup options and flagging options.

Feature Requirements

Derived from CASR-385 and user-feedback.

Data Selections and Transformations

  • Calculate statistics on complex visibilities ( average, max, min, std, etc…. ) along all major data axes : Time, Frequency, Baseline and/or Correlation. (Include Single-dish autocross, Caltable gains, etc….)
  • Calculate derived quantities (e.g. weighted visibilities, hour-angle and elevation, data - model, corrected_data - model, applying cal tables, running autoflag, topo-to-lsrk conversions, phaseshift, vector averaging, etc... )
  • Choose or switch between data-variable versions (e.g. data, corrected_data, flags_1, flags_2, etc… )
  • Calculate “reduced” flags (through averaging). Also, expand flags defined on "reduced" views, to the original data axes. Define reduction/expansion rules clearly.
  • Data selection : Ability to define a ‘processing set’ for visualization. This can be a sub-selection or a combination across fields, spectral windows, etc….

Types of Views

  • Raster displays of any pair of the following axes : Time, Frequency, Baseline, Correlation. With the ‘averaging and other stats’ option listed above, this addresses the ‘msview’ use-case.
  • Scatter plots with X and Y axis flexibility similar to current casaplotms. This addresses the ‘plotms’ use-case.
    • Ability to "colorize by" selection - SPW, antenna etc. Also to user-specify a color for a given selection (e.g., SPW07 = red)
  • Provide a list of commonly-used plots, as well as the ability to specify more generic variables for the X and Y axes.

Usage settings

  • Headless : Python scripting for generation of plot files (non-interactive).
  • Terminal : for rendering and user interaction
    • Web browser : Render views generated by the backend, in a browser tab. User-interaction via widgets (similar to the new interactive clean). This is an option that may eventually connect to an ‘observatory interface’ data-reduction portal, alongside CARTA.
      • Include the ability to do remote data I/O and transformations but local rendering/interactivity.
  • Application : for rendering and user interaction.
    • Standalone application using Electron.
  • Notebook

Interactivity

  • Non-interactive : User requests a plot (either through a script, notebook, application or obs-interface) and a static plot is made. Plot interactivity like matplotlib-in-notebook ?
    • PNG/PDF file to disk (no GUIs or interaction) : For pipelines or other scripting applications.
    • Scriptability to include a matplotlib-like rendering option (for users who want to customize easily?)
  • Interactive (need to evaluate feasibility for flagging) : Ability to zoom/pan/iterate through data, to draw boxes for “gathering metadata” and “editing flags”, to write new flags (at the end of box drawing and/or incremental) ?, to run autoflag algorithms and view the results (e.g. like task_flagdata’s “calculate” + “display” modes).
    • Asynchronous plotting - Triggering a plot request should not freeze up the GUI
    • Interruptability - Ability to cancel the plotting before plot is rendered, e.g., if the plotting parameters need to be changed.

Input Data Volumes

An approximate range of (source) data volumes on disk to design for.

  • Visibilities :
    • Current datasets (VLA/ALMA) : Few 10s to 100s of GB.
    • For ngVLA : Few to 100s of TB
    • ALMA-WSU : 10s of TB
    • For VLA : Multi-100GB
    • For VLBI/VLBA : Multi-GB
  • Calibration Tables :
    • Few GB to 10s of GB ?
  • Single Dish datasets
    • Few 10s of GB

Other Ideas (to be incorporated above as needed)