PlotMS Documentation

Casapy Interface to the Plotms Task

  • user starts casapy then invokes plotms:
$ casapy
CASA <2>: plotms(vis='/home/uniblab/casa/trunk/test/Plotms/Maw/maw.ms')                                                                   
  Out[2]: True
  • arguments are listed here
  • This runs $CASAPATH/python/2.7/plotms_cli.py:
    • ./build/tasks/tasks.py:81:from plotms_cli import plotms_cli as plotms
    • result = plotms()
    • what is plotms()?
      • from task_plotms import plotms
        • $CASAPATH/python/2.7/task_plotms.py (source: gcwrap/python/scripts/task_plotms.py)
          • from taskinit import *
            • $CASAPATH/python/2.7/taskinit.py
            • from casac import *
            • pmtool = casac.plotms
            • pm = pmtool()
        • gcwrap/build/tools/casac.py: plotms = casac.plotms.plotms
        • task_plotms.plotms sets arguments using (for example) pm.setShowGui( showgui ) (this must be the first call in task_plotms for plotms ctor)
          • setShowGui calls launchApp(), which executes (execlp) casaplotms (PlotMSDBusApp::APP_NAME = "casaplotms") if display is set, app.dbusName() is empty, or dbus service is not available
            • dbusName is something like "edu.nrao.casa.plotms_529" where 529 is casaplotms pid
          • task_plotms calls to set other arguments are carried out via DBus XML calls
        • then it calls pm.update(), which returns True/False which is returned to plotms_cli
  • swig files are in gcwrap/build/tools/; swigged file is plotms.py, installed in $CASAPATH/python/2.7/__casac__/plotms.py
  • this calls plotms methods in gcwrap/tools/plotms/plotms_cmpt.cc
    • launchApp() starts casaplotms process if not already running
    • QtDBusXmlApp constructs an XML message and transmits it over DBus
  • PlotMSDBusApp receives XML message and updates the plotms model/state
    • Each plotms parameter or group of parameters is one DBus XML call
    • When all params are set, plotms calls update() (task_plotms -> plotms_cmpt -> PlotMSDBusApp::update()) which calls PlotMSApp::addOverplot to plot

Basic UML Diagrams (not comprehensive)

These diagrams give the developer a feeling for the layout of the plotms code (code/plotms), which also depends on the code in code/graphics/GenericPlotter and code/casaqt

PlotMS Architecture

  • PlotMS Architecture Overview:
    plotms.jpg

PlotMS Threads

  • PlotMS Cache, Draw, and Export Threads:
    plotms threads.jpg

PlotMS Plotter

  • PlotMS QPPlotter Architecture:
    plotms qwt.jpg

Plotms Documentation Files

  • gcwrap/tasks/plotms.xml
    • defines output of help(plotms) in casapy
  • gcwrap/tools/plotms/plotms.xml
  • gcwrap/build/tools/casaplotms.xml
  • gcwrap/python/scripts/task_plotms.py
  • code/plotms/apps/casaplotms/casaplotms.cc (cli args different from plotms within casapy!)
    • defines output of casaplotms -h and --help to describe available arguments

Plotms Architecture Review

-- PamFord - 2014-09-05

Topic attachments
I Attachment Action Size Date Who Comment
plotms.jpgjpg plotms.jpg manage 95 K 2015-11-02 - 11:55 PamFord Basic UML diagram of PlotMS Architecture
plotms.vsdvsd plotms.vsd manage 1 MB 2015-11-03 - 11:24 PamFord Visio file of PlotMS architecture from which UML diagrams were made
plotms_qwt.jpgjpg plotms_qwt.jpg manage 105 K 2015-11-03 - 11:14 PamFord Basic UML diagram of QWT interface
plotms_threads.jpgjpg plotms_threads.jpg manage 70 K 2015-11-02 - 17:09 PamFord PlotMS Threads
This topic: Main > TWikiUsers > PamFord > PlotMSDocs
Topic revision: 2015-11-03, PamFord
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback