[evla-sw-discuss] considerations toward an interim DCAF

Ken Sowinski ksowinsk at aoc.nrao.edu
Tue Jul 5 13:14:54 EDT 2005


To be able to replace the Modcomps an interim version of Dcaf
(data capture in e2e parlance) is needed which creates archive 
records from the data presented by the old correlator.  This 
document outlines a proposal for how to create such a Dcaf.
'Archive Record' is not a term in the e2e glossary, but as it 
is used in the current VLA system to represent the final data
product, it is retained in describing the interim EVLA system.
'Interim' will always be used to mean observing with a combination
of VLA and EVLA antennas with the old correlator.  The words 'scan'
and 'subscan' will be used in the sense of the e2e glossary.  
Ultimately, software developed to support interim observing will be 
discarded. The rest of this document is a high level description of 
the work needed to be able to produce a working interim Dcaf; a more 
detailed description of the proposed changes to the archive record 
will be written in the next few weeks.

The primary requirement is that the interim Dcaf produce archive
records that differ as little as possible from the current archive
record in both syntax and semantics.  The current archive record
is described in VLA Computer Memo #188 and that memo is required
reading if you intend to understand this document.  Inputs to 
Dcaf are the correlator data stream and auxilliary data from the
Executor, Flagger and the Monitor Data Stream.  The output is the
archive record presented to at least one medium.  It is expected
that the archive record will be presented to the real time VLA
archive and to a tape device as a precaution against network or 
archive failure.  

More information than is currently available to the Executor is 
needed to create the archive record.  As the Executor learns how to
control the correlator more of the information will be available, but
not all.  The critical information lacking is the intent that is
currently embodied in .obs file fields such as cal code and observing 
mode, and observing sub-mode which is maintained in the observing 
system in realtime.  Obs2cript understands observing mode well enough 
to be able to generate a sequence of jython which can cause the antennas, 
and eventually the correlator as well, to carry out the actions required 
of any mode.  In the hybrid system now running, the Modcomp which is 
executing the .obs file is aware of intent and knows how to associate it 
with the correlator data to construct the archive record.  All this 
meta-information is lost in the combined obs2script and Executor 
implementations.  To remedy this will require extensive enhancements to 
both components.

obs2script
This program should really be called obs2py (or obs2jy) to allow for
a possible future executor which may accept some kind of script
which is not expressed in jython.  If that comes to pass we will need
translators for both systems for a while and it seems easier to deal
with if they have different names.  To deal with Dcaf obs2script
will have to generate a sequence of jython interspersed with the 
existing antenna control sequence which tells Dcaf what is happening.
this sequence will be ignored by the Executor except to pass it along 
to Dcaf.  Doing this will require a precise description of what the
Modcomps do with each of the observing modes we plan to support.  I
argue that we cannot take liberties with the implentation of the observing
modes because there are already existing downstream programs which depend
on the current implentation.

Executor
An obvious way to deal with this is to invent a dcafObject which
will mostly be a home for methods which can be used to send information 
to Dcaf.  We will send information as XML on sockets and do so at scan
and subscan events.  It is hoped that it will not be necessary to send
information at each integration, but a list of things that are expected
to change at integration events will be given below.  

Flagger
Flagger will have to learn to send information to Dcaf as well as the
Modcomps.  (Modcomps don't do multicast.)  The method and semantics of 
the communication can be private to Flagger and Dcaf.

Dcaf
Dcaf must be able to,
1.  Ingest correlator data.  To do this it needs to be able to determine
how much data to expect and when to expect it.  For each subarry it needs
to know how many antennas are in the subarray, Correlator Mode, BW, 
Hanning Flag, integration time.
2.  Ingest auxilliary information from Executor, Flagger and, very likely,
the Monitor Data Stream to be able to generate a representation of the
archive record.
3.  Create an archive record and publish it.  'Publish' can mean make it
available to one or more processes which will actually do I/O, or can
mean that Dcaf actually does the I/O.

Archive Record
For now I limit myself to listing the items in the archive record which
potentially change at each integration.  There are examples where the
cause of the change is very subtle.
RCA:  MJAD and IAT at the time the record is assembled.  This will be
      generated by Dcaf if it has a good enough idea of time.  
SDA:  Average (Integration) Time (*1)
      Stop Time (*2)
      Epoch and Apparant positions  (the former may change for moving objects)
      IAT, LST and geometry reference time
      Trig functions of az, el and parallactic angle
      Weather data captured during the integration
ADA:  Antenna control bits
      Flagging bits
      Nominal Sensitivity  (converts \rho to DekaJy)
      Peculiar phase (*3)
      Total Delay (*4)
      U, V and W (*5)
      FE and BE T_sys (*6)
      IF control bits  (I haven't examined these in detail,
                        they may be static)

*1  This can change during a scan if another subarray changes the
    integration time.
*2  This can change during a scan if the operator does an extend.
*3  This will change during the scan if the subarray is in a phased
    array mode.
*4  In addition to geometric changes, this will change during a scan 
    while in delay finding mode.
*5  When doing holography, U and V are usurped to represent the antenna 
    pointing offsets from the reference position.  This will change on
    subscan boundaries.
*6  FE T_sys will not be created for EVLA antennas.



More information about the evla-sw-discuss mailing list