Back to Joe's Notes

VEGAS Data Display

Purpose

Problem

Observers and operators do not have a way to quickly and easily view the data quality of their spectra during an observation. Problems can manifest themselves in unpredictable ways, so it is useful to look at the data from different perspectives. We already have the GBT FITS Monitor (GFM) Astrid spectral line plugin, but it's not well-suited for VEGAS.

Solution

Create a real time spectral display.

The VEGAS Data Display project exists to:

  1. fill the functionality gaps that exist in GFM regarding VEGAS data,
  2. be a prototype client for a GB "streaming" system, and
  3. be a prototype web-based observing tool.

Where GFM falls short

Typical Uses

Most users will likely view their data at a very high level to:

Design

System

As previously stated, one of the reasons for this project was to use the newly developed "streaming" infrastructure for the GBT. Members of the GB software group determined that this is best achieved using the ZeroMQ (ZMQ) library. Another purpose was to be a prototype web app, with an eye toward possibly developing or migrating other observer tools as browser-based applications. These project goals guided the design choices.

We use websockets so the server can push new data as it is observed to the client.

Server

So, the high level design is that a "display server" connects to one or more Managers to read a ZMQ stream, averages the data to reduce the size and push it to the browser client through a websocket connection. The client code allows some interactivity for data selection/filtering. Those display options are communicated to the server, which responds with new data pushed to the client.

Client

The client display includes both a 2d waterfall plot and a series of 1d plots. There is a spectrum plot below the waterfall plot and a time series plot to the side, both reflecting the current crosshair position on the waterfall plot for the row and column, respectively.

Waterfall Spectra

Constraints

Moving large amounts of data to a client's browser is computationally prohibitive. Without averaging, it is not possible to efficiently display many thousands of spectral channels of data on a screen with far fewer pixels.

Any change in the type of data displayed requires coordinated communication with a data server.

Implementation

The display server is implemented in python using the Tornado framework, both because it is Python (a familiar language) and because it supports websockets. The server reads ZMQ streams from GB M&C managers, reduces the volume of data and pushes it to a web client.

The web client is written in javascript, making use of the jQuery, jQueury-UI and highcharts libraries. The client primarily for passive display, but also allows choices about what data is to be displayed.

Dependencies

The display server depends on the M&C environment to provide streams from the VEGAS managers (one for each bank) and the LO/IF system to provide frequencies information via FITS files. Those FITS files are assumed to be in the /home/gbtdata/{project}/ directory where {project} is the project identifier for the current scan.

Installation Instructions

NB: These instructions should apply to any machine in GB, but have only been tested on "colossus".

Running the display

Live mode

Development mode

Note that this assumes you have your own M&C build. To build M&C, follow the instructions in the "Install test environment" section above.

Open issues

Other useful things to know about

References


  1. http://www.gb.nrao.edu/vegas/report/realtimedisp.pdf (NB: this is a proposal, not a formal specification)