VLBA Software

This page summarizes the various bits of software used to make the VLBA a functional telescope. The list is known to be incomplete, especially in regard to software related to the Mark5A systems.

Typically the software listed here will be based on a package, not a single executable. In most cases a package has one or a small number of key executables, some additional utilities, and often some operating system integration scripts (e.g., for start at boot).

VLBA Control Computer Software

There is one control computer at each VLBA site, one at GBT, and at least one on the VLBA test rack on the first floor. Extensive installation instructions for these units can be found at https://staff.nrao.edu/wiki/bin/view/NM/Vlbacc .

Versions below are as of Jan 18, 2017.

Package Description Version Developer Installer Key executable(s) Repository Technologies RH 7 Notes RH 7 Package Ready
libevent packages install libevent-devel-2.0.21-4.el7.x86_64 and libevent-2.0.21-4.el7.x86_64     Colburn       necessary for CC software  
RH 7 CC test system vlb1-cc booted on RH 7   Colburn Colburn          
observe AKA "executor". Modern control system for VLBA observing. Based on the VLA Observation Executor. This program sends commands to hardware at relevant times in order to cause an experiment to be observed. It is not responsible for monitoring. 0.9.07-1 B. Clark helpdesk ExecServlet https://svn.aoc.nrao.edu/repos/EVLA/observe/trunk Java, RPM VLA executor already running on RH 7  
logExecutor Wrapper program for observe(executor), ObserveScriptMonitor and RemoteMonitorDataServer that collects stdout and stderr and packages into time-tagged log files (one per day per program). 1.2-1 W. Brisken helpdesk logExecutor, logOSM, logRMDS https://svn.aoc.nrao.edu/repos/VLBA/logExecutor C, RPM similar log programs already running on RH 7  
legacy A collection of legacy software and some newish software needing to link to legacy libraries 0.7-1 W. Brisken helpdesk mon2xml, rscreen, rcmd https://svn.aoc.nrao.edu/repos/VLBA/legacy C, Fortran, RPM This software will not be installed on RH 7 n/a
ObservScriptMonitor Watches a file ( observ.tx ) that contains a list of projects to observe and their start and stop times and commands the observe program accordingly. 0.1.21-1 Hichem helpdesk ObservScriptMonitor.jar https://svn.aoc.nrao.edu/repos/VLBA/vlba-osm Java, RPM jar should run on RH 7  
RemoteMonitorDataServer Robustly transfers monitor data and switched power data from the site to Socorro. Monitor data is eventually put into the archive (by loader) and switched power data is simply stored in /home/vlba/metadata/switchedpower/ . 0.1.20-1 Hichem helpdesk RemoteMonitorDataServer.jar https://svn.aoc.nrao.edu/repos/VLBA/vlba-rmdc Java, RPM jar should run on RH 7  
rspr The RDBE Switched Power Receiver Program to capture switched power data emitted from the digital back-end and write to files for eventual transport to Socorro. Also determines pointing solutions and conveys pulse cal data. 1.28-1 W. Brisken helpdesk rspr, logrspr https://svn.aoc.nrao.edu/repos/VLBA/rspr C, RPM Rebuild on RH 7, check for Python 2 -> 3 issues  
vlbacalserver Program to serve via http real-time information on pulse cal, switched power, tsys, tcal values, and recent pointing solutions. 0.3 W. Brisken helpdesk vlbacalserver https://svn.aoc.nrao.edu/repos/VLBA/vlbacalserver C, RPM One copy runs on each control computer and one copy runs on elbow (aggregator of all antennas), Rebuild on RH 7 for site CCs, keep an eye elbow version skew  
VME RT_system Original VLBA control and monitor system. It is still in use but its replacement has started. Until it is completely replaced it will run aside the observe program controlling and monitoring some hardware at the VLBA sites. VME VxWorks old system controller. Slated for replacement over next couple years. This does not run on the control computer but rather the VME "station computer". 5.4 B. Rowen B. Rowen VxWorks /home/vlba/software (SCCS) C, Real time Does not run on CC and will not be installed on RH 7 n/a
vwd The VLBA Watch Dog Watches various processes for activity and reports on timing errors, software not running when it should, and other oddities. 1.8-1 W. Brisken helpdesk vwd https://svn.aoc.nrao.edu/repos/VLBA/vwd C, RPM Rebuild on RH 7  
Alert Server Detects, stores and sends alert messages to operator displays   Rich       java, tomcat jar should run on RH 7  
obs2ti     Walter         leave Python 2  
VME boot image       Colburn       should remain on RH 7  
RDBE filesystem mount       Colburn       should remain on RH 7  

