-
Notifications
You must be signed in to change notification settings - Fork 1
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.
Derived from CASR-385 and user-feedback.
- 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….
- 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.
- 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.
- 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.
- Application : for rendering and user interaction.
- Standalone application using Electron.
- Notebook
- 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.
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
- Learn from other exploration tools (take ideas from AIPS?)