Next: Data Reduction Up: Table of Contents Previous: Description of the Princeton Experiment

IV. Programming Observations

Once a Guest Investigator proposal has been accepted, a program must be written by the Guest Investigator which commands the carriages to carry out the observations. This program, called an Astronomical Sequence List, is then translated by another program into a series of commands which are ultimately transmitted to the spacecraft. The program which does this translation, called the Command Generation Program, also acts as a simulator of the spectrometer carriages, and the print-out from this program is used to debug the Astronomical Sequence Lists. The Command Generation Program is available at Princeton, and it is normally expected that the Guest Investigator will come to Princeton to debug his Astronomical Sequence Lists once they are written. This will in general be done several weeks before the observations are carried out.

The Astronomical Sequence List, along with some preliminary data cards, is read into the Command Generation Program as a data check. The preliminary cards are described in Appendix D.

A. Carriage motion

Both carriages normally operate in increments of 1 step every 16 sec (16 sec = 1 SET time); an integration time of 14 sec is followed by 2 sec available for carriage motion. Four such steps take one spacecraft minute (equal to 1.049 Mean Solar Time minutes). Each carriage has a standard routine; an Astronomical Sequence List is simply an arrangement of commands for the carriages either to carry out standard routines or to slew (rapid steady motion along the spectrum).

A carriage 1 standard routine consists of an initial offset in the negative direction followed by 15 integration steps in the positive (towards increasing wavelength) direction, returning the carriage to the starting position. Such a routine takes four spacecraft minutes. Double (two adjacent) or triple standard routines can also be commanded, and it is possible to have a single, double or triple standard routine executed any number of times at the same position. For the U1 phototube, which as a bandpass of about 0.05 Å, each step is about 0.025 Å long, and a single standard routine covers approximately 0.35 Å. The V1 tube has a nominal bandpass of 0.10 Å, and its standard routine covers 0.70 Å in steps of 0.050 Å.

The carriage 2 standard routine is simply a continuous stepping in either direction with 14 sec integration times at each step. The U2 tube has a nominal 0.2 Å exit slit and moves in steps of about 0.2 Å. The V2 tube has a 0.4 Å bandpass and moves in steps of 0.4 Å. It is possible to issue a role reversal command, which allows carriage 2 to carry out the 15-step standard routines of carriage 1, with the normal carriage 1 step lengths; however, it is not possible for carriage 1 to execute the carriage 2 standard routine.

Both the exit slit bandpasses and the standard routine step lengths vary slightly with position on the Rowland circle, and it is sometimes useful when programming carriage motions to take these effects into account. In Figures 7 and 8 are shown the dependence of the standard routine step lengths and photo-multiplier bandpasses on wavelength. These plots and the fact that each carriage executes four steps per spacecraft minute during standard routines simplify the problem of timing the carriage motions so that the proper relative carriage positions at the beginning and end of each scan segment are achieved.

While the spacecraft can issue commands every quarter spacecraft minute (i.e. every SET time), the Princeton software which handles the scheduling is normally quantized into 1 minute command intervals (see section D, below, for an important exception to this). Furthermore, the carriage 1 and 2 standard routines are programmed in the hardware to start immediately upon issuance of the command or at the 1 minute mark following the end of any slew which is being executed on the relevant carriage. A carriage 1 standard routine will be held up until completion of a carriage 2 slew which is being executed. Carriage 2, however, can do its standard routine while carriage 1 is slewing, although electronic pickup of up to 300 cts/14 sec may be introduced into the U2 counting registers.

B. Writing an Astronomical Sequence List

Reproduced in this Guide is the coding form used in Astronomical Sequence List. We itemize here the entries shown on the form, with brief descriptions of each.

WL (columns 1-8): This is the wavelength to which one of the carriages is to be slewed. If no slew command is being given, this entry should be blank. This is a floating point number, and must have a decimal point. If carriage 1 is to be slewed to the wavelength given in WL, and a standard routine is then to be executed, the Command generation program will offset the carriage so that the standard routine will be centered at wavelength WL, be it a single, double, or triple standard routine; provided that the routine to be executed is specified in NI (see below). If N1 is blank when carriage 1 is slewed to wavelength WL, no offset will occur, and any standard routine which is subsequently commanded will have that wavelength at the long wavelength edge of the scan rather than at the center.