X-cube Software

There is one X-cube Ethernet Software Switch/Recorder (ESSR) installed at each VLBA site, one at GBT and one or more in the VLBA test rack. Installation instructions can be found at https://staff.nrao.edu/wiki/bin/view/NM/X-cube .

Versions below are installed as of Dec 21, 2016

Package Description Version Developer Installer Key executable(s) Repository Technologies RH 7 Notes RH 7 Package Ready
sendit improved packet recording and forwarding software to replace soft_switch   Walter         coming soon, implemented on RH 7  
RH 7 xcube test system vlb1-xcube-1 remote booted on RH 7   Colburn Colburn          
soft_switch A program that turns the X-cube computer into an intelligent packet switcher. Through a VSI-S interface the routing of packets from two input interfaces to two output interfaces can be controlled. Pacing of output packets to improve absorption by the Mark5C is performed using a special Pause and Pace register of the Intel 10GbE interfaces. An option to capture packets as they flow through the unit is implemented. Burst mode (short term recording at rates greater than those supported by Mark5C) is supported. Additional functionality for real-time processing of baseband data is being added. 0.18 Wainright helpdesk soft_switch, logsoft_switch https://svn.aoc.nrao.edu/repos/VLBA/soft_switch C, RPM Rebuild on RH 7, do not continue to use Intel NIC driver, remove 'pace' command  
xcubepcal Software to extract in real time pulse cal values from Mark5B or VDIF data streaming through the X-cube unit 0.22-1 W. Brisken helpdesk pcalxcube, logpcalxcube https://svn.aoc.nrao.edu/repos/VLBA/xcubepcal C, RPM Rebuild on RH 7  
mib_xcube A MIB-emulator interface to x3vsi. Ultimately this will be changed to integrate directly with soft_switch 0.003 H. Ben Frej helpdesk mib_xcube https://svn.aoc.nrao.edu/repos/VLBA/mib_xcube C, RPM Currently being re-retired, but will be modfied and re-implemented on RH 7 to support 'sendit' in the near future.  
xcuberec USNO data recorder, checkut1 utility   Walter         Rebuild on RH 7  
DiFX utilities     Walter         Rebuild on RH 7  
Network Monitor Software     Jay         Test and deploy  
RFI Cataloger Nathan's RFI cataloger   Alan?       Rebuild on RH 7  
Ethernet Interface Naming Preserve eth2, eth3, eth4 and eth5 interface names for soft_switch     Colburn       RH 7 Configuration  
libevent packages install libevent-devel-2.0.21-4.el7.x86_64 and libevent-2.0.21-4.el7.x86_64     Colburn       necessary for CC software  

Mark6 Hardware

Mark6 Recorder Status Table

Station Mark6 Software

A Mark6 recorder will be installed at each VLBA station.

Mark6 Documentation:

Mark6 SMART Data Utility

Mark6 Metadata Restore Utility

Mark6 Module Initialization and Conditioning

Mark6 Mounting and Correlating a RAID Module

Mark6 Module Mounting and Unmounting Issues

Mark6 Module State Changes

Mark6 Cable Connections

Mark6 Module Disk Positions

Software installation instructions for station-based Mark6 units can be found at https://staff.nrao.edu/wiki/bin/view/NM/Mark6.

Package Description Version Developer Installer Key executable(s) Repository Technologies Notes
jive5ab Data recording software provided by JIVE. 2.8.1 Harro Verkouter M. Wainright jive5ab http://www.jive.nl/~verkout/evlbi/jive5ab-2.8.1.tar.gz C/C++ Installed from source code by M. Wainright
mib_mark6 A program that connects to jive5ab to give EVLA-style monitor and control functionality as used by the Executor, the operator interface, and other VLBA online systems. 0.20 H. Ben Frej H. Ben Frej mib_mark6 https://svn.aoc.nrao.edu/repos/VLBA/mib_mark6 C MIB Emulator interfacing to jive5ab

