SaratogaSkies Jim Solomon's Astropics


Latest news

December: Test shots with new scopes/mounts

Dec 21: TMB 80/480 Arrives!

Dec 3: AP1200 Arrives!

Nov 30: TMB 152/1200 Arrives!


Printer-friendly Version

Jim Solomon's Astrophotography Cookbook

(v0.5, Last Updated: 5/5/05)

Is your wife an Astronomy Widow? Face it, you spend far too many nights ignoring your sweetheart and playing with your telescope. Tell her how much you love her by purchasing a unique piece of jewelry from our sponsor:


I believe my astrophotography technique is now producing results that are at the limit of what's possible with my rather modest equipment. I therefore offer this "How To" guide to other astrophotographers who are attempting to climb the learning curve, and who would like to get the most out of similar equipment. I hope such folks will find this useful.

This is exclusively a "How To" for long-exposure astrophotography of Deep Space Objects (DSOs); i.e., anything requiring a very long, tracked, exposure to adequately capture. This is therefore specifically NOT a "How To" for planetary photography, mostly because I don't consider myself very good at it, and also because the technique is so radically different from DSO photography that it needs its own treatment elsewhere.

Note also that this document does not delve very deeply into the theoretical underpinnings of digital astrophotography, or even the "basics" of astrophotography. As such, it is assumed that the reader is already familiar with and understands the following concepts:

See some of the excellent Introductions to digital astrophotography available on the 'net for more info. on these topics.

The sections below are broken down as follows. First, I give a brief synopsis of my equipment. Then describe the three phases of my astrophotography technique in detail; namely, planning, acquisition, and processing.


Here are a few terms used throughout this guide, which I define here to make sure we're all in agreement on what they mean:


Many newcomers to digital astrophotography are confused by the notion of Lights, Darks, Offsets, and Flats, so here I'll give a very brief background on these concepts. The CMOS or CCD imaging chip in most Digital SLRS will very faithfully and linearly collect light from the object you're trying to image. Unfortunately, the "signal" collected from the target object will get degraded by thermal noise and other noise sources. Darks and Offsets are the means by which we try to characterize and mitigate the effects of these noise sources. Also, the telescope/lens optical train may not fully illuminate the imaging chip, depending on its size, resulting in a phenomenon called vignetting. Flats are the means by which we try to characterize and mitigate the effects of this vignetting, and further the means by which we mitigate the effects of dust that might have settled on the imaging chip in the camera.

The formula that relates these physical phenomenon, and the actual frames we'll collect over a night of imaging, are as follows:

(1) Light = (Signal * Flat Signal) + Dark + Offset

where Signal is the image of the target object we wish we could collect under ideal circumstances, and Light is the image we actually captured. Rearranging the terms, we have:

(2) Signal = (Light - Dark - Offset) / Flat Signal

But realize that the Flats we capture with the camera will, in turn, be "polluted" by Darks and Offsets in their own right, and so we must subtract Flat Darks and Flat Offsets from the Flat Lights as follows:

(3) Flat Signal = Flat Light - Flat Dark - Flat Offset

So, plugging equation (3) into equation (2), yields the final result:

                     Light - Dark - Offset
(4) Signal = ------------------------------------
             Flat Light - Flat Dark - Flat Offset

Thus, the basic digital astrophotography technique involves capturing all of the frame types listed on the right-hand side of Equation 4, and using them in an image-processing program to produce the "Signal" term on the left. This process of subtracting Darks and Offsets, and dividing by Flats, is called "calibration" of the Lights. Note, finally, that a Dark as captured in an exposure actually contains the Offset, and, so, in processing, we will often just subtract this Dark from the Light, without explicitly subracting an Offset. But, as stated, that captured Dark actually contains the Offset, and subtracting that captured Dark has the effect of removing the Offset as well.


Almost all of my DSO astrophotos (from herein I'll drop the adjective "DSO", since this entire document deals with DSOs) are acquired with a Canon Digital Rebel at Prime Focus of my Celestron 8" f/5 Newtonian. Here's the list of equipment that comes into play in this configuration:

    Imaging: Canon Digital Rebel (aka 300D) Digital SLR
    Guiding: Philips ToUcam Pro II 840k webcam
    Celestron Advanced Series with GoTo (aka AS-GT)
    Imaging: Celestron C8-N: 8" f/5 Newtonian Reflector, fl=1000mm
     => upgraded focuser to JMI NGF DX3 low-profile model
    Guiding: Orion ST80: 80mm f/5 Achromatic Refractor, fl=400mm
Guide scope mounting:
    Orion 07381 Guide Scope Rings (pair), 105mm I.D.
    Orion 07382 Guide Scope Ring Mounting Bar
Adapters, filters, etc:
    T-Ring: Orion 05224 for Canon EOS cameras
    Coma Corrector: Baader MPCC
    Barlow: Celestron "Kit" 2x Barlow (used with Guide Scope)
    Extension: Orion 05123 1.25" Extension Tube (to reach focus with webcam)
    Guiding, Focusing, and Acquisition: Toshiba TECRA 8100 laptop
    Processing: Custom built PC with 3GHz P4, 2GB RAM, and WinXP Pro
    Guiding: GuideDog v1.0.6
    Focus and Acquisition: DSLRfocus v2.7.1
    EXIF Preview et. al.: Canon FileViewer Utility
    Processing: IRIS v4.34, Photoshop v6.0
    Webcam to Laptop: USB cable that comes attached to webcam
    DSLR to Laptop:
  • Long exposure control: C300P-20 Parallel port to shutter control cable
  • Focus and framing: USB cable that comes with 300D
  •     Laptop to Mount: Serial port to AS-GT Hand Controller RJ-22 port, home built cable
    Power Supplies:
        Mount: Celestron 18773 A/C Adapter (Warning! Celestron says not to use this!)
        DSLR: Canon ACK-E2 A/C Adapter Kit for Digital Rebel
        Laptop: included A/C Adapter


    As will become evidently clear, my setup and acquisition are quite involved and, therefore, time consuming. So I like to have as much work done "up front" as possible before going out for the night. The better the planning, the better things will go when shooting. The activities in this stage are as follows:

    1. Pick a target. Use charting software or the many available catalogs to pick a suitable target. In particular, I try to pick large objects that fill the camera's Field of View; bright objects that have a reasonably high mean surface brightness; and objects that are well placed. Pay particular attention to when the object transits and on which side of the Meridian you'll be shooting it.
    2. Choose a camera orientation. Determine if the object has greater extent in the East-West direction or the North-South direction, and be sure to orient the long dimension of the camera's sensor in that direction when attaching it to the imaging scope. I prefer to orient the camera in the "North is up" direction in all cases, unless the object begs for a "North is left" orientation. Examples of the latter include M81/M82, M42, and others.
    3. Pick a candidate Guide Star. It will speed the process of Guide Star acquisition to have a rough idea of which Guide Star you're going to use and knowing how far, and in which direction, that Guide Star lies from the target. Also, the further the Guide Star from the center of the target, the more accurate your Polar Alignment will need to be. See the section on Polar Alignment to learn why this is the case.
    4. Devise a plan to find the target. Do you have a GoTo mount with scary-good accuracy? Do you have Digital Setting Circles? Are you a Star-Hopping Demon? In any case, you'll need to figure out a way of centering the target in your imaging camera without removing the camera. (Why? -- because you're not allowed to remove the camera between taking your first Flat Frame and your last Light Frame.) My favorite method is to use a home-brewed spreadsheet that serves a similar function to the Precise GoTo function in my mount. I home-brewed this because the AS-GT's Precise GoTo does not allow me to pick the reference object, and sometimes it, sigh, picks reference objects on the wrong side of the Meridian. Or, just as bad, it picks stars you've never heard of and can't locate. I prefer to use an unmistakable object as the reference object, center it, and then use the spreadsheet to compute the RA and DEC offsets to the actual target from the reading on the Hand Controller's "Get RA/DEC" function.
    5. Take an educated guess at ISO and exposure time. This can generally be done "in the field", but if you have the time, it never hurts to research what other folks have used to shoot the same target. Or to look through your own portfolio and see what seems to work and what doesn't. I tend to lean toward 4min sub-exposures @ ISO 400, as that leaves a very large dynamic range (lack of clipping of bright objects), and 4min is usually long enough to capture a decent amount of detail in each sub-exposure. Also, at 4min, if an airplane flies through and ruins a frame, like, so what?, it's only 4min. Dimmer targets will require longer exposures and/or higher ISOs. You'll need to experiment with this to see what works best for you.


    My acquisition process consists of the following distinct phases:

    1. Setup
    2. Acquire Flats
    3. Polar Alignment
    4. Focus
    5. Acquire Target
    6. Acquire Guide Star
    7. Take a Test Shot
    8. Acquire Lights
    9. Acquire Darks
    10. Acquire Offsets


    The setup phase can and should be done during the daytime. Basic setup of your mount, scope, laptop, etc., is way beyond the scope of this document, so I'll focus on the astrophotography-specific aspects of the setup:

    0. Verify the collimation of the optics.

    1. Setup and Configure the Imaging Camera and Imaging Scope:

    2. Setup and configure the Guiding Camera and Guide Scope:

    3. Balance the scopes in the mount:

    Here's a little more background on why I intentionally misbalance the scope ever-so-slightly in RA and DEC. The AS-GT mount always approaches a target in a consistent direction to minimize the impact of backlash. For the Northern Hemisphere, that direction is the same as the direction the mount moves when pressing the "Up" and "Right" arrows. So, I intentionally misbalance in DEC ever-so-slightly, such that the misbalanced weight is acting in opposition to the action of the Up arrow. So, for example, if I'm shooting an object West of the Meridian, the scope will be on the East side of the mount, and the Up arrow will move the scope South. Therefore, I like the extra weight to be on the North side of the mount in DEC, so that the Up arrow is pushing against that weight. Similar arguments apply in RA, but the directions are more straightforward. Since the mount is always tracking the movement of the stars in the Westward direction, the East side of the mount should be ever-so-slightly heavier in RA in order for the gears to be pulling against that weight.

    Acquire Flats

    When I first started taking astrophotos, I assumed I could "blow off" Flat Fields, Dark Frames, etc. I was wrong. You are too. Just do it. You'll thank me. My process for acquiring flats is evolving, so I'll describe the process I'm currently using.

    First, some background. The purpose of Flats is to characterize the optical train as accurately as possible, so that later, in processing, you can correct for things like vignetting (uneven illumination of the optics, particularly a darkening at the edges of the camera's field). A good set of Flats will also correct for dust spots on the camera's sensor. The ideal Flat is taken of a (perfectly) uniformly illuminated target. In practice, the twilight sky makes a reasonable approximation to this ideal, and, in particular, the twilight sky a few hours East of Zenith makes for an excellent approximation.

    Thus, I use the twilight sky (just after civilian sundown) as my "uniformly illuminated target". Others use different methods and they may be getting better results than I am. As I said, my procedure is evolving. In any case, here's what I do:

    Polar Alignment

    In a guided system, one need not worry about RA or DEC drift, especially if the guiding software is guiding the mount in both RA and DEC. However, Polar Misalignment causes Field Rotation in addition to RA and DEC drift, and it is this rotation that is problematic. In general, field rotation gets worse as the Polar Alignment error gets larger. It also gets worse for objects close to the poles (i.e., DECs near +90 or -90). And it becomes more problematic the further the Guide Star is from the center of the imaging camera's field. The latter is so because the field will appear to rotate around the Guide Star, and the further it is away from the center of the imaging camera's field, the more that field will tend to "slide off the imaging camera" over the course of the night's image acquisition.

    So, how accurate must the polar alignment be? Well, accurate enough for the task at hand. Certainly it must be accurate enough so that no discernible field rotation occurs over the duration of a single exposure. And it must be accurate enough to prevent the field from rotating over the course of the night to the point where there's very little intersection among all of the night's Light frames.

    Generally, I like to Drift Align to the point where I see no discernible drift over a span of 4 to 5 minutes. Many people will see this to be overkill and they're probably right. But, hey, this is my astrophotography cookbook! <grin> I've drilled indentations into the pavement so I can replace the mount's tripod legs in the exact same position each time I set up. On most nights, this gets me "close enough" that I don't even bother to Drift Align at all. Of course, I did a "scary accurate" Drift Align before I drilled those indentations in the first place. On nights where I'm shooting close to the pole (M81, for example), or on nights that I need to wait for the target to transit, I'll spend the intervening time honing my Polar Alignment with a Drift Alignment.

    Drift Alignment isn't really as scary as most people think it is. You should learn how to do it. My current method involves using the webcam with GuideDog software running (but not guiding!) so I can view a star on my laptop's screen. (Remember, it's illegal to remove the imaging camera from the imaging scope between the acquisition of Flats and acquisition of Lights.) I turn on GuideDog's cool "double reticle" which makes it very clear if the star is drifting. Be absolutely sure to align the webcam North-South and East-West if using this method. Be accurate! Slew the mount in RA and DEC and make sure the star follows the reticle; otherwise, the camera orientation is off. Also, be sure you know "which way is North" when looking at the laptop's screen. One of my favorite tutorials on Drift Alignment can be found at Andy's Shotglass (click on the Drift Alignment link).


    There are wonderful tools available to DSLR users to help them focus, and DSLRfocus is one such tool that I use for focusing. Spend some time at this stage to focus as accurately as possible. You'll be glad you did. Take an extra 5min to really nail the focus -- I assure you that N perfectly focused frames will give you a better result than N+1 poorly focused ones! Here's my procedure:

    Acquire Target

    There are many ways to find and center the target in the field of the imaging camera. For really bright objects, I just center them using the imaging camera's viewfinder. M42 is an example of one such target.

    For more illusive targets, I use my Precise GoTo Spreadsheet to compute the RA and DEC offsets (deltas) between the Target Object and some bright, nearby, easy-to-find, unmistakable, Reference Object. The Reference Object is almost always a nearby bright star or planet. I then center the Reference Object in the imaging camera's field and then pull up "Get RA/DEC" in the mount's Hand Controller. Then I subtract the offsets from my spreadsheet, and slew the mount to the resulting coordinates. In all cases, the slews must finish with the Up and Right arrow keys, in order to deal with any backlash in a consistent fashion. In my experience, this method is amazingly accurate and easy to execute.

    In any case, here's the procedure I use to acquire (and verify) my target:

    Acquire Guide Star

    Acquiring a Guide Star can either be simple and quick, or excruciatingly painful. The pain factor is inversely proportional to how well the Guide Scope's finder is aligned with the center of the webcam's field in the Guide Scope. If it is very well aligned, then putting the Guide Star in the finder's cross hairs will land the Guide Star on the chip every time. Otherwise, prepare to be frustrated. Here's my sequence for acquiring a Guide Star, picking up where we left off above:

    Take a Test Shot

    Consider this step the equivalent of a "dress rehearsal". This is the final verification that you've nailed the framing, focus, and exposure settings (ISO and exposure time). I've rescued many nights that would have been wasted by taking a test shot and verifying all of the above on my PC, and making important adjustments once finding some problems. I highly recommend doing this. Here's my procedure:

    Acquire Lights

    If the last step is the dress rehearsal, then this step is the main performance. I like to dither between exposures in order to maximize the signal to noise ratio of the stacked result. By dither, I mean slew the mount ever-so-slightly in RA and/or DEC in a random direction between each exposure, in order to move the target around on the imaging chip. This serves to mitigate the problem caused by uneven sensitivity of the individual pixels on the chip, as well as the effect of hot pixels. It will allow you to stretch the final processed image a bit more than you otherwise would, without revealing ugly-looking "pattern noise" in the background, and therefore allow you to reveal more detail in your target. I highly recommend it, but I acknowledge that it's labor intensive and a royal pain in the you-know-what. Controlling your laptop remotely with something like pcAnywhere can ease the pain level of dithering.

    Some more comments on dithering. You must completely disable guiding while dithering; otherwise, GuideDog will return the Guide Star to exactly where it was previously, thereby negating the dithering action. To completely disable guiding, be sure to click (uncheck) the Guide button and the Lock button before slewing the mount. Then reenable guiding by clicking the Lock button, selecting the Guide Star, and clicking the Guide button again.

    Here's my procedure for capturing Lights:

    A few more notes on dithering. The "pattern noise" on these consumer DSLRs tends to be vertical and horizontal in nature. So, a really bad dithering pattern would be to slew the mount in a linear fashion, either in RA or DEC. A much better dithering pattern is an "outward spiral" which, when you start to get too far away from the center, you can spiral back inward. Also note that a smidgeon of field rotation (from polar misalignment) can actually be a good thing in this regard, since it will further serve to randomize these vertical and horizontal patterns, once the frames are registered (derotated) in processing.

    Acquire Darks

    Now that you've acquired your Lights, it's time to (immediately) begin capturing your Darks. I like to collect at least 9 Darks, perhaps more if the Light frames had a relatively short exposure time. In any case, collect an odd number of Darks since you will more than likely be median-combining them, and the numerical median operator just likes to have an odd number of samples.

    I let DSLRfocus time the Dark frames just like with the Lights. In fact, I like to go from capturing Lights to capturing Darks "without skipping a beat" in DSLRfocus. By this I mean that if I've got 1min of inter-frame "down time" during my Lights, I like to have exactly that same interval between the last Light and the first Dark, and use that same inter-frame spacing between the capture of all the Dark frames. This procedure yields an almost identical match between the Lights and the Darks in regards to the (lack of) cool-down time of the sensor between frames. Here's my procedure:

    While the Darks are being captured, I either: begin processing the Flat frames; begin putting the rest of my equipment away for the night; or begin doing visual astronomy of some of the "eye candy" that's well placed at the current time. I also continue to remind myself that I'm not done when the Darks are finished. There remains one more step ...

    Acquire Offsets

    You're almost done. What remains is to capture a handful of short-as-possible Offset (Bias) frames. Here's my procedure:

    Congratulations, you've finished your acquisition! Now it's time to process the result. Ok, actually, tomorrow morning is time to process your result. <grin>


    Now that you've acquired your Flats, Lights, Darks, and Offsets, you can begin processing your frames to bring out as much detail as possible. Doing so requires some fairly sophisticated software. My favorite application by far for this task is the freeware package named IRIS by Christian Buil. Others prefer ImagesPlus by Mike Unsold, which, as of this writing, was being sold for roughly US $200. But, again, this is my cookbook, and I like IRIS, so this processing sequence will be explained in terms of IRIS. The outline is as follows:

    1. Create Master Flat
    2. Create Master Dark
    3. Calibrate Lights
    4. Convert CFA to RGB
    5. Register
    6. Stack
    7. White Balance
    8. Crop
    9. Remove Gradient
    10. Stretch
    11. Touch up in Photoshop
    12. Optional Optimizations

    What follows is not meant as an introductory tutorial on IRIS. For that, see Christian's various tutorials linked from the IRIS home page. In particular, be sure to read the Illustrated tutorial on DSLR processing, and the more in-depth Digital camera image processing tutorial.

    For now, let's make sure IRIS is configured correctly:

    Now you're ready to go...

    Create Master Flat

    1. Convert RAW Flat Lights to PIC (CFA). Select Digital Photo->Decode RAW files... which, somewhat disarmingly to first-time IRIS users, will push IRIS to the background of your Windows. It does this so you can pull up Windows Explorer and navigate to the directory where your RAWs are stored. Do so, select all of the Flat Lights (the .CRW files in the case of the 300D; .NEF, .PEF, etc., for other camera types), and drag them into the IRIS Decode RAW files dialog. Give the sequence a name (I use fl for flat lights), and then hit the ->CFA... button. IRIS will convert the selected RAW files to PIC.
    2. Convert RAW Flat Darks to PIC (CFA). With that window still open, hit Erase list and then drag all of your Flat Darks (again, the .CRW files for the 300D; .NEF etc. for other camera types) into the main portion of the window. Give this sequence a different name than the one you used for Flat Lights (I like fd for flat darks), and then hit the ->CFA... button. IRIS will convert the selected RAW files to PIC. Click the Done button when finished.
    3. Make the Flat Master Dark. My current process involves median-combining the individual Flat Darks to make a Flat Master Dark, without using the Flat Offsets. But IRIS' dark-creation procedure requires a Master Offset when creating a Master Dark. So, we must first produce a "dummy" offset file that contains zeros at every pixel location. The easiest way to do that is to load any of the files we've already converted to PIC, fill the image with zeroes, and then save it. Here's how to accomplish this in the command window:
        >load fd1
        >fill 0
        >save zero

      Now select Digital Photo->Make a dark... and in the resulting dialog box, set Generic Name to fd (or whatever you called your Flat Dark sequence), Offset image to zero (the dummy offset we created above), Number to the number of images in your Flat Dark sequence, and Method to Median. Hit OK and IRIS will subtract off this null (dummy) offset and then median-combine the Flat Dark images. The result is stored in IRIS' memory but not yet on disk. So when this operation finishes, enter the following:
        >save flat-master-dark
    4. Identify hot pixels. Use the find_hot command on the flat-master-dark to identify the hot pixels. The trick is to determine a threshold value over which IRIS will deem a pixel to be a "hot pixel". One method that works for me is to deem any pixel that exceeds the "Mean plus (16 times sigma)" as a hot pixel. However, I know for sure that this does not work for a friend of mine's 300D, as it produces far too many hot pixels. In the case of Flat Darks, there should be very few hot pixels that reveal themselves at such short exposures. Try using different thresholds with the find_hot command until you get somewhere in the neighborhood of 20 or so hot pixels. Here's an example:
        >load flat-master-dark
        Mean: 125.0         Median: 125
        Sigma: 2.1
        Maxi.: 274.0       Mini.: 114.0
        >find_hot flat-cosmetic 158.6
        Hot pixels number: 3

      where flat-cosmetic is the name of the file into which IRIS stores the list of hot pixels, and the threshold (158.6) equals the Mean plus (16 times the Sigma); i.e., 125 + (16 * 2.1).
    5. Select the Flat Lights. Inspect the Flat Lights one at a time by loading them into IRIS (>load filename in the command window; e.g., >load fl1) and looking for signs of clipping. One way to do this is pan to the brightest portion of the image, draw a rectangle with the mouse, right-click the mouse and select the Statistics item. IRIS will then display the max, min, and other useful statistics about the selected area. Be suspicious of maximum values that are anywhere near 4095, which is the saturation value of the 12-bit pixels in the 300D. (But also try not to be fooled by the presence of one or more "hot pixels" that happen to lie within your rectangle. Draw a few rectangles to make sure.) I try to stay away from any Flats Light that have pixel values greater than about 3500. Generally speaking, I'll use 9 Flat Lights to create my Master Flat, starting with the brightest image in the sequence that doesn't clip and continuing through the subsequent images in the sequence until a total of 9 is reached. At this point, the easiest thing to do is create a new sequence with only those selected Flat Lights, starting with the first desired image in the sequence. So, as an example, let's say that of all the Flat Lights, we want to use the 6th through the 14th (14 - 6 + 1 = 9). In that case, I'd type the following command into the command window:
        >reindex fl flselected 6 1 9
      where the new sequence is called flselected and it consists of 9 total images, beginning with the 6th image in the fl sequence.
    6. Calibrate the selected Flat Lights against the Flat Master Dark. The easiest way to do this is to use the Preprocessing... item in the Digital Photo menu. However, this function is really designed to calibrate your "actual" lights against a Master Dark, Master Flat, Master Offset, etc. So, we need to trick it by putting in a few dummy values. First, we need to create a "dummy flat", because the last thing we want to do is divide our Flat Lights by an actual Flat field. We do this similarly to how we created the dummy offset above, by loading any file and filling it with a uniform, non-zero value. Here's how:
        >load zero
        >fill 20000
        >save 20000

      Now bring up the Digital Photo->Preprocessing... menu, and enter the following values: Input generic name = flselected, Offset = zero, Dark = flat-master-dark (Optimize = not checked), Flat-field = 20000, Cosmetic file = flat-cosmetic, Output generic name = fld (flat light with dark applied), Number = 9. IRIS will then subtract the flat-master-dark from each selected Flat Light and also "fix" the hot pixels.
    7. Create the Master Flat. Select Digital Photo->Make a flat-field... and fill in the fields as follows: Generic name = fld, Offset image = zero, Normalization value = 20000, and Number = 9. IRIS will subtract the (dummy) offset from our calibrated, selected Flat Lights, normalize them so they're all the same intensity (brightness), and then median-combine them. The result is in memory but not yet on the disk, so be sure to save it:
        >save master-flat
    8. (Optional) Disk cleanup. At this point, if you need to reclaim space on the disk, you can delete all the files in your IRIS working directory except for your RAW camera files, master-flat.pic and zero.pic.

    Create Master Dark

    1. Convert RAW Darks to PIC (CFA). Use the same procedure as described in the Create Master Flat section. Call this sequence d for dark.
    2. Create the Master Dark. Select Digital Photo->Make a dark... and fill in the fields as follows: Generic name = d, Offset image = zero, Number = 9 (or however many darks you have), and Method = Median. Hit OK and IRIS will subtract this (dummy) offset and then median-combine the Dark images. Be sure to save the result:
        >save master-dark
    3. Identify hot pixels. Use the same procedure as described in the Create Master Flat section to identify hot pixels in the Master Dark. Here we're shooting for hot pixels on the order of several hundred. My algorithm of "Mean plus 16 times Sigma" works for my 300D here too. You'll have to experiment with yours. Here's an example:
        >load master-dark
        Mean: 120.3         Median: 119
        Sigma: 9.5
        Maxi.: 4008.0       Mini.: 91.0
        >find_hot cosmetic 272.3
        Hot pixels number: 82

      where cosmetic is the name of the file into which IRIS stores the list of hot pixels, and the threshold (272.3) equals the Mean plus (16 times the Sigma); i.e., 120.3 + (16 * 9.5).
    4. (Optional) Disk cleanup. At this point, if you need to reclaim space on the disk, you can delete all the files in your IRIS working directory except for your RAW camera files, master-flat.pic, zero.pic, master-dark.pic, and cosmetic.lst.

    Calibrate Lights

    1. Convert RAW Lights to PIC (CFA). Use the same procedure as described in the Create Master Flat section. Call this sequence l for light.
    2. Calibrate Lights against Master Flat, Master Dark, and Hot Pixel Map. Bring up the Digital Photo->Preprocessing... menu, and enter the following values: Input generic name = l, Offset = zero, Dark = master-dark (Optimize = not checked), Flat-field = master-flat, Cosmetic file = cosmetic, Output generic name = ldf (light with dark and flat applied), and Number = N, where N is the number of light frames you have. For each Light frame, IRIS will subtract the master-dark, divide by the flat-field, fix the hot pixels, and save the result in a new file.

    Convert CFA to RGB

    1. Bring up the Digital Photo->Sequence CFA conversion... menu and enter the following values: Generic input name = ldf, Generic output name = ldfrgb, Number = N (where N is the number of Lights), and Output files type = Color.


    As of IRIS v4.34, use the following, automated procedure to automatically shift (translate), rotate, and, if necessary, scale each calibrated Light frame in order to line them up for stacking:

      >setmatch 2
      >setspline 1
      >setregister 1
      >coregister2 ldfrgb ldfrgbcoreg

    where N is the number of Light frames.


    As a first cut, use a simple summation to combine the registered frames. If the details get clipped (saturated) with the add2 command, then use the add_norm command which will multiply the sum by a constant value to prevent clipping:

      >add2 ldfrgbcoreg N
      >save sum

    where N is the number of Light frames.

    Inspect the result. If there are a significant number of uncorrected hot pixels, cosmic rays, or other bright (or dark) anomalies, then use Kappa-Sigma stacking. As of v4.34 there was a bug in IRIS that prevents this from working on color images, so one must separate the RGB files into individual red, green, and blue (grayscale) sequences before stacking. Here's how:

    1. Separate the RGB sequence into a Tricolor sequence. Select Digital Photo->Sequence RGB Separation... and enter the following values: Generic input name = ldfrgbcoreg, Generic R = r, Generic G = g, Generic B = b, and Number = N (where N is the number of Lights).
    2. Kappa-Sigma stack each color pane. Here's how:
        >composit r 4 1 1 N
        >save rtemp
        >composit g 4 1 1
        >save gtemp
        >composit b 4 1 1
        >save btemp
        >tr rtemp gtemp btemp
        >save sum

      (where N is the number of Lights).

    Play around with the sigma parameter (4 in the example above) and the iterations parameter (1 in the example above) to strike a healthy balance between rejection of aberrant values on the one hand, and getting a good stack of valid data on the other. The second 1 in the composit command is a flag telling IRIS to normalize the result to prevent clipping (overflow). If a "straight stack" with no normalization does not result in clipping of the details you care about, then change that second 1 to a 0.

    White Balance

    Adjust the visualization sliders to get a decent view of your stacked result. Find an area with as few bright stars in it as possible, and draw a rectangle with the mouse. Then execute the following command:


    Then, select Digital Photo->RGB balance... to compensate for the varying sensitivity of the 300D to red, green, and blue light, respectively. I use Christian's (the IRIS author's) proposed coefficients of R = 1.96, G = 1.00, and B = 1.23, although my sense is that this gives a tad too much red and a tad too little blue. But some of this is personal preference, and you can always salt-n-pepper to taste in Photoshop at a later stage. At this point, be sure to save the result:

      >save sum-wb


    Inspect the edges and the four corners of the image and you'll see some "registration anomalies". The goal at this stage is to crop the image to that area which represents the intersection of all the registered frames. Adjust the visualization sliders to allow you to see these registration anomalies, and to determine where to crop. By clicking in each of the four corners of the image, you can look in the Output window to see the coordinates of those locations where you clicked. Then use the IRIS window command to crop to the coordinates that you provide:

      >window x1 y1 x2 y2
      >save sum-wb-crop

    where (x1,y1) are the (x,y) coordinates of the lower-left cropping point, and (x2,y2) are the coordinates of the upper-right cropping point.

    Remove Gradient

    If there's any light pollution at your site, especially if that light pollution is uneven throughout the sky, it's likely that your image has a rather ugly-looking background gradient at this point. Also, if for some reason your Master Flat isn't correcting for vignetting, the background will also have such a gradient. IRIS has a pretty cool set of commands for attempting to remove this gradient, but you'll have to experiment a bit to get the desired result. Repeat the following commands until you get a reasonable result, adjusting the visualization sliders and, perhaps, shrinking the image at each iteration so the whole thing fits on the screen (use the zoom out button on the toolbar):

      >load sum-wb-crop
    sigma poly_order

    I usually try sigma = 1 and poly_order = 3 at first, and then cycle both parameters until I get the desired result. When satisfied, be sure to save the result:

      >save sum-wb-crop-subsky


    I absolutely love the Hyperbolic Arc Sin (asinh) stretching function in IRIS, as I find it provides a much more pleasing result than the Digital Development Process (DDP) available in most image-processing programs. Interestingly, a variant of the asinh stretch is used by JPL to process Hubble photos. Finding the right alpha parameter (the aggressiveness of the stretch), and the right intensity parameter (a post-stretching scaling factor to prevent clipping or to make the result brighter), is largely a matter of trial and error. So, I iterate among the following commands until I get the desired result:

      >load sum-wb-crop-subsky
    alpha intensity
      >visu 32767 -2000

    I usually try alpha = 0.005 and intensity = 30 at first. For each value of alpha, you want to find the right intensity value to make sure the brightest feature that you don't want clipped will have an intensity value of 32767. As for the alpha parameter, changing it by tiny amounts can have a huge effect. So, if 0.005 is a pretty middle-of-the-road stretch, 0.010 is a very aggressive stretch, and 0.001 is a fairly benign stretch. Again, play with the values until you get a result that shows as much detail as possible, but without bringing up the background noise to unacceptable levels. When satisfied, be sure to save the result:

      >save sum-wb-crop-subsky-asinh

    Touch up in Photoshop

    At this point IRIS has proven to be a useful and effective soldier. It's now time to export the data to Photoshop for final touchup. Unfortunately, IRIS uses "signed 16-bit integer math" and Photoshop uses "unsigned 16-bit integer math", and so one must jump through a couple of hoops before exporting from IRIS to Photoshop. Specifically, we have to take the signed integer range of [-32768..32767] and map it into the non-negative range of [0..32767] without clipping on either the positive or negative end. Here's how:

      >load sum-wb-crop-subsky-asinh
      >mult 0.499992370489052
      >offset 16383.7499961852

    Then save to Photoshop:

      >savepsd sum-wb-crop-subsky-asinh

    In Photoshop, you'll have to use the Levels command to stretch these values back to the full, unsigned integer space of [0..65535]. That can be done easily by pulling up the Levels command and setting the black point to around 60, and the white point to 128. Depending on your Photoshop setting, sometimes the Auto levels command will take care of this automatically and give the desired result. Since this isn't a Photoshop tutorial, I'll just mention that I sometimes adjust the white balance and overall stretch a bit to get the final result I want. I'll also rotate the canvas if the camera was "upside down" to make North=up (or North=left, depending on the camera orientation).

    Congratulations!!! You're probably now staring at a killer astrophoto. If it looks good, or even if it doesn't, shrink it, convert it to JPG, and send me a copy of it! Also, if you have feedback or questions about this document, please send those comments as well. My E-mail address is solospam at comcast dot net.

    Optional Optimizations

    Here are a few of my "tricks of the trade" to further improve upon the results that can be accomplished above:

    Archive Your Results

    Burn a CD or DVD now with all of your RAWs (.crw and .thm) and your final, full-resolution, full-size processed result -- both the IRIS file (.pic) and the Photoshop file (.psd). If there's space, include the Master Flat, Master Dark, and Cosmetic file as well.

    Questions and Answers

    My Goodness, you're anal. Do you really go through all of this for each image?

    Yes. Astrophotography is one of the most difficult flavors of photography there is, and there are a whole lot of things that can go wrong. So, I try to minimize the chances of blowing it, since even the non-anal version of setup, acquisition, and processing takes a ton of time. A lot of the steps I take are specifically there to correct a previous "blown night" of imaging. I think my results speak for themselves, especially when considering that I'm using a scope/mount which together cost US $950, and a camera that sells for about US $900.

    Why do you align the 300D North/South or East/West?

    Aesthetically, because I like my pictures to be in the de facto standard orientation of North = Up. Also, this allows a simple and direct comparison of my images with a sky chart or the Digital Sky Survey, etc. And, more practically, because if the framing happens to be off when I take my test shot, I know immediately in which direction (RA or DEC) I need to slew the mount to fix the framing.

    Why do you Drift Align? Can't I just use this cool Polar Axis Finderscope I bought?

    Good luck. I find such tools to be a waste of money, because if I'm doing visual astronomy, the mount can handle a huge polar alignment error, and if I'm doing astrophotography, those tools don't provide nearly enough accuracy. I don't understand why so many people are terrified of Drift Aligning. Practice it on a cruddy night with cruddy transparency, when you can only see the brightest of the bright stars and can't do anything else anyway. It becomes second nature after a little bit of practice.

    Why do you use IRIS? I like <some image processing program> better.

    Because IRIS rules. I love it and it produces tremendous results. Yes, it takes a while to walk IRIS' learning curve, but once you do it makes perfect sense and, well, it is astonishingly powerful. The price is hard to beat too (free!).

    Why do you collect Offsets but not use them in processing?

    Actually, I usually don't use them, but sometimes I do, so it's real nice to have them and it only takes a minute or two to collect them. Technically, the Darks contain the Offsets, and if you median-combine the Darks (that haven't had the Offset subtracted), then you're really ending up with a "Master Dark plus Offset", and it's that very beast which we're subtracting from the Light's in the Calibrate Lights step. Thus, in effect we are subtracting an Offset from the Lights, just not the specific one(s) we collected.

    However, sometimes I notice that the Calibrated Lights "look too noisy" to me, even after dark subtraction, etc. The cause of this is usually a large temperature difference between the time when (most of) the Lights were captured and the time when the Darks were captured, which can be several hours in time and 10 to 20 degrees Farenheit in temperature. In such a case, the Darks aren't as well matched to the Lights as I'd like. In that case, I'll use the collected Offsets to create a Master Offset (see Digital Photo->Make an offset...), and then use that Master Offset (instead of the dummy, zero-filled file) in the creation of the Master Dark. Then, in the Calibration stage, I'll supply the actual Master Offset (instead of the dummy, zero-filled file) and also check the Optimize box. This asks IRIS to scale the Master Dark to an optimum intensity before subtracting it from each Light, in order to maximize the Signal to Noise ratio of the result. But this function of scaling the Master Dark before subtraction only works if the Master Offset has been subtracted from each Dark in creation of the Master Dark.

    Why do you collect Flats every night? I heard you only need to do this once per optical configuration?

    You heard right. Maybe. If your optics are perfectly collimated; if that collimation never needs adjustment; if the illumination of the imaging chip is perfectly symmetric with respect to the center of the chip and/or you put the camera in the exact same orientation every time; if the number and location of dust spots on the sensor never changes ... then yes, you only need to take one set of Flats for each such configuration. But, in my humble opinion, those are some extremely big "if's", and so I've decided to take Flats every time I set up. It's easy to do and doesn't take very long. Just do it.

    What GuideDog/camera/mount settings do you use for guiding your mount?

    With the standard caveat that Every mount is different, and These settings might not work well for you, here are the settings I've found work well for my mount:

    Autoguide Rates 199.0% of Sidereal
    RA Guide Rate15.0"/s
    DEC Guide Rate15.0"/s
    Maximum Error15.0"
    Minimum Error 21.5"
    RA Backlash0.0ms
    DEC Backlash0.0ms
    Declination Correctionsyes(checked)
    Use Autostar Pulseguideno(unchecked)
    Aggressiveness 3124.0% of computed correction
    GuideScope Focal Length 41026.0mm

    1  The Autoguide Rates (AZM RATE and ALT RATE) are set on the AS-GT mount's Hand Controller, in the Scope Setup menu. These rates must match the RA and DEC Guide Rates configured in GuideDog.
    2  On nights of poor seeing, I increase the Minimum Error parameter to 2.0 or even 2.5 so that GuideDog isn't chasing the seeing, and is really only correcting for errors in the mount's tracking.
    3  You'll have to experiment with the Aggressiveness parameter. I've found that somewhere between 100% and 150% works well for me.
    4  You might wonder why a 400mm GuideScope (the ST80) when fitted with a 2x Barlow yields an effective focal length of 1026mm, not 800mm. That's because a Barlow really only provides its rated focal-length multiplier nominally, and the actual factor depends on the exact spacing of the eyepiece, or in this case, the webcam's CCD from the Barlow's lens elements. In my setup, the actual factor ends up being 2.565x, and hence that effective focal length. The easy way to measure the effective focal length, is to shoot the same, distant, daytime target with the webcam through the GuideScope, with and without the Barlow. Then figure out in Photoshop or some other program by what factor you need to shrink the Barlowed image so that the features in the image have the same size as the un-Barlowed image. Then take that factor and multiply by the GuideScope's focal length.

    As for the webcam, I adjust the ToUcam's settings to the mid-point on the first page of parameters (i.e., Brightness, Contrast, Saturation, etc.), and I use the slowest possible frame rate (5 fps). On the second page, I use the longest exposure time (1/20sec) and then adjust the Gain until the star is nice and bright but not clipped in the preview window. With very bright stars, I back off the exposure time to prevent clipping.

    I think your procedure is seriously flawed. Here's why ...

    Then, by all means, please send your comments to me! I'm always looking for a good tip or a better method than the one I'm currently using. My address is solospam at comcast dot net.

    Revision History

  • Fixed some typos.
  • v0.35/4/05
  • Clarified dithering procedure: one must (un)click the Lock button in GuideDog before slewing the mount. (Thanks Andy.)
  • Added a Background section on Lights, Darks, Offset, and Flats
  • v0.25/4/05
  • Incorporated comments from initial reviewers. (Thanks Jared, Jim, and Rich.)
  • v0.15/3/05
  • Initial release