[evla-sw-discuss] more about interim pointing results
Ken Sowinski
ksowinsk at aoc.nrao.edu
Tue May 17 12:00:49 EDT 2005
I continue the discussion over disseminating pointing offset
measurements. Modified versions of the structs I distributed last
week are included here. The major difference is that the ref_result
struct is now entirely self contained for each antenna and provides
only what is needed to make referenced pointing work. Any other
information is assumed to be present in the executor. The array of
structs will be sent to mchost after every pointing trial and it is up
to mchost to decide what to do with them. The intent is that each
report is complete and independent of the ones before it in the same
scan. The alternative of sending results at the end of a scan was
rejected because where telcal sits, the end of a scan is not known
until the first record of the next scan is seen; that might be too
late for pointing results. Sending results after each trial continues
to be robust even if the operator does random skips around the file in
the Modcomps.
I have compiled a list of things that are present in the .PNT file
given to PEEK, but not available in the archive record from which we
will be constrained to run in the future. I claim only one item on this
list is critical and it can be reconstructed from other information.
1. The a priori pointing model as represented in the POINTING and
SYS?ROT files. This is required to be able to produce new, updated,
versions of these files which can be transmitted to the Modcomps to be
installed. While the Modcomps are still here this is not an issue.
After the Modcomps are gone we can generate SQL which can be used to
update the evla parameters database with the changes reported by PEEK.
Also found in the ANTENNAS file is the name of the pad which the
antenna rests on. Knowledge of this is important for bookkeeping, and
for the evla will be used to decide how to rotate the antenna tilt
when it is combined with the pad tilt. It is important to carry this
information with the pointing results and I propose to derive it from
the antenna baseline parameters in the archive record.
2. The temperature of the white and black balls installed at the
weather station. The intent was to give an estimate of cloud cover by
measuring how much the white ball was cooled through radiating to the
sky. This was never used in the pointing analysis. One of the two
sensors broke a few years ago and has never been fixed.
3. A flag indicating which wrap the antenna is on cannot be generated
from the archive record. PEEK makes no use of this. If it is deemed to
be required, the archive record could be modified to include a bit to
report this just as it does for over-the-top.
4. The antenna anemometer data is not available in the archive record.
Again PEEK makes no use of this and uses only the wind speed reported
by the weather station. This data will no longer be reported to PEEK.
We can entertain proposals for changes to the archive record after the
Modcomps are retired, but I strongly prefer to keep it unchanged while
the Modcomps are still in use.
/* This record represents the results of ptgsol for the subarray given
in subid for one pointing trial. It is intended for use with PEEK
and is lifted from the structure of the .PNT file that is currently
used to communicate results to PEEK. There will be one record for
each subarray in pointing mode.
*/
struct pointing_record {
char version[] = "Ver 10.0 June 2005"; /* PEEK wants this */
int subid; /* Subarray ID (1-5) */
int mjd; /* mjad */
double iat; /* IAT in radians */
double lst; /* LSt in radians */
char mod[2]; /* observing mode (will always be I?) */
char pid[6]; /* observing program */
char sou[12]; /* source name */
int qua; /* qualifier */
char band[2]; /* band code */
char cormode[4]; /* correlator mode */
float wx[5]; /* weather recorded at centerof pointing cycle */
int nant; /* number of antennas in subarray */
float trig[6] /* cos and sin of az, el, eta */
int nant; /* number of antennas in subarray */
int npnt; /* number of antennas with successful pointing solutions */
struct offset[27]; /* pointing results for npnt antennas */
};
/* this struct represents what PEEK needs. The version to be sent
to the executor is described below as ref_offset.
*/
struct offset {
int id; /* antenna ID */
char pad[8]; /* pad *NOT* AVAILABLE IN THE ARCHIVE RECORD */
/* Each of the quantities below is averaged over the two IFs of
corresponding polarization if both IFs are available.
*/
float razerr, razbeam; /* arc-min, normalized RCP */
float lazerr, lazbeam; /* arc-min, normalized LCP */
float relerr, relbeam; /* RCP */
float lelerr, lelbeam; /* LCP */
float rflux; /* measured apparant flux at 'on' in DJy */
float lflux; /* measured apparant flux at 'on' in DJy */
char flags[8]; /* space for quality indicators, OTT, etc */
};
/* This struct represents what is to be passed to the executor as
an XML document. I expect it to be constructed in the module which
prepares the packet to be sent to the executor from pointing_record.
An array of these will be sent to the executor after each pointing
trial with one element for each antenna with a successful solution.
I think this is all that is needed to implement referenced pointing,
but if I have omitted anything it can easily be added.
*/
struct ref_offset {
int id; /* antenna ID */
float trig[4]; /* cos, sin of az and el */
double time; /* EVLA timestamp at center of pointing trial */
char band[2]; /* Band at which pointing was measured */
float azerr; /* sum over all trials of az error */
float elerr; /* ditto for el */
int count; /* count of successful trials */
char flags[4]; /* might need this for various referenced
pointing variations */
};
More information about the evla-sw-discuss
mailing list