Diskless Mark6 boot

William is working on a diskless boot for the Mark6 from the control computer.

RDBE Software

At each station, there are 2 RDBEs. The same software is loaded on the RDBEs using NFS mount to the control computer. A simple copy to the control computer, updates the software for both RDBEs.

Versions below are installed as of Sep 25, 2013

Package Description Version Developer Installer Key executable(s) Repository Technologies Notes
rdbe_server_starter Starts and watches over rdbe_server 1.1 H. Ben Frej H. Ben Frej rdbe_server_starter https://svn.aoc.nrao.edu/repos/VLBA/rdbe_server/ C  
rdbe_server The program that interfaces to the RDBE FPGA, attenuator board and synthesizer board. It provides a VSI-S software interface for external monitor and control. 2.0.0 H. Ben Frej H. Ben Frej rdbe_server svn+ssh://vault.haystack.mit.edu/svnrepos/RDBE and https://svn.aoc.nrao.edu/repos/VLBA/rdbe_server/ C  
mib_rdbe_starter Starts and watches over mib_rdbe 1.1 H. Ben Frej H. Ben Frej mib_rdbe https://svn.aoc.nrao.edu/repos/VLBA/mib_rdbe C  
mib_rdbe MIB emulator running on PPC interfacing with rdbe_server and the executor or any EVLA style software 0.154 H. Ben Frej H. Ben Frej mib_rdbe_starter https://svn.aoc.nrao.edu/repos/VLBA/mib_rdbe C  

4x4 Matrix Software (T450)

At each station, there is one 4x4 Matrix switch. This is a physical MIB. The software is saved on the MIB flash.

Versions below are installed as of Sep 5, 2013

Package Description Version Developer Installer Key executable(s) Repository Technologies Notes
T450 Provides the EVLA style monitor and control interface required by the Executor, the operator interface, and other EVLA M&C derived software to the T450 matrix switch. This module provides a full cross-bar switching capability of the analog IFs (A, B, C, D) to the 2 pairs of RDBE signal inputs. 0.998/0.007 H. Ben Frej H. Ben Frej   https://svn.aoc.nrao.edu/repos/EVLA/mib/trunk/src/VLBAIFSWITCH/ C, Nucleus OS, TCP, UDP, Multicast, XML Need to be loaded using the Xloader. Also Load the XML file. Latest image located in: /home/evla/software/MIB/bin/T450/Current

M401 Software

At each station, there is one M401 module. This is a physical MIB. The software is saved on the MIB flash.

Versions below are installed as of Sep 5, 2013

Package Description Version Developer Installer Key executable(s) Repository Technologies Notes
M401 Provides the EVLA style monitor and control interface required by the Executor, the operator interface, and other EVLA M&C derived software to the M401 utility module. This module controls band select switches / filters and the positioning of the ellipsoid. 0.998/0.002 H. Ben Frej H. Ben Frej   https://svn.aoc.nrao.edu/repos/EVLA/mib/trunk/src/VLBAM401/ C, Nucleus OS, TCP, UDP, Multicast, XML Need to be loaded using the Xloader. Also Load the XML file. Latest image located in: /home/evla/software/MIB/bin/bin/M401/Current

Operations Software

