The functions in this class access the specified data in the sub-array data area and may convert the units and data types to something more suitable for general use. They also interpret the data and provide some derived quantities eg., the nPol function.
This code fragment shows how to initialise a VLASDA object and then use this object to determine how much data is in this record. It is assumed that the Bytesource object contains a VLA Logical record.
ByteSource VLARecord(...); VLARCA rca; VLASDA sda(VLARecord, rca.SDAOffset()); cout << "The record has " << rca.nAntennas() << " antennas." << endl; for (uInt c = 0; c < 4; c++) { cout << "CDA " << c; if (rca.CDAOffset() == 0) { cout << " is not used." << endl; else { cout << " has " << sda.nChannels(c) << " spectral channels and" << sda.npol(c) << " polarisations." << endl; } }
Construct this object to read data from the SDA of the given VLA logical record. The SDA must begin at the specified number of bytes from the beginning of the record (see the example above).
The destructor is trivial;
The copy constructor uses reference semantics.
The assignment constructor uses reference semantics.
Re-initialise this object so that it now reads data from the given VLA logical record. The sub-array data area that will be used begins at the specified number of bytes from the beginning of the record.
returns the number of data channels in the specified CDA (including the average channel)
returns the number of spectral channels in the specified CDA (excludes channel zero)
returns the observed frequency (in Hz), at the band centre for the specified CDA. This is the observed frequency after Doppler tracking has been applied. It will correspond to the middle of the centre channel if there are an odd number of channels and takes into account that some channels may have been correlated but discarded prior to archiving.
returns the observed frequency at the lower edge of the band, after correcting for channels that have been correlated and discarded prior to archiving the data. ie it returns the observed frequency of the lower edge of the first channel in the data.
returns true if Doppler tracking has been turned on for the specified CDA. If so then the observed frequency is calculated from the source radial velocity, the line rest frequency and the component of the earths velocity relative to the source (in the specified reference Frame).
returns the assumed rest frequency of the source radiation in Hz (for the specified CDA). This number is supplied by the observer and used in the doppler tracking calculations. The returned value is not meaningful if doppler tracking is not used.
returns the assumed radial velocity of the source in m/sec (for the specified CDA). This number is supplied by the observer and used in the doppler tracking calculations. The returned value is not meaningful if doppler tracking is not used.
Return the assumed rest frame that will be used when calculating the observers motion relative to the source (for the specified CDA). This frame is supplied by the observer and used in the Doppler tracking calculations. The returned value is not meaningful of Doppler tracking is not used.
Return the definition of Doppler shift used to convert the radial velocity to a frequency (for the specified CDA). This is supplied by the observer and used in the Doppler tracking calculations. The returned value is not meaningful of Doppler tracking is not used.
returns the bandwidth of an individual channel, in Hz, of the data in the specified CDA.
returns the total bandwidth, in Hz, over all the channels of the data in the specified CDA. Throws an exception if which > 3.
returns the total bandwidth, in Hz, of the front end filter in the specified CDA. Throws an exception if which > 3.
Return the correlator mode for this record. Only useful if you know what these codes are. The functions immediatly following this one are probably more useful as they interpret this code for you.
Return the 'electronic path' that the data in the specified CDA has travveled through. Returns 0 if the data in the specified CDA is from IF's A or C and 1 if the data is from IF's B or D. The returned value is meaningless if the CDA is not used in the current record. This information is obtained from knowing what the correlator modes represent.
Return the number of polarisations in the specified CDA. This information is obtained from knowing what the correlator modes represent.
return a Matrix indicating which if's contributed to which correlations within the specified CDA. The return Matrix always has two columns and the same number of rows as there are correlations. Each row indicates which IF from antennas one & two respectrively contributed to thw correlation. This function encodes the information in Appendix F1 of memo 188.
Return the subarray ID. This is a number between 1 and 4 indicating which subarray this data corresponds to.
Return the Array configuration as a string. The string will contain at between one and two characters and be somethings like "A", "D", "AD", etc
Return the source RA and Dec at the standard epoch of this integration (given by the epoch function). The returned Vector will always have two elements being the RA and Dec in radians.
Return the source name as typed in by the observer.
Return the source qualifier as typed in by the observer. This is really the scan number.
Return the integration time in seconds.
Return the observation time in seconds of the centre of this integration. Zero seconds means midnight on the day specified win the RCA.
Return the observation program id.
Return the observing mode
Return the observing mode in full glory
Return the calibration code.
return the reference frame for the field directions.
returns whether the data spectrum has been Hanning smoothed (and every second channel discarded). Always returns False for continuum data.