[evla-sw-discuss] interim pointing solutions

Ken Sowinski ksowinsk at aoc.nrao.edu
Tue May 10 18:01:12 EDT 2005


This message carries on from the discussion of antsol that I began 
last month.  The topic today is pointing, in particular what should 
be reported when a pointing scan is executed and when should it be
reported.  I append below a struct which provides a description of
what the pointing analysis program provides that can be packaged for
the rest of the world.

Unlike antsol, there are valid results only after a sequence of
subscans.  I will call a sequence of subscans and the pointing offsets
produced a pointing trial; there may be one or more of these in one
scan.  The question is what must be reported after a single trial and
what, if anything, after the completion of a scan.  The results of a
pointing scan are useful in only three contexts: to produce pointing
corrections for referenced pointed observations, to produce a
collection of pointing offsets that PEEK may use offline to deduce an
update to the antenna pointing model, and to provide a snapshot of the
current pointing to operations as an aid in finding newly moved or
badly pointed antennas.

Let us take referenced pointing first.  In the current implementation
the pointing offsets are summed into an array which is cleared at the
beginning of a pointing scan.  When the scan ends we have available
for each antenna the sum of the offsets over all successful trials
and a count of the successful trials.  'Successful' is narrowly defined
to mean believable solutions for both az and el in both polarizations.  
At the beginning of a scan for which a pointing correction is desired, 
the division by the number of trials is carried out and the result for 
each antenna added to the a priori collimations.

For pointing model analysis we are a little more generous.  Each trial
is reported independently of the others and we do not suppress a trial
if no solution was obtained for one polarization.  As pointing offsets
are determined we write them to a .PNT file to be analyzed by PEEK.
For operations we are even more generous; whatever is found may offer
a hint to the operator as to how the antenna is pointing.  The results
of a pointing trial are immediately accessible to the operator.

The new pointing offset solver will create the pointing record defined
below.  After each pointing trial, records will be appended to a .PNT
file which should be compatible with the present file to avoid changes
to PEEK.  In addition the results will be added to all results for this
scan and packaged as an XML document to be sent to the executor.  The
pointing solver will know nothing about the intended use of the XML
documents, but merely publish them as a side effect of a pointing scan; 
the executor will use them or not according to information supplied in 
the observe script.  Second order referenced pointing is a matter private
to the executor.  There should be a utility to display any pointing 
results so that the operator can view pointing errors when trying to
find antennas.  





/* This record represents the results of ptgsol for the subarray given
   in subid for one pointing cycle.  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;          /* mhad  */
  double iat;          /* IAT in radians  */
  double lst;          /* LSt in radians  */
  char   mod[2];       /* observing mode (must 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 offsets[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_offsets.
*/
struct offsets {
  int id;                 /* antenna ID  */
  /* 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, along with pointing_record, represents what is to be 
   passed to the executor.  I expect it to be generated in the module 
   which prepares the packet to be sent to the executor.
*/
struct  ref_offsets {
  int   id;               /* antenna ID  */
  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