Package DescriptionSorted ascending Version Developer Installer Key executable(s) Repository Technologies Notes
Package Description Version Developer Installer Key executable(s) Repository Technologies Notes
VLBA Alert Server A program that gathers all alerts from the VLBA system and manages their current state, severity, descriptions, etc. The program also handles HTTP requests from various applications.   R. Moeser R. Moeser   https://svn.aoc.nrao.edu/repos/EVLA/alerts-server/ Java, Java Servlet, XML, JAX-B, HTTP Deployed to Tomcat on VLBA control computers. One instance per VLBA site.
OMS A standalone Java application for managing VLBA projects. Most of the data displayed by the application is backed by an Oracle database.   R. Moeser ?   https://svn.aoc.nrao.edu/repos/VLBA/oms/ Java, Jython, JDBC, RMI Config files and database result sets.
pn3anal Deals with "PN3DB" pointing test observations.
gethistory Get long term history of pointing and gain results. Derive the standard gains file.   R.C. Walker   gethistory     Not yet in revision control? Gain files end up in /home/jansky3/vlbaops/TCAL/ , specifically file vlba_gains.key for the 10 VLBA antennas.
ptanal Main VLBA pointing and gain analysis routine   R.C. Walker   ptanal https://svn.aoc.nrao.edu/repos/VLBA/Pointing/trunk/ptanal Fortran Some scripts used to drive the antennas to produce pointing data are in https://svn.aoc.nrao.edu/repos/VLBA/Pointing/trunk/Scripts
plotsum Plot history of many parameters based on gethistory output
plotts Plot long term history of system temperature and efficiency. Used by gethistory.   R.C. Walker   plotts     Not yet in revision control?
rotanal Processes data for determination of optimal subreflector rotation and focus settings.
tsmplot Program run by operations after every observation to plot system temperature values, weather, and pulse cal data from the legacy system.   R.C. Walker   tsmplot https://svn.aoc.nrao.edu/repos/VLBA/Tsmplot/trunk/tsmplot Fortran  
nrtfringetool Program to orchestrate a multi-station fringe test   N. Towne   nrtop, nrtcorr, nrtupload, nrtclean https://svn.aoc.nrao.edu/repos/VLBA/nrtfringediagnostic Python, DiFX  
clockhist Routine for looking at clock histories. Not in recent use, but perhaps should be.
plottilt Special routine to plot Pie Town tilt, which is observed to be changing in time in an unpredictable manner.
VLCj This is a collection of screens to monitor and control the VLBA. The screens were originally written by Bob Greschke.   R. Moeser R. Moeser   https://svn.aoc.nrao.edu/repos/VLBA/vlcj/ Java, Java Web Start To be phased out with the VME (eventually).
VLBA OpsPack This is the VLBA GUI including the VLBA monitor screen, the VLBA device browser, the VLBA alert screen, and some special purpose VLBA screens. This interfaces with the Executor and equipment exposing EVLA-style M&C. 1.7.5 R. Moeser / M. Bark     https://svn.aoc.nrao.edu/repos/VLBA/opspack Java, WebStart, JDBC, XML, JAX-B, UDP, HTTP It is web startable from: http://www.aoc.nrao.edu/asg-internal/software/vlba/
vex2difx This one package includes several important operations programs. vex2difx itself is a correlator-specific program (see details below). vex2opt is used to produce phased-VLA control files for VLBI, vex2script is used to produce control scripts for the Executor for VLBA observing, queueVex is used to set up all VLBA antennas and GBT for observing given a vex control file (this in turn uses vex2script for conversion to python scripts). goUSNO is a special script used to prepare a daily USNO UT1-UTC observation. rdbetsys is used by operations after each observation to produce tables of system temperatures that will be attached to correlator output for calibration of the data. plottsys allows operations to plot this system temperature data. 2.3.0 W. Brisken and M. Bark   vex2script, queueVex, goUSNO, rdbetsys, plottsys, vex2opt https://svn.atnf.csiro.au/difx/applications/vex2difx/trunk C++, Python Currently sharing repository with DiFX. difxio and difxmessage are dependencies. vex2script is tested through an automated test suite containing several example observation scenarios.
rdbepoint This program is still in development. It is intended to replace legacy system code for analysis of pointing data using data from the RDBE rather than the legacy baseband converters. 0.2 W. Brisken   rdbepoint, rdbepointmerge, ddcpoint https://svn.aoc.nrao.edu/repos/VLBA/rdbepoint C  
VLBA Monitor and Alert Loader This program monitors a directory for VLBA monitor and alert data that has been uploaded by a collection process at each VLBA site. The data arrive as XML files bundled in a zip file. This program extracts the data from the file and writes the data to the database.   R. Moeser R. Moeser   https://svn.aoc.nrao.edu/repos/EVLA/loader/ Java, JDBC, XML, JAX-B Deployed to Tomcat on chewbacca.
newgain Used by gethistory to derive new standard gain tables (used by operations and users)
gaintable Used by gethistory to make table of system temperature, efficiency, etc.
legacy tools Various small applications used by the VLBA ops and analysts. They are essential but quite old (90s). They were written to run on Solaris hosts but so far appear to be rebuildable on RHEL. They use a collection of legacy libraries contained in SVN under the "legacy" top-level directory.     J. Jacobs addTapeTimes, ce1ggsta, chkce1, clog/drano, downtime, ltce1, makesm, newce1g, onCall, purgece1, schmaker, swap, tapece12, tapes, upvlba   C Python Shell  
Scenario VLBA array scheduling and correlator scheduling tool   B. Clark ?   https://svn.aoc.nrao.edu/repos/VLBA/oms/   Part of the OMS package


