OPTICAL POINTING

and pointing in general (to some extent)

Containing the following sections:

Introduction
Pointing files for optical pointing
To get the CCD camera started
UIP commands for optical pointing
To extract the data from the log file to make a pointing file
Running POINT (the pointing data reduction program)
What the pointing constants are
256 theta measurements
Format of pointing logs

Introduction

Optical pointing at the CSO is a lot more automated than in most places. We have succeeded in making it one of the most boring forms of operation, while at the same time achieving fairly uniform sky coverage of 700+ data points. This is the complete opposite to what it used to be like, a real eyestrain that needed constant attention and at the end of a night you walked away with maybe 80 star measurements of a somewhat random distribution.

The software involved was written/contributed by:
Taco
Todd Groesbeck
Lynn Holt
Martin Houde
Maren Purves

return to top of document

Pointing files for optical pointing:

We have some canned procedures for optical pointing (i.e. pre-set up grids) that (right now) live in USER:[MAREN]:

BACK_AND_FORTH.COM;1       2/3         6-AUG-1996 12:15:59.18
NOREV_ASC_NOTILT.COM;20    4/6         1-JUL-1996 06:34:53.39
NOREV_DESC_NOTILT.COM;5    3/3         1-JUL-1996 10:44:26.94
POI_30BY10_REV.COM;1       8/9        27-JUN-1996 20:58:31.89
POI_30BY14_REV.COM;1       6/6         6-AUG-1996 05:36:27.64
and some that live in USER:[MAREN.UTIL.POINT.POINT_FILE]:

AZREV.COM;1                3/3        30-AUG-1995 06:44:07.78
BIG_POINT.COM;1           13/15       30-AUG-1995 15:07:31.03
NOREV.COM;2                9/9        29-AUG-1995 08:55:41.79
NOREV_45.COM;1             2/3        29-AUG-1995 09:21:31.34
NOREV_55.COM;1             6/6        29-AUG-1995 09:22:05.49
NOREV_65.COM;1             2/3        29-AUG-1995 09:22:52.99
NOREV_75.COM;1             2/3        29-AUG-1995 09:23:28.81
NOREV_ASC.COM;2           14/15       13-APR-1996 06:01:26.91
NOREV_DESC.COM;4           8/9        13-APR-1996 10:52:53.69
NOREV_DESC_NOTILT.COM;1    8/9        13-APR-1996 06:03:23.12
POINT.COM;127              7/9        26-AUG-1995 15:48:48.15
POINT_45_20.COM;1          5/6         1-SEP-1995 02:26:06.14
POINT_NOREV.COM;2         14/15       29-AUG-1995 06:01:31.18
However, for checking encoders you only want to track one star (at least to start out with).

return to top of document

To get the CCD camera started:

The PC that controls the camera is mounted on the hex plate together with the camera control box. Monitor, keyboard and mouse are in the control room, run over an extender. If you don't have keyboard control (this doesn't happen often but it does happen) you'll have to reboot the PC (go to a reasonably low ZA, otherwise it is hard or impossible to reach). To be on the safe side, at the C:\ prompt, type SETBOR. This will copy in the correct CONFIG.SYS and AUTOEXEC.BAT files and then reboot. After rebooting it will leave you in a directory called C:\BORLANDC\LYNN. Now type CAMTST. This will give you a simple ASCII menu with several options. To check out the camera, slew to a star (from UIP), do a sky frame and display it (these are options 5 and 9 if I remember correctly). The camera program is set up by default to take a 400 x 400 pixel subframe centered on the center (512, 512). This can be changed but generally isn't necessary.

When you start the optical pointing run (when the camera and everything else is running) you will want to go to VAX control, option v.

return to top of document

UIP commands for optical pointing:

the UIP commands you need are

POINTING OPTICAL (this sets the fixed offsets)
CATALOG BRIGHT_STAR (opens the Bright Star Catalog)
ACQUIRE 1 1 (to set low acquire limits)
probably VERIFY/ALTAZ to make sure you picked a star about where you want it
and to do the actual pointing something like either:
POINTING/AZ=-60/ZA=5/REP=3/EXP=500
this picks the star closest to the specified altaz position where:
REP: number of repetitions on the same star
EXP: exposure time in milliseconds (minimum the camera can do is 11)