NWL (columns 9-10): This entry is used to specify whether the wavelength given in WL is a vacuum or air wavelength. In most tables, wavelengths listed shortward of 2000 Å are vacuum wavelengths, and those longward of 2000 Å are air wavelengths. Errors of up to about 1 Å (near 3000 Å) in positioning the carriages can be caused by failure to enter the proper integer in column 10.

M (columns 11-12) and N (columns 13-14): These two entries specify the photomultiplier tube which is to be slewed to wavelength WL. M = 1 (an integer in column 12) indicates carriage 1 and M = 2 indicates carriage 2. N = 1 (column 14) specifies the V1 tube if M = 1 and the V2 tube if M = 2. N = 2 specifies tube U1 if M = 1 and U2 if M = 2. Both M and N should be left blank if no carriage slew is being commanded.

NI (columns 15-16): This indicates whether the carriage 1 standard routine being commanded is a single (NI = 1), double (NI = 2), or triple (NI = 3) standard routine. If a wavelength assignment is made in WL, the entry in NI will cause the appropriate phototube to be offset from wavelength WL by the required amount so that the specified standard routine will be centered at that wavelength. If no slew is specified in WL (or in NSTEP or ENCODER, see below), the standard routine specified in NI will be initialized at whatever position carriage 1 was left in by the previous command, and will not in general (except when NI = 2) be centered there. NI is an integer and should be in column 16.

NSCAN (column 17-18): This entry specifies the number of times the carriage 1 standard routine indicated in NI is to be performed. Each routine will be centered on the same wavelength. NSCAN is an integer and must be right-adjusted in its two-column field.

KK1 (columns 19-20): This entry commands carriage 1 according to the legend printed at the top of the coding sheet. Briefly, the options are:

KK1 = 0:
No command; carriage 1 will continue to do whatever it was told to do by the previous command. If it was doing a standard routine, it will continue to do single standard routines at the same wavelength.
KK1 = 1:
Standard routine; carriage 1 will do the standard routine specified in NI the number of times indicated in NSCAN.
KK1 = 2:
Halt; carriage 1 halts. Warning - see item C.2 below.
KK1 = 3:
Slew + standard routine; carriage 1 will slew the appropriate phototube (indicated in N) to wavelength WL, offset itself by the amount required to center the specified standard routine (given in NI) at that wavelength, and do the standard routine the indicated (in NSCAN) number of times. The standard routines start on the minute mark following completion of the slew.
KK1 = 4:
Slew + half; carriage 1 will slew the appropriate phototube (indicated in N) to wavelength WL and halt. No offset will be performed unless a standard routine is indicated in NI or an offset is commanded in NSTEP (see below). Warning - see item C.2 below.

KK1 is an integer and must be punched in column 20.

KK2 (columns 21-22): This entry commands carriage 2 according to the legend printed on the coding sheet. The options are:

KK2 = 0:
No command; carriage 2 will continue to do whatever it was told to do by the previous command.
KK2 = 1:
Role reversal; carriage 2 is enabled to execute carriage 1 commands; the command issued in KK1 will be executed by carriage 2. Carriage 1 is disabled by this command. A carriage 1 standard routine if commanded will be executed by carriage 2 with the same size steps as are normally used in a carriage 1 standard routine. A slew command on carriage 1 is needed to remove the role reversal command.
KK2 = 2:
Standard routine +; carriage 2 will do a standard routine in the direction of increasing wavelength. This standard routine will continue until stopped or reversed by a subsequent command - see NUMO, below. The distance covered by this carriage 2 standard routine will be approximately 0.8 Å/min for tube U2 or 1.6 Å/min for V2.
KK2 = 3:
Standard routine -; same as KK2 = 2, except that in this case the standard routine is executed in the direction of decreasing wavelength.
KK2 = 4:
Halt; carriage 2 is halted. Warning - see item C.2 below.
KK2 = 5:
Slew + standard routine +; carriage 2 will slew the specified (in N) tube to the wavelength specified in WL and begin a standard routine in the direction of increasing wavelength. As with KK2 = 2 or 3, this standard routine continues until stopped or reversed by a subsequent command - see NUMO, below.
KK2 = 6:
Slew + standard routine -; same as KK2 = 5, except that the standard routine which is begun after the slew is in the direction of decreasing wavelength.
KK2 = 7:
Slew + half; carriage 2 will slew the specified (in N) tube to wavelength WL and halt. Warning - see item C.2 below.

KK2 is an integer and must be in column 22.

NCAL (columns 23-24): This entry turns a wavelength calibration lamp on and off, a capability which has rarely been utilized. (If this command is used between a carriage 2 slew + standard routine command and a carriage 1 slew command, NUMO must be set equal to 1 (see below) in the carriage 2 command to give the necessary 1-minute wait between slews - see C.3 below).

NSIGN (columns 25-26): This entry specifies the direction in which a slew commanded in NSTEP is to be executed. For a slew in the direction of increasing wavelength, NSIGN = 2; for a slew in the negative direction, NSIGN = 1. This entry should be used only of a slew magnitude is specified in NSTEP and a slew, slew and halt, or a slew and standard routine command is given in KK1 or KK2. NSIGN is an integer and must be in column 26.

NSTEP (columns 27-31): This entry specifies the magnitude of a slew or offset in units of steps which are about 0.025 A long in U1 and U2, and about 0.05 Å long in V1 and V2. Hence a slew of 100 steps (NSTEP = 100) for carriage 1 results in a change of U1 wavelength of 2.5 A and a change in V1 wavelength of 5.0 Å (quoted wavelength changes are nominal values; see section III.A). A similar slew for carriage 2 causes a change in U1 wavelength of 2.5 Å and a change in V2 of 5.0 Å. This entry is used with a direction specified in NSIGN as an alternative to assigning a wavelength in WL; WL is left blank when NSIGN and NSTEP are used to specify a slew, slew and halt, or slew and standard routine command issued in KK1 or KK2.

NSTEP can alternatively be used to command an offset in a carriage position which will be executed after a commanded (in KK1 or KK2) slew or slew and halt. In this case a wavelength is specified in WL and NSIGN is left blank. The direction of the commanded offset is specified by NSTEP. For example, if U1 is commanded (by KK1 = 4) to slew to wavelength WL and halt, and NSTEP = -10, U1 will slew to wavelength WL and then offset itself 0.25 Å in the negative direction. Normally this is used to offset carriage 1 so that a subsequent standard routine will be centered at the proper wavelength. NSTEP is an integer and must be right adjusted in its 5-column field.

NUMO (columns 32-34): When NUMO is left blank, any command in an Astronomical Sequence List will be issued on the first minute mark following the completion of the slews and of any subsequent carriage 1 standard routine which are requested in the previous command. An entry in NUMO specifies the number of minutes' delay in the issuance of the next command. This is most commonly used when a standard routine is being commanded for carriage 2, and is to be continued for some desired time before the next command is issued. For example if carriage 2 is given a standard routine + command (KK2 = 2) with NUMO = 43 minutes, carriage 2 will do a standard routine for 43 minutes in the direction of increasing wavelength. If a slew + standard routine (+ or -) is issued, and an entry is made in NUMO, the slew will be carried out, and then a scan of the specified duration will be executed. The scanning rate of U2 during its standard routine is approximately O.8 A/min, and the distance covered by V2 is about 1.6 A/min (see Figure 7). NUMO is an integer and must be right-adjusted in its 3-column wide field.

ION (columns 35-44): This is a comment entry which is normally used to name the atomic or molecular species whose spectral time is being scanned by carriage 1.

ENCODER (columns 45-51): This entry, rarely used, allows a carriage to be positioned by specifying a desired encoder value instead of specifying a wavelength in WL (each carriage is governed by an encoder whose reading determines the position of the carriage). The number of the carriage to be positioned must be specified in M (column 12). This command may be useful at the end of a program to return the carriages to particular encoder positions for the next program. An encoder calibration is necessary if this entry is to be used.

NCOM (columns 52-54): This is a right-adjusted integer which specifies the number of times the command is to be executed. If left blank, the command is carried out once. This option is useful in programs which command several adjacent carriage 1 standard routines.

REMARKS (columns 55-65): This is another comment entry, which the programmer may use to keep notes of the intended carriage motions, and which is not usually punched on the cards making up the formal Astronomical Sequence List.

NHV (column 78): If phototube V1 is to be used by an Astronomical Sequence List, commands must be entered to turn on and then off the high voltage to this tube, which is normally not used. Setting NHV = 1 causes the voltage to V1 to be turned on, and NHV = 2 causes it to be turned off. These commands must be on separate cards from any other commands in an Astronomical Sequence List, and are normally the first and last commands in a list which utilizes V1. They need not be included at all if V1 is not to be turned on.

LAST (column 80): This entry has two options in addition to the usual zero (or blank). LAST = 1 indicates that no more commands are to be processed, and is normally on the last card in an Astronomical Sequence List. LAST = 2 causes the Command Generation Program to allow time only for slewing and not for any carriage 1 standard routines. Hence the next command is issued at the completion of the slews commanded, before carriage 1 has begun any standard routines. This is useful as a means of positioning carriage 1 without issuing a halt command, which is sometimes undesirable (see section C, below). If for example a slew and standard routine is commanded for carriage 1 (KK1 = 3) and LAST = 2, the indicated carriage 1 phototube will slew to the wavelength specified and will perform the appropriate offset so that the indicated standard routine would be centered at wavelength WL, and then the next command in the Astronomical Sequence List will be issued.

C. Programming strategy

In this section are discussed some general rules of thumb which are useful in writing an Astronomical Sequence List.

1. Initiating an Astronomical Sequence List. In general the first two commands should be slews of the two carriages to the wavelength positions at which observations will begin. While it is desirable to enter the approximate initial encoder values desired via the preliminary data cards (see Appendix D), making the initial slews very short ones, the actual initial carriage positions may be entirely different from the values requested. It is best to assume that both carriages are initially halted.

2. Dual halts. Great care must be taken at all times to avoid issuing halt commands to both carriages at once; if this occurs, the satellite guidance is turned off. Hence if carriage 2 is halted and a slew is desired for carriage 1, a slew + standard routine is not desired while carriage 2 is halted (if for example it is desired that both carriages start routines at the same time), one may set LAST = 2 in the carriage 1 slew + standard command, in which case the next command in the Astronomical Sequence List will be issued as soon as the carriage 1 slew ends. (Typically this next command will start both carriages in their standard routines.)

3. Wait times. In estimating how long it will take for a series of carriage motions to be carried out, an extra one-half minute (on the average) should be allowed for every time a carriage changes from one mode of motion to another. It is very important to allow at least one SET time between the end of a slew on one carriage and the beginning of a slew on the other; if this wait time is not allowed, both carriages will slew on the second command, because the first carriage has not yet been taken out of the slew mode. Normally the Command Generation Program inserts the needed time automatically between consecutive slew commands; only when LAST = 2 or when the calibration lamp is being turned on or off can this be a problem.

4. Slews during integrations. It is undesirable to have one carriage slewing at any time while the other is doing a standard routine, because electromagnetic interference from the slewing carriage will affect the count rate measured by the phototubes which are integrating, degrading the data (see IV.A). Carriage 1 cannot do a standard routine during a carriage 2 slew. To eliminate a carriage 2 standard routine during a carriage 1 slew it is simplest to halt carriage 2 while positioning carriage 1 with a slew + standard routine command, with LAST = 2. Then the next command starts both standard routines.

5. Carriage 2 dipping mirror. Dispersed light reaches the carriage 2 exit slits by being reflected out of the plane of dispersion by a flat mirror. This mirror therefore can occult the carriage 1 exit slits, and it is usually desirable to avoid this. To do so, it is simplest to refer to Figure 9 and to avoid relative carriage positions indicated by the central wide strip on the plot.

6. Stray light. It has been found that stray light reaches the U1 and U2 phototubes through small vent-holes in the sides of the tube mounts. This is an effect which has to be taken into account in reducing data, and which causes a decrease in photometric accuracy. For the U1 phototube the problem can be eliminated by keeping carriage 2 positioned so that the dipping mirror occults the vent-hole in U1 tube mount. For a given U1 position, there is a fairly narrow range of carriage 2 positions (also shown in Figure 9) for which the vent-hole is blocked and the U1 exit slit is not. Since in most cases the U1 data are considered to be of prime scientific value, freedom of motion of carriage 2 is usually sacrificed in order to keep the vent-hole blocked. In a typical program designed to do U1 scans of a series of lines, carriage 2 can make a fairly complete scan of the spectrum while it is being positioned in this way, so no great loss of data need occur. Use of carriage 2 in this way is a complication in writing an Astronomical Sequence List, but one which is usually worth including.