Currently there are two active versions of DiFX installed.


This is the most recent stable version of DiFX. The base directory for this installation is: /home/swc/DiFX-2.2

Package Description Version Developer Installer Key executable(s) Repository Technologies Notes
difxio This is a library used to parse and create DiFX control filesets (.input , .calc , .flag , and .im files). It is used by several key DiFX programs. 3.1.0 W. Brisken W. Brisken   https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/libraries/difxio C Optionally can link to the JPL cspice library if spacecraft ephemeris evaluation is required.
difxmessage A library to generate, send, receive, and parse multicast messages used within the DiFX system. It is a requirement for other DiFX utilties. 2.2.0 W. Brisken W. Brisken   https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/libraries/difxmessage C, Python  
vdifio A library used to decode and manipulate baseband data in VDIF format. comes with several utility programs for analyzing and manipulating baseband data files. 0.4 A. Deller W. Brisken   https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/libraries/vdifio C  
mark5access A library used to decode baseband data in the Mark4, VLBA, Mark5B and single-thread VDIF formats. Comes with several utility programs for analyzing and manipulating baseband data files. 1.4.5 W. Brisken W. Brisken   https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/libraries/mark5access C  
difx2fits A program to convert raw DiFX output into FITS-IDI format for processing within AIPS. This is used by a majority of observations processed by DiFX to put the output data into a format that can be used by standard software. 3.2.0 W. Brisken W. Brisken difx2fits https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/applications/difx2fits C difxio is a dependency.
difx2mark4, makefits A program to convert raw DiFX output into Mark4 format suitable for processing within the Haystack Observatory Processing Software (HOPS). This is mostly used in geodetic applications but is also frequently used for mm-wave VLBI in the low signal to noise regime. 1.2 R. Cappallo (Haystack) W. Brisken   https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/applications/difx2mark4 C, Python  
vex2difx A program to take a vex (VLBI Experiment) file, as usually produced by sched, and create a set of control files for the DiFX correlator. A second input file, the .v2d file, is used to supply additional or overriding values. Full documentation is available by clicking here. 2.2.0 W. Brisken W. Brisken vex2difx https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/applications/vex2difx C++, python  
Integrated Performance Primitives (IPP) Intel's math library for efficient vector calculations. Intel W. Brisken   http://software.intel.com/en-us/intel-ipp   Math libraries
mpifxcorr This is the core of the DiFX correlator. It is a cluster application that makes use of many computer and many cores within each to perform VLBI cross-correlation. This is an actively developed international project with complete more information available here . 2.2 A. Deller W. Brisken mpifxcorr https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/mpifxcorr C++, MPI The core of DiFX. vdifio, mark5access, difxmessage, and IPP are dependencies.
mk5daemon A multipurpose program that runs on Mark5 units and DiFX cluster nodes to interface DiFX with the messaging system. In the Mark5C case it allows data recording as a substitute for DRS. Many Mark5 utility programs are packaged within. 2.2.0 W. Brisken W. Brisken mk5daemon https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/applications/mk5daemon C / C++ mark5access, vdifio, and difxmessage are dependencies. streamstor is required for any Mark5-specific use; parts of this package can be compiled without.
calcif2 This program computes an interferometric delay model based on the observed scans of a VLBI observation. It makes RPC calls to an instance of calcserver to do the critical calculations. calcif2 itself is largely responsible for interfacing CALC with the DiFX fileset format. 2.2.0 W. Brisken W. Brisken calcif2 https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/applications/calcif2 C difxio is a dependency.
calcserver calcserver is a program that exposes the scary details of the Goddard Calc program through a tamer RPC interface. This program was inherited by DiFX from the VLBA hardware correlator. 1.4 J. Benson, D. Gordon W. Brisken calcServer https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/applications/calcserver C, Fortran  
rcwlib This library contains functions used by SniffPlots among others. 0.99 C. Walker W. Brisken   https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/sites/NRAO/rcwlib Fortran  
SniffPlots Several independent plotting programs useful for evaluating a correlation. plotapd plots amplitude, phase, and delay as a function of time for all baselines to a reference antenna. plotbp plots either cross- or auto-correlation spectra. plotwt plots the playback weights as a function of time for each antenna. plotgps plots local clock vs. GPS and determines the offset. Mainly used for long geodetic observations. 0.99 C. Walker W. Brisken plotapd, plotbp, plotwt, plotgps https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/sites/NRAO/SniffPlots Fortran rcwlib is a dependency.
difxdb A collection of utilities to interact with various VLBA databases. difxqueue is used to manage correlator jobs. makemark4 is an outer layer script to run difx2mark4 on complicated experiments (not actually database related), mark5c2db will transfer some information from the new database to the legacy database to allow db2vex to operate properly, db2vex appends modules, clocks and EOP values to a vex file to simplify correlator setup, and difxarch copies data to the archive staging area. 1.16 W. Brisken W. Brisken difxqueue, makemark4, mark5c2db, db2vex, e2ecopy, difxarch https://svn.atnf.csiro.au/difx/master_tags/DiFX-2.2/sites/NRAO/difxdb Python, C, Database  
DOI The DiFX Operator Interface. Interfaces to the database to retrieve jobs to run and to spawn correlator processes as needed.   M. Guerra W. Brisken doi.jar https://svn.aoc.nrao.edu/repos/VLBA/DiFXGui/trunk Java, Database Development halted by lack of developers. W. Brisken can make very minor changes. Many outstanding improvements desired.