Or:

OBSERVE/OPTICAL=<n1>/REP=<n2> <source>

this will observe the specified source where:
<n1> is the exposure time in milliseconds
<n2> is the repetition count.

For checking 256 theta you can set the number of repetitions to 100 or 200.

The data are being logged in a directory with the logical name PNT_DIR in a format that for each measurements lists weather, pointing constants used, tau, position and offsets (of course) and a number of other things that may or may not be useful in each case but are sometimes vital (see below for format).

Communication between UIP and camera PC is by files written into the directory USER:[CCD]. The UIP writes a file named VAX.COM which contains the exposure time and offsets. The camera PC looks for this file, reads it, does an exposure according to the instructions and deletes the file. (Caveat: as the UIP runs in the VAX it will write another file with a higher version in case there already is one. This can give the camera PC program hickups). After the exposure is fitted the PC program writes 2 files: PC.FIL and FLAG.FIL. (There's 2 files for the reason that sometimes the UIP would open the first one before the PC finished writing it which would give both hickups. Now the first file is only read after the second one gets written. This second file is for handshaking only, its contents don't really matter). The PC does not know versions (it runs DOS) and will balk if one of the files already exists. The VAX will read PC.FIL once it finds FLAG.FIL and will display and log the results of the fit and then delete the 2 files.

