All the hard decisions in designing a script are whether a function
should be provided in the real-time system, or if it is part of the
observing preparation program. I suggest below some details for the
$SOURCE
blocks which have a good deal of software in the real-time
system. What this complexity gets you is that first, if the operator
finds it necessary to suspend operation of the observe file and then
restarts it, more sensible results are obtained, and second, a greater
variety of observe files may be written in a day-independent fashion
(that is, that the file run today may be used again tomorrow without
passing through the observe file preparation software again).
$SOURCE
blocks come in several forms. The first is the simplest and
probably the most common.
$SOURCE <source name> { type = STAR ra = <J2000 right ascension> dec = <J2000 declination> calibratortype = <NON | PHASE | AUXILIARY | FLUX | BANDPASS | POINTING> [label = <text to be passed to processing programs>] [processing = <list of $MESSAGE blocks>] } $SOURCE <source name> { type = MOSAIC ra = <J2000 reference right ascension for object> dec = <J2000 reference declination for object> tracking = <SMOOTH | JUMP> ! antenna pointing at phase reference or ! moving smoothly to next posn during obsn [label = <text to be passed to processing programs>] [processing = <list of $MESSAGE blocks>] centers = <ordered list of triads: ra, dec, dwell-time> }
This type of source block declares a table of locations, which are then accessed by an explicit or hidden variable, such that each time the source is visited, a new entry in the table is pulled out and used for the phase tracking center. Jumps, based on the durations specified here need to be synchronized so that they begin precisely at the end of correlator integrations. (As should any change of source.) I have suggested positions, rather than offsets, because I always have trouble remembering whether they should be added to the reference position to the the instant position, or vice versa.
$SOURCE <source name> { type = PLANET [label = <text to be passed to processing programs>] [processing = <list of $MESSAGE blocks>] position = < ordered list of tetrads: UTTime, geocentric ra, dec, distance > } $SOURCE <source name> { type = AZEL [processing = <pointer(s) to information used by postobserving processing>] [processing = <list of $MESSAGE blocks>] centers = < ordered list of triads: elevation, azimuth, dwell-time > }
This is used to position antennas to a given AZEL location, or set of locations.
The set of locations is intended for the use of this for use to generate data for a tipping curve, or for holography with a transmitter. The other common uses for az-el coordinates - parking the antenna for technician access or putting the array into stow position - will likely have convenient commands in the operator and technician interfaces, and are less likely to be done through the observing script.