This is the evolving "trunk" version of DiFX. The base directory for this installation is: /home/swc/DiFX-trunk

More or less the same packages are available in trunk as are in the most recent version (above). A virtual svn trunk exists at: https://svn.atnf.csiro.au/difx/virtualtrunk . Checking out this directory will provide a snapshot of all supported DiFX packages.

User-facing software

Package Description Version Developer Installer Key executable(s) Repository Technologies Notes
sched VLBI scheduling program used for nearly all non-geodetic VLBI globally. Mainly supported for the VLBA. The sched package comes with several utilities as well as the main program, mostly used in support of sched itself. 11.10 R.C. Walker ? sched https://svn.aoc.nrao.edu/repos/sched Fortran Used by operations and external users. sched has an extensive test file set used to verify continuity with previous versions.

Python Software Conversion

The VLBA software was written in Python 2; however, the Python world has moved on and Python3 is becoming the norm and Python 2 has gone into stasis. Originally many packages were Python 2 only but the major packages now support Python 3 and some newer software is Python 3 only. To adapt to this, the VLBA python software should be gradually be migrated to Python 3 until all software is in Python 3.

  • All python modules should use the shebang line to explicitly select the python version:
    • #!/bin/env python2
    • #!/bin/env python3

  • Applications undergoing major work should be converted to Python 3 as part of that modification. Operations/Analysis, etc., should be informed of the conversion.

  • The computer-generated python that is derived by vex2script and executed by the executor uses an embedded interpreter and any revision of that will have to be done in sync with executor mods.

11 March 2019


Go here lboweb to look at the to-do and status of LBO web pages

-- WalterBrisken - 07 Dec 2012
Topic revision: r30 - 2020-10-16, HichemBenFrej
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