Sometimes the optical pointing system hangs up for no good reason (it does that more often when there is more going on the VAX, and I've seen it not hang up at all for whole nights if nothing else was going on). If this happens it is necessary to stop the UIP and delete the files mentioned above in USER:[CCD]. In case of this happening the last data point logged in the log file is usually missing a line and crashes the conversion program CNV. It is in this case necessary to edit the log file and delete the measurement that was logged incorrectly.

return to top of document

To extract the data from the log file to make a pointing file:

SET DEFAULT [MAREN.UTIL.POINT.CNV]

RUN CNV
R (as in 'read')
PNT_DIR:96OCT10_HOUDE_OPTICAL.OPTICAL (i.e. the file name) (then it prompts whether you want to use these data as radio data or optical data, as we sometimes use radio data to fit optical pointing constants, for optical data the reply is of course O) I (this takes the initial fixed offsets out, and subtracts the same amount from each measurement, this is more important for radio data than for optical data)
W (as in write)
<whatever you want to call it>
Q (as in 'quit').

This will extract the whole log file. - So to get only the ones that you want to use, just delete the rest ...

You can RUN POINT from the same directory (this is the version with 11 constants). For radio data to fit T terms, reply R to the OPTICAL OR RADIO? prompt in CNV and then RUN T instead of RUN POINT.

CNV has been modified to allow reading of optical and radio files, which have coordinates logged with different precision, with the same version of the program (R reads optical files, L reads the lower precision radio files - L will not be necessary anymore if the logging of radio data gets modified to store the coordinates with more accuracy as well).

return to top of document

Running POINT (the pointing data reduction program):

POINT prompts you for the name of your datafile when you run it up. It says you can get out of that by ^C but it lies, you cannot.

POINT has a model with 11 constants, 7 of which are physical and the other 4 are fudge terms. We are using all of them right now.

Some of the commands:
A(llfit) fits all meaningful combinations of the original 7 constants and displays the results (it doesn't apply any fits to data). It also allows you to specify other combinations
F(it) fits the data, does a statistical analysis, applies fits if told so
P(lot) plots data in rectangular panels
V(ector) plots data and offset vectors either rectangular or polar
L(oad) allows you to load a new data file (or the same one again)
Z(ero) zeroes all pointing constants ... if you want to ever see raw data
? displays a list of commands

There are more commands to it, but they aren't used very often. ? displays them

return to top of document

What the pointing constants are:

The following is a comment copied out of FORTH_ANT:SERVO.TXT:

	^ AZC & ZAC ARE ADDED TO THE NOMINAL REQUESTED POSITIONS !!!
	^ AZCSLOW=C2+C1/SINZA+[C4*SINAZ+C5*COSAZ+C3+R/L]COSZA/SINZA
	^	  + C8*SINZA
	^ AZ CORRECTION TO ENCODER COORDINATE- NOT ON SKY
	^ ZACSLOW=C6+SINZA*C7-C4*COSAZ+C5*SINAZ+F/A
	^	  + C9*SIN(2*ZA) + C10*COS(2*ZA)
	^ AZC=AZCSLOW:   ZAC=ZACSLOW

implemented with the following code from SERVO.TXT:

	THEN
	C2F @. C1F @. PSZA @. F/ F+
	C4F @. PSAZ @. F* C5F @. PCAZ @. F* F+ C3F @. F+
	L/RSMO @. F+
	PCZA @. F* PSZA @. F/ F+ PSZA @. C8F @. F* F+
	C6F @. C7F @.
	PSZA @. F* F+ C4F @. PCAZ @. F* F- C5F @. PSAZ @. F* F+
	A/FSMO @. F+ PS2ZA @. C9F @. F* F+ PC2ZA @. C10F @. F* F+
        RAZ @. DUP. 0.0 F< IF 2PI F+ THEN C11F @. F* F+
	DUP. ZACSLOW !. 1SEC F* ZAC !.
	DUP. AZCSLOW !. 1SEC F* AZC !. ;

c1: AZ collimation error
c2: AZ encoder error (one could call that the optical fixed offset in AZ)
c3: axis non-orthgonality
c4: N/S location error (also correcting for fixed N/S tilt)
c5: E/W location error (also correcting for fixed E/W tilt)
c6: ZA encoder error (one could call this the optical fixed offset in ZA)
c7: ZA structural sag term
fudge terms:
c8: AZ error with sin (ZA)**2 ??
c9: ZA error with sin (2*ZA)
c10: ZA error with cos (2*ZA)
c11: ZA error with 1/cos (za)

from USER:[TDG.POINT.TEST_CONSTANTS]FITCON.FOR:

	            f( 1 ) = 1
	            f( 2 ) = sza
	            f( 3 ) = cza
	            f( 4 ) = cza * saz
	            f( 5 ) = cza * caz

	            f( 8 ) = sza * sza    !!!!! new term AUG 89

	            g( 4 ) = - caz
	            g( 5 ) = saz
	            g( 6 ) = 1
	            g( 7 ) = sza

	            g( 9 ) = s2za         !!!!! new term AUG 89
	            g( 10 ) = c2za        !!!!! new term AUG 89

	            g( 11 ) = 1. / cza       !!!!! test term MAY 91

C8 was first set to something else than zero in October '94. There was a discrepancy found at the time between the FORTH and the fitting program which was then fixed.

return to top of document

256 theta measurements:

To check for 256 theta errors, point to a star, set the camera to do 100 (or so) repetitions and wait ... (this is the most boring part of optical pointing because the telescope doesn't even slew).

These data will get logged in
PNT_DIR:<date in form yy<mon>dd>_HOUDE_OPTICAL.OPTICAL.

To extract and reduce 256 theta data from optical pointing data:

SET DEFAULT USER:[MAREN.UTIL.POINT.CNV]
RUN CNV

in cnv: R(ead), file name PNT_DIR:<96feb8>_HOUDE.OPTICAL
the answer to OPTICAL OR RADIO doesn't matter for this
G (for Greg file), output file name 256.DAT quit out of CNV_NEW

RUN [RTM.HOLOGRAPHY]LOOK_FOR_256

(this takes 256.DAT as the input file and produces an output file called TEST.TXT - yes, we are very inventive with these names)

then GREG
@PLOT_256

return to top of document

Format of pointing logs:

The automatical pointing logs contain the following:

Header:

First line:
More or less identical to the first line expected by the point program
Second line:
Optical pointing constants
Third line:
T term coefficients

Data:

First line: (pretty much the same as expected by the point program)
Source name
UT
UT date
AZ
ZA
AZ Offset
ZA offset

Second line:
Optical pointing constants (sometimes people change them in the middle of the night)

Third line:
FAZO of previous point
FZAO of previous point
TAZO
TZAO
temperature used to calculate refraction
pressure used to calculate refraction
humidity used to calculate refraction
resulting refraction
tau at 225 GHz
measured temperature
measured pressure
measured humidity (if the calibration changes, this has to be changed in the UIP five_point and write*log_entry routines as well)

return to top of document

back to CSO reference page