7. Unexecuted carriage 1 standard routines. If entries are made in both NI and NSCAN, and LAST = 2 is not used, the Command Generation Program will schedule time for the specified standard routine, even though 1 may be halted and the standard routine not actually carried out. In this case issuance of the next command will be correspondingly postponed.

8. Consecutive slews followed by simultaneous standard routines. When it is desired to slew both carriages in consecutive commands, and then to start at the same time standard routines by both carriages, one has to be very careful to insure that a one SET wait time between slews is allowed, and that unwanted offsets are not introduced. To achieve this, carriage 2 is slewed first, with a slew + standard routine + command, leaving NUMO blank and setting NSTEP = -8. A halt for carriage 1 should be commanded at the same time. This command causes carriage 2 to slew to the specified position, offset itself 8 steps in the negative direction, and then, because the Command Generation Program automatically inserts the needed SET wait time, carriage 2 does a standard routine in the positive direction for one quarter-minute, bringing it back to the specified position (the steps referred to in NSTEP are the size of the carriage 1 standard routine steps, which are 1/8 the size of the normal carriage 2 steps; hence in one minute of standard routine, carriage 2 covers 32 rather than 4 of these steps). This command allows carriage 2 to be positioned at the specified wavelength without a dual halt being issued. In the next command carriage 2 is halted while carriage 1 is given a slew + standard routine, with LAST = 2; this causes carriage 1 to slew to the specified position and, if an appropriate entry is made in NI, to offset itself the proper amount so that the subsequent standard routine is centered properly. One should not do this step first, because when LAST = 2 the Command Generation Program does not insert the required wait time between slews. The following command then starts standard routines by both carriages.

9. Simultaneous slews. When both carriages must slew large amounts in the same direction, time will be saved if the two carriages slew together. To achieve this, a slew can be commanded for one carriage in the usual way, with the terminal wavelength(WL) specified together with NWL, N, and M (or with either NSTEP or both M and Encoder specified), and with slews commanded for both carriages in KK1 and KK2. Under these conditions the two carriages will slew simultaneously, covering the same number of steps in the same direction. This capability can also be useful when a series of lines is being scanned scanned with U1 while carriage 2 is halted in such a position as to shield U1 from stray light. In each successive command, the desired wavelength for U1 to scan is specified, with KK1 = 3 (slew + standard routine): if KK2 = 7 in each command, carriage 2 will slew with carriage 1 between standard routines, and will be properly positioned for stray light interception for much longer than would otherwise be the case.

10. V1 wavelength calibration. The wavelength calibration (as a function of encoder value) for the short wavelength portion of the V1 spectrum is incorrect, and the offsets shown in Table 6 for selected lines should be used in NSTEP when V1 scans are being programmed in this wavelength region. This will compensate for the inaccuracy of the calibration. However, before using these offsets, Guest Investigators should check as to whether the wavelength calibration has been updated.

D. The efficient scheduling mode

For certain types of observations requiring continuous carriage 1 scanning over extended intervals, substantial amounts of time can be saved by using the efficient scheduling mode, in which a carriage 1 standard routine consists of only 14 integration steps, followed by a slew to position for the next standard routine during the time (one SET) which normally would be used for the 15th integration step. Since the wavelength coverage of each standard routine is reduced by one step, a greater number of standard routines is required to cover a given wavelength interval. In spite of this, time savings of 10-15% are routinely achieved by use of the efficient mode in carrying out extended carriage 1 scans. The efficient mode is also advantageous in cases where repeated double or triple carriage one standard routines are carried out at the same wavelength.

To operate in the efficient mode, it is necessary to enter a 1 in column 25 of the preliminary data card which contains the initial carriage encoder positions (see Appendix D). If this entry (called MARK in the Command Generation Program) is left blank or set equal to zero, the Command Generation Program assumes that the efficient mode is not to be used, and simulates the carriage motion accordingly.

Writing an Astronomical Sequence List to be used in the efficient mode is very similar to programming with MARK = 0. The principal difference is that when MARK = 1, all wait times specified in NUMO must be in units of SETS rather than minutes. Furthermore, the entry in NUMO must always represent an integral number of spacecraft minutes; i.e., it must always be a multiple of 4. This is necessitated by the fact that, even though some operations under the efficient mode are carried out on a 1/4-minute time scale, many procedures (such as the initialization of standard routines) still can only be begun on a minute mark. The second example in section E, below, utilizes MARK = 1, and the entry in NUMO specifying a wait time of SET times corresponds to 232/4 =58 spacecraft minutes, sufficient time for U2 to scan from 1235 Å. An additional minor change occurs when programming in the efficient mode. When it is desired to repeat a double or triple standard routine at the same wavelength as the previous one, the initial slew should be 13 or 27 steps in the negative direction, respectively; whereas with MARK = 0 it should be 15 or 30, respectively.

E. Sample programs

Below are listed two sample Astronomical Sequence Lists, with explanations of what they do. Both contain typical kinds of commands, and it is hoped that they will be useful in helping the Guest Investigator to plan his observations.

Sample 1. V2 makes a complete scan from 1900 to 2010 Å, while carriage 1 is left positioned so that the V1 tube is occulted by the carriage 2 dipping mirror (this is sometimes useful as a monitor of background particle counts).

After an initial command to turn on the high voltage to V1, the next statement positions V2 at 1900 Å, as described in section C.8 above. Next, V1 is positioned at 2000 Å, which places it well within the region where it is occulted by carriage 2, as indicated in Figure 9. Although it is not critical in this case, we have used NI = 2 so that no offset will occur in the position of carriage 1 (if NI = 1 or 3, the Command Generation Program automatically offsets the carriage so that the subsequent standard routine will be centered; for NI = 2 no offset is required to achieve this.) The third statement then causes carriage 2 to execute a standard routine in the positive direction for 71 minutes, which, according to Figure 7, is required for V2 to scan from 1900 to 2010 Å. The dual halt command is followed by a card which causes V1 to be turned off and this is in turn followed by a final command consisting of a 1 in LAST (this tells the Command Generation Program that no more commands are to follow). MARK = 0 in this example, since the efficient scheduling mode has no effect on carriage 2 scanning times.

Sample 2. In this program U1 does two triple scans centered on the 1402.769 Å line of Si IV and a series of single standard routines across the C I lines at the vent-hole on the U1 tube is occulted. Carriage 2 scans in the negative direction during the U1 scan of 1402 Å, and is halted during the U1 scan of 1261 Å. U2 is then used to observe the Lyman Alpha line, scanning from 1245 Å to 1195 Å. MARK = 1 in this example, to exploit the efficiency gained by having carriage 1 slew on what would otherwise be the 15th integration step of each standard routine. The NCOM option is also utilized, so that the 6 U1 standard routines on the 1261 Å multiplet can be carried out by a single command.

The first command in this program positions U2 at 1530 Å, which is seen in Figure 9 to be near the long wavelength edge of the region for which the stray light in U1 is blocked when U1 is at 1400 Å. The second statement positions U1 for the triple standard routines on the Si IV line at 1402.769 Å; since N1 = 3, the Command Generation Program automatically offsets the carriage so that the triple standard routines will be centered on the specified wavelength. The 2 in column 80 prevents the U1 scans from actually being executed until the next command, which simultaneously begins carriage 2 scanning in the short wavelength direction. The two triple standard routines take 24 minutes; Figure 7 indicates that U2 will cover about 15 Å in this time, leaving it near 1515 Å, where it is still correctly positioned to block the stray light in U1. The fourth and fifth commands in the program position carriage 2 and then carriage 1 for the U1 scans of the CI multiplet at 1261 Å. The time needed to do this positioning is optimized by having both carriages slew together as the command which positions U2; the next command then slews carriage 1 the short remaining distance to its starting position. The sixth command in the program causes 1 to execute 6 standard routines, performing a 15-step slew in the positive direction before each one. The standard routines will be adjacent to each other, and the total coverage will be about 1.75 Å (seen from Figure 7 and the fact that when MARK = 1, each carriage 1 standard routine consists of only 14 integration steps). Following the U1 scans of 1261 Å, the next statement has KK2 = 6 and NUMO = 232, causing U2 to slew to the specified wavelength (1235 Å) and scan shortward from there for 232 SET's, or 58 minutes. Finally there are the dual halt and LAST = 1 cards, to terminate the program.