Observing Automation Project

This page and those following contain information on a project I'm working on here at Southwest Research Institute to for automated operation of Lowell Observatory telescopes. Currently the 31" telescope can be used as an automated optical imaging system. This system has been in regular use as a queue-based observing system since February 2001. Up to 240 days each year are devoted to running in this queue-based mode. A variety of projects are supported in this mode and the list is growing. More details are available on how this system works.

This page provides an overview of how to command the system to collect astronomical data with links to the complete list of commands.

General command structure

A command is a single line of text which indicates the command and any information it might need. Commands that control the queue itself are words. All other classes of commands start with a single character prefix that indicates the destination of the command. The following table shows the value prefixes and their meaning:

c CCD camera
f Input file of commands
s Synchronization
t Telescope

Here are some example commands (a complete list appears elsewhere):

1 c 300 seconds
2 f allopen.cmd
3 s sun_above 0.0
4 t co 12:23:34.1 +15:32:43
5 pause

  1. Camera command that sets the exposure time to 300 seconds.
  2. File command that loads all commands in allopen.cmd
  3. Synchro command that waits until the sun is on the horizon (setting).
  4. Telescope command to slew to indicated coordinates.
  5. Queue control command to pause the execution of the queue.

Telescope control

All direct control and manipulation of the telescope is done via telescope commands. Most of the possible commands return immediately but there are a few that take a noticeable amount of time. There are no commands that should take longer than about 3 minutes under any normal circumstance. For those in the know about the precise format of a MOVE remote command, please note that some commands are reformatted for use in the queue and are translated as needed when executed. There are some safeguards in place to protect against invalid commands. However, it is very important to build clean command scripts that have no such errors. Every time there is a command failure (whatever the reason) the system will automatically notify the on-duty operator of the error. This situation is to be avoided at all costs.

CCD camera control

All data collection comes through suitable commands to the CCD control system. These commands take whatever time needed to collect the requested data. Some commands affect different camera settings and return immediately. But, there are some commands (not good ones) that could execute over a very long time. When setting up for taking data, you should think of this camera the same way you'd think of a traditional 35mm film camera. You setup all the possible exposure options (ie., arm the system), then tell the camera to begin collecting data. The amount of setup varies a great deal from one observation to the next depending on the complexity of the operation desired.

Target Acquisition

When pointing the telescope at a field or object of interest, you must always consider how the telescope gets to the right place. The pointing accuracy of the telescope is about 20-30 arcsec at the end of a large slew (say larger than 90 degrees). Small offsets are very accurate. There are three types of acquisition strategies that are used: blind, self-referencing and local reference.

Blind Acquisition

As the name indicates, you blindly assume that the telescope is pointed where you wanted it. Do not use this mode for accurate target locating unless you are moving something less than 2 degrees from the last known good position. The following shows an example of a blind acquisition where the telescope is moved and data collection commences immediately:

t co 12:43:31.3 +05:10:23
c object Interesting Field
c filter 1
c o 1

Self-referencing Acquisition

This method is used when the coordinates desired are coincident with a star that has no brighter neighbor within the field of view of the readout area of the camera. There are lots of possible variations on this scenario (exposure time, readout area, etc.). The following example shows a case where the pointing is known to be reasonably good (ie., normal) and the target star is isolate with no brighter neighbors within an arc-minute.

# Move to SAO 120107
c autofile off
c filter 2
c 1 seconds

# move and center
c object SAO 120107
t co 13:46:57.9 +06:01:37
f acqsubar.cmd
c o 1
c center
t uc

c area full

The sequence of commands here does the following: turn off file saving, set the filter to V, set the exposure time to 1 second, set object name, move the telescope, set the readout area of the CCD to the acqusition sub-array (about 1 arc-minute square), take one frame, center the telescope on the brightest object in the image, update the telescope coordinates to match the coordinates of the star, and finally restore the readout array to the full CCD. The final accuracy of the pointing will be good to an arc-second. The process of acquiring the object and centering adds just a few seconds longer to the slew.

Local reference acquisition

Sometimes the pointing desired does not correspond to an isolated bright star. To get accurate pointing in this case, you combine a self-referencing acquisition of a nearby star, and then do a small blind offset. Stars between magnitude 7 and 8 from the SAO or PPM catalogs make good local references. An example acquisition of a Landolt calibration field is shown below:

c autofile off
c filter 2
c 1 seconds
c object PG1047+003 field

# move to nearby setup star
t co 10:56:40.46  -01:10:07.9
f acqsubar.cmd
c o 1
c center
t uc

# move to field
t co 10:50:18.5 -00:01:12
c area full

This sequences looks much like the self-referencing case except for the final motion at the end. This acquisition sequence will be good to an arc-second or so.

Timing and synchronization control

Sometimes, telescope or camera commands are not useful until a certain time. The synchronization commands provide a mechanism to pause with the queue until the synchronization condition is met. A variety of commands are provided and it usually possible to write a set of commands that can run on more than one night. To ensure this, it is best to avoid commands that are based on a particular universal time.

Queue control

All of the commands in this category affect how the queue is controlled or filled while running. These commands are not added to the queue. Instead, these commands directly affect the execution of queue commands or modify execution conditions of commands not yet added to the queue. Those commands that affect current execution of the queue should never be used in files.

File input

All commands can be entered into the queue one command at a time or through files which may contain one or more commands. These commands can also be other file commands, just don't do a recursive file name inclusion or you'll generate an infinite loop of commands. A file is nothing more than a simple ASCII file with one command per line. Blank lines are allowed for readability. Also, any line that begins with '#' is treated as a comment line. There are "pre-defined" commands that are used to simplify the creation of command scripts and ensure better reliability for critical operational sequences (such as opening or closing the telescope). The use of these files is strongly recommended.

Back to my home page

Marc W. Buie, Southwest Research Institute