As discussed in a previous post (here), read or readout noise is the noise or uncertainty added to every pixel value read out of a CCD array. This noise is largely associated with the imperfect conversion of an analog signal into a digital value.
The method to determine a CCD’s readout noise contribution to the final signal is as follows1:
The results of performing these operations on ten pairs of bias frames is summarized in the table below:
| Pair # | Std. Dev | Gain | Read Noise2 |
| Bias Pair 1 | 35.388 ADU | 0.37 e-/ADU | 9.26 e- RMS |
| Bias Pair 2 | 35.305 ADU | 0.37 e-/ADU | 9.24 e- RMS |
| Bias Pair 3 | 35.327 ADU | 0.37 e-/ADU | 9.24 e- RMS |
| Bias Pair 4 | 35.294 ADU | 0.37 e-/ADU | 9.23 e- RMS |
| Bias Pair 5 | 35.250 ADU | 0.37 e-/ADU | 9.22 e- RMS |
| Bias Pair 6 | 35.259 ADU | 0.37 e-/ADU | 9.22 e- RMS |
| Bias Pair 7 | 35.416 ADU | 0.37 e-/ADU | 9.27 e- RMS |
| Bias Pair 8 | 35.372 ADU | 0.37 e-/ADU | 9.25 e- RMS |
| Bias Pair 9 | 35.220 ADU | 0.37 e-/ADU | 9.21 e- RMS |
| Bias Pair 10 | 35.226 ADU | 0.37 e-/ADU | 9.22 e- RMS |
| Average | 35.306 ADU | 0.37 e-/ADU | 9.24 e- RMS |
1From “Handbook of CCD Astronomy Second Edition” by Steve B. Howell
2Published read noise for this device = 9.3 e- RMS
After several years of using general scripting software (CCD Commander) for all my astro-photography image capture needs, I’ve decided to learn and write my own scripts that are tailored to my specific equipment and to my unique needs. The programming language I’m using is Python (currently at version 2.6.5). Python is a general purpose, high-level programming language that is free and open-source software. It supports both object oriented programming and structured programming. I’ve found Python to be very easy to learn, write, and debug. It fully and reliably supports the COM interfaces that most (if not all) ASCOM-compliant astronomy software currently implements.
The first script that I have written and fully debugged is a routine that I use to capture dark and bias calibration frames. Typically, I do not spend time at my dark site capturing dark and bias frames. Instead, when I get home or when needed, I place the camera in the refrigerator (a dark and relatively cold place) and have the software automatically take the calibration frames while I sleep. On a typical night I might instruct the script to take, for example, 40 dark frames at 600 seconds each (10 minutes) at a CCD temperature of -10C and then take 100 bias frames at the same temperature.
When the program is started, the following menu is shown:
Exec_DarkBias.py
——————————-
1. Specify save path
2. Setup for Dark Frames
3. Setup for Bias Frames
4. Confirm setup
5. Reset settings
6. Begin script
7. Quit
Option ‘1′ displays the current save path and allows the operator either to accept this path or specify a new path for the calibration frames. The second option asks for operator input to specify the Dark frame exposure length, binning, number of frames and CCD temperature setpoint for these frames. Option ‘3′ asks for operator input to specify the Bias binning, number of frames, and CCD temperature. The fourth option displays the current settings for path, Dark frames, and Bias frames for operator verification. Option ‘5′ resets all path, Dark, and Bias settings to their default, startup values. Entering a ‘6′ starts the script operation and entering a ‘7′ quits the entire program.
When the script begins, the software first checks to make sure either Dark frames setup or Bias frames setup (or both) have been specified then it sets the Dark frame CCD temperature setpoint. Next a loop is entered where the CCD temperature is checked once a second. The CCD temperature is considered stable when the read-back temperature does not deviate more than +/-0.5C from the setpoint temperature for 120 consecutive readings (2-minutes). If the temperature does not stabilize within 8 minutes, the program fails, displays an error message, and terminates. Otherwise, the CCD temperature will be considered stable and Dark frame capture will begin. After all dark frames have been taken, the Bias frame CCD temperature will be set. If the Bias CCD temperature is the same as the Dark CCD temperature, no wait for stabilization will occur. Otherwise, the same CCD temperature stabilization loop will execute. After all Bias frames have been captured, the script will end and the program will return to the top-level menu. Here, another script can be set up or the program can be terminated.
This script makes use of the Maxim/DL CAMERA COM object only. Additionally, a log file is generated that saves the progress of the program for future reference. The program listing and a sample logfile for this program is available by clicking on the link below: