The VisAO Camera
Data Reduction

Guide to reducing VisAO data. More...

Introduction to VisAO Data Reduction

This is a basic overview of basic VisAO data reduction.

FITS Headers:

Data contained in the FITS headers of VisAO data are read from the end of the readout of the camera, that is from the end of the observation plus the readout time. Due to polling times and update latencies, these data could be even several seconds older. Note that the readout time of the camera does not depend on exposure time, and the longest readout time of the camera is 6.7 seconds, and will usually be much shorter.

The FITS keywords most useful for data reduction are:

OBJECT = 'Unknown ' / Object Name
PARANG = -115.9957 / Parallactic angle at end of observation (degree
ROTANG = 0. / Rotator angle at end of observation (degrees)
ROTOFF = 244.0043 / Rotator offset at end of observation (degrees)
AOLOOPST= 'CLOSED ' / Loop status
EXPTIME = 0.1491869375 / CCD47 exposure time (sec)
VIMTYPE = 'SCIENCE ' / Image Type
VFW2POSN= 'SDSS z''' / Filter name in VisAO Filter Wheel #2
VFW3POSN= 'Open ' / Filter name in VisAO Filter Wheel #3
VWOLLSTN= 'OUT ' / Status of VisAO Wollaston
VSHUTTER= 'OPEN ' / Status of VisAO Shutter

The complete VisAO FITS header can be viewed here: Complete Fits Header.

Image Types

The VIMTYPE keyword can have the values ACQUISITON, SCIENCE, SKY, DARK, or FLAT. During a typical science observation, some combination of ACQUISITION, SCIENCE, SKY and/or DARK images will be contained in the same subdirectory. The VIMTYPE keyword can be used to sort images.

Bias and Dark Subtraction

The bias level of the little joe 47 depends on temperature of the CCD Electronics box (mounted on the NAS). This box is glycol cooled to ambient temperature, and so will change with time. The normal method for compensating for CCD bias drift is to use an overscan region of the chip as an estimation of bias. This capability exists for the VisAO CCD47, but has not been implemented yet, mainly due to its impact on speed, the fact that it only works on full-frame modes, and Jared just never got around to it. VisAO does not have the ability to take true zero-length bias frames, rather we just take full-length shutter-closed dark images to track bias level.

Typically, a short sequence of shutter-closed darks is taken periodically throughout a science data set. A master dark is taken at the beginning and/or end, and the interim darks are used to scale the master dark with time. Note that the CCD 47 has two amplifiers with slightly different characteristics, so the two halves of the chip should probably be treated independently in dark subtraction over long data sets.

De-rotating VisAO Images

The ROTOFF keyword, which comes from the TCS, contains the nominal value by which to derotate an image to get North-up East-left (NUPEL). For a VisAO image there is an additional rotation of 90 degrees due to the overall mounting orientation, and a small offset from there which is calibrated run to run to account for the as-built and as-mounted orientation. To get a true NUPEL image (whether rotator tracking or rotator off) use:

\[ DEROT_{VisAO} = ROTOFF + 90.0 + NORTH_{VisAO} \]

where $DEROT_{VisAO}$ is the amount, in degrees, to rotate counter-clockwise. The exact value of $NORTH_{VisAO}$ will be provided as part of each run's calibrations (see below for our nominal value). Note that PARANG contains the TCS value of the parallactic angle at the end of the observation, and ROTANG contains the value of the rotator encoder angle, and $ROTOFF = PARANG+ROTANG$.

Astrometric Calibration

During each run we will perform astrometric calibrations of the VisAO camera. As of 2014 May 6 we have not yet analyzed this data for 2014A. A quicklook performed during the run showed no major change from our previous values of:

$NORTH_{VisAO}$ = -0.59 +/- 0.3 degrees

$platescale$ = 7.9 +/- 0.02 mas/pix

See Males et al 2014 for the details of these numbers.

Gains and Readout Noise

The CCD 47 readout rates and gains are changed often to optimize sensitivity and control saturation. A common situation is to have frames in one setting where the primary star is saturated, and a set of unsaturated frames in a faster frame rate and/or lower gain setting. Each camera program, which consists of pixel rate, window size, and binning, has four discrete gain settings. The HIGH setting is the most sensitive, meaning lowest read noise and least digitization noise. The tradeoff is with the depth of the camera. The digital depth is always 16383 ADU, and in the HIGH gain setting this translates to only about 8000 electrons. The LOW gain setting always has much higer digitization noise, but give access to the full ~100,000 electron well depth of the CCD 47.

The following table gives the gains and readout noise (RON) for the most commonly used modes. Values for additional modes are available upon request.

Mode Gain


2500 kHz
bin 1x1
HIGH 0.53




MED LOW 3.58


LOW 13.23


2500 kHz
bin 1x1
HIGH 0.54




MED LOW 3.58


LOW 13.14


250 kHz
bin 1x1
HIGH 0.47




MED LOW 3.34


LOW 12.3


250 kHz
bin 1x1
HIGH 0.48




MED LOW 3.32


LOW 12.36


Exposure Time and Gain scalings

It is useful to convert from ADU to electrons per second when comparing images taken with different camera settings. To convert we calculate the scaling factor (SF) to multiply each pixel by. The formula is:

\[ SF = \frac{GAIN}{EXPTIME}10^{ND} \]


SF = scale factor which converts ADU to electrons/second

GAIN = the gain factor, in electrons/ADU. This depends on the gain setting (LOW, MLOW, MHIGH, HIGH) which is given in the fits header as V47GAIN, and the pixel rate which is V47PIXRT, and very weakly on the window size and binning. See the above table for the measured gains.

EXPTIME = the exposure time of the image, in VisAO fits headers it is given by the standard EXPTIME keyword.

ND = value of the neutral density filter if used, 0 otherwise.

VisAO Filter Curves

Here we present the VisAO filter curves. These are based on manufacturer provided curves for the filters, the CCD-47, and 3 aluminum reflections. Atmosphere is not included in the plots.
The VisAO broadband filters (in red). Other standard bandpasses are shown for comparison.
Filter Curves:In the data files (links below) the raw transmission, photon weighted "relative spectral response", and in the case of Ys ("Y short") the RSR profile with a 1.0 AM, 2.3 mm PWV transmission included is provided.VisAO r'
VisAO i'
VisAO z'
VisAO Ys
Here are the narrowband filters used for simultaneous differential imaging:H-alpha
H-alpha continuum
[SII] continuum

Complete Fits Header

SIMPLE = T / file does conform to FITS standard
BITPIX = 16 / number of bits per data pixel
NAXIS = 2 / number of data axes
NAXIS1 = 64 / length of data axis 1
NAXIS2 = 64 / length of data axis 2
EXTEND = T / FITS dataset may contain extensions
COMMENT FITS (Flexible Image Transport System) format is defined in 'Astronomy
COMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H
DATE = '2013-03-28T21:22:53' / Date this file was written YYYY-mm-dd
ORIGIN = 'MagAO System'
TELESCOP= 'Magellan Clay'
DATE-OBS= '2013-03-28T21:22:53.157444' / Date of obs. YYYY-mm-ddTHH:MM:SS
FRAMENO = 34394028 / Camera frame counter
UT = 76971 / UT from TCS (sec since midnight)
ST = 18354 / ST from TCS (sec since midnight)
OBJECT = 'SPKS-10 ' / Object Name
EPOCH = 1950. / Epoch of target coordinates
RA = 75.8317916666667 / Telescope pointing RA (degrees)
DEC = -29.0848611111111 / Telescope pointing DEC (degrees)
CATRA = 285.2 / Catalog input RA (degrees)
CATDEC = -36.645 / Catalog input DEC (degrees)
AZIMUTH = 307.0007 / Telescope azimuth (degrees)
ELEVATIO= 89.9971 / Telescope elevation (degrees)
PARANG = 126.8855 / Par. ang. at end of obs. (degrees)
AM = 1. / Airmass at end of observation
HA = 0.00166666666666667 / Hour angle at end of observation
ZD = 0.0029 / Zenith distance at end of observation
ROTANG = -0.001 / Rotator angle at end of observation (degrees)
ROTOFF = 126.8845 / Rotator offset at end of observation (degrees)
ROTMODE = 'OFF ' / Rotator mode, from catalog input
WXTEMP = 15.39 / Outside temperature (C)
WXPRES = 765.35 / Outside pressure (millibars)
WXHUMID = 39.7 / Outside humidity (%)
WXWIND = 9.6 / Outside wind intensity (mph)
WXWDIR = 239. / Outside wind direction (degrees)
TTRUSS = 16.847 / Telescope truss temperature (C)
TCELL = 17.282 / Primary mirror cell temperature (C)
TAMBIENT= 22.4 / Dome air temperature (C)
AOLOOPST= 'NOT PROCESSED' / Loop Status - added in post processing
AOREC = 'Rec_20130328_141313.fits' / reconstructor
AOMODES = 0 / Number of corrected modes
AOSPEED = 989.609104403761 / AO loop speed (Hz), from CCD39
AOBIN = 1 / AO WFS binning, from CCD39
AOCOUNTS= 149 / AO WFS counts per subap
AOGAINTT= 0.54 / AO loop T/T gain
AOGAINHO= 0. / AO loop high order gain
AOMODSP1= 990. / AO modulation speed (Hz), axis 1
AOMODSP2= 990. / AO modulation speed (Hz), axis 2
AOMODAM1= 0.00017 / AO modulation amplitude (millirad), axis 1
AOMODAM2= 0.00017 / AO modulation amplitude (millirad), axis 2
AOMODOF1= 0. / AO piezo offset (millirad), axis 1
AOMODOF2= 0. / AO piezo offset (millirad), axis 2
VFW1POS = 0.001 / Position of MagAO Filter Wheel #1
VFW1POSN= 'R=50%, T=50%' / Filter name in MagAO Filter Wheel #1
BAYSIDX = 13.7995 / Position of MagAO Bayside X stage
BAYSIDXE= 101 / Enable status of MagAO Bayside X stage
BAYSIDY = 17.0604 / Position of MagAO Bayside Y stage
BAYSIDYE= 101 / Enable status of MagAO Bayside Y stage
BAYSIDZ = 25.0023 / Position of MagAO Bayside Z stage
BAYSIDZE= 101 / Enable status of MagAO Bayside Z stage
V47WINDX= 64 / CCD47 x window
V47WINDY= 64 / CCD47 y window
V47BINX = 1 / CCD47 x binning
V47BINY = 1 / CCD47 y binning
V47PIXRT= 2500 / CCD47 speed (kHz)
V47REPS = 0 / CCD47 accumulator repetitions
V47FRMRT= 31.4800015297313 / CCD47 frame rate (fps)
EXPTIME = 0.03176619921875 / CCD47 exposure time (sec)
V47GAIN = 'LOW ' / CCD47 gain
V47JTEMP= 28.0562534332275 / CCD47 little joe case temp (C)
V47JXTMP= -100. / CCD47 little joe exhaust temp (C)
V47TEMP1= -25.2931060791016 / CCD47 head temp (C) #1
V47TEMP2= -25.2931060791016 / CCD47 head temp (C) #2
V47BLCK1= 384 / CCD47 channel #1 black level
V47BLCK2= 384 / CCD47 channel #2 black level
VIMTYPE = 'SCIENCE ' / Image Type
VFOCPOS = 5858.70059609375 / Position of VisAO Focus stage (microns)
VFOCSTAT= 'STOPPED ' / Status of VisAO Focus stage
VFOCPWR = 'ON ' / Status of VisAO Focus stage controller
VFW2POS = 3.99836605442654 / Position of VisAO Filter Wheel #2
VFW2POSN= 'Ys ' / Filter name in VisAO Filter Wheel #2
VFW3POS = -0.000391111270679077 / Position of VisAO Filter Wheel #3
VFW3POSN= 'open ' / Filter name in VisAO Filter Wheel #3
VWOLLSTN= 'OUT ' / Status of VisAO Wollaston
VSHUTTER= 'OPEN ' / Status of VisAO Shutter
VSHUTSYN= 'IGNORED ' / Status of VisAO Shutter Sync Signal
VGIMPWR = 'ON ' / Status of VisAO Gimbal controller
VGIMXPOS= 1.54912 / X Position of VisAO Gimbal
VGIMYPOS= 4.07107 / Y Position of VisAO Gimbal

2014A VisAO Calibrations

This page documents various calibrations performed during the 2014A run.

Flat Field

Morning sky flats were found to be much better than evening sky flats. The direction that sunlight enters the dome in the evening causes significant glinting which does not appear to be as bad in the morning. Even in the morning, the illumination pattern is such that the resultant flat is only useful for high spatial frequency response (i.e. pixel to pixel), and some glinting is still visible with a sufficiently large smoothing kernel.

These flats were taken on the morning of 2014 Apr 18 UT, in the 50/50 beamsplitter and the z' filter. Exposure time was adjusted as the sky brightened to avoid saturation.

The following steps were taken to form the flat:

  • images were selected to have the same filter combination
  • images were selected to have no digitally saturated pixels (16383 ADU)
  • images were bias subtracted using a 2.273s bias frame. darks at other exposure times were not taken.
  • an offset remained between the biases of the two amplifiers. this was corrected in each image by adding a constant to the bottom half so that medians of the rows on either side of the amplifier boundary were equal.
  • next each image was median smoothed with an odd-pixel sized boxcar
  • then each image was divided by the smoothed version of itself
  • the images were then combined with a 3-sigma clipped mean

The choice of smoothing width affects the quality of the flat under the dust spots, which are of order 20 pixels wide, and it affects the rejection of mid-spatial frequency glints. By comparing a flat with an 11 and a flat with a 41 pixel smoothing width, we found that the major glint (which becomes visible in the 41 pixel flat) only raises the apparent response by ~0.2%. In contrast, the 11 pixel flat overstates the response under large dust spots by up to 1%. We recommend using the 41 pixel flat, but several choices (11,21,31, 41) are provided. A simple ratio of these images will allow you to analyze the tradeoffs.

Pixel to pixel response using a 41 pixel smoothing width.

Note that the ~10 pixels at the edge of the flats should not be used, as smoothing is suspect there.

Download: VisAO Flat with 11 pixel smoothing width
Download: VisAO Flat with 21 pixel smoothing width
Download: VisAO Flat with 31 pixel smoothing width
Download: VisAO Flat with 41 pixel smoothing width [RECOMMENDED]

The VisAO camera pixel response is flat to better than 1%, with the exceptions of dust spots. Some statistics of the 41 pixel flat are given below. For these we excluded 10 pixels at the edge of the array where the smoothing is less effective.

mean response: 1.00011
median response: 1.00023
std. dev response: 0.00324769
min response: 0.935925
max response: 1.05748
more than 1% deviation
No. > 1.01 1397
No. < 0.99 1645
more than 2% deviation
No. > 1.02 14
No. < 0.98 201
more than 3% deviation
No. > 1.03 2
No. < 0.97 46
more than 4% deviation
No. > 1.04 1
No. < 0.96 8
more than 5% deviation
No. > 1.05 1
No. < 0.95 1

With the exception of dust spots,the VisAO CCD response is flat to better than 1%


ND Calibration

The ND was calibrated during 2014A on HD 84687 a V~7 F3V star. The following table gives the results.

These should be used for observation planning only. Contact the VisAO team for more up to date ND information.
You should plan ND calibrations if you expect to use it for your observations.
Filter Attenuation ND
r' 7763.6 +/- 433.5 (5.5%) 3.89
i' 1452.9 +/- 37.8 (2.6%) 3.16
z' 491.1 +/- 16.1 (3.2%) 2.69
Ys 276.6 +/- 8.7 (3.1%) 2.44

Full details of the calibration analysis are available in this document.


Throughput measurements for 2014A are in progress . . .


The astrometric calibration of VisAO for 2014A is ongoing . . .