These are a series of articles that are a work in progress. I am still editing and creating new content for these articles.
Astrophotography is a challenging and rewarding hobby. Good astrophotos inspire awe and fascination like few other things can. Perhaps this is because they show us things that are like nothing else we have seen in day to day life. The universe is like nature's canvas, revealing great swaths of color and form that can challenge even the greatest imaginations. And, the only way to see it in all its glory-- at least for now-- is through photographs. Unfortunately, astrophotography necessarily entails three major enemies of photography: the targets are very small, constantly moving, and very faint. Proper selection and set-up of equipment can solve the first two problems, but the third is where the greatest challenge resides. The purpose of this article is to demystify the science behind tackling this great challenge and provide a firm base of understanding of the fundamentals of photographing what the human eye could never hope to see. Some of the material can be complex and highly technical, but I will do what I can to keep it understandable without oversimplifying. Even if you are already an accomplished astrophotographer, the information in this article can help you to understand the fundamental reasons why you do things the way you do them and may help you improve just that much more. So, let us begin, shall we?
Electromagnetic energy (which includes light) is transmitted via particles called photons. There are a lot of different natural processes that emit light, and we won't go into them here. Generally speaking, though, the emission of light is what is called a stochastic process. Stochastic is a word that essentially means "random" (so why not say random? I dunno). In deterministic (the opposite of random) processes, given some initial state, it is easily predicted what the natural evolotuion of that process will be. For example, say we have a car driving down the freeway at 60 mph. We know that, assuming no changes in speed or direction, this car will be precisely 1 mile further down the road in 60 seconds. With a stochastic process, instead of dealing with only one possible reality of how the process might evolve under time, there is some indeterminacy in its future evolution described by probability distributions. This means that even if the initial condition is known, there are many possibilities the process might go to, but some paths are more probable and others less.
What does this mean for light? Let's set up a simple example. Let's say we have something that emits light in the visible range at a specific brightness. We'll ignore the precise wavelength of the light for now, which works out well for us since a monochrome image sensor won't know the difference either. Basically, since the emitter is a static brightness, it emits photons of light at a static average rate. However, the emission isn't like a regular beat of a drum. For example, if we say the rate is 5 photons per second, then we might expect a photon to be emitted once every 0.2 seconds on the dot. But this is not the case due to the stochastic nature of light. Instead, it could take 0.3 seconds for the next photon to come out, and then 0.15 for the one after, and then maybe 0.2 for the next, etc. However, this randomness isn't purely uniform. The intervals will tend to be close to the expected 0.2 second mark. Because of this, given any finite period of time t in seconds, the approximate number of photons you would expect to be emitted by this source in that time would be around 5 * t. But, because of the randomness, it could be more or less than that. It is this uncertainty that is the source of the primary type of noise in any kind of image capture, and it is called shot noise. But how do we measure this noise?
There are many different types of stochastic processes. The emission of light is specifically a Poisson process (it's pronounced pwaso, it's French). A Poisson process is one where events occur continuously and independently of each other. To be continuous means that they never "take a break" as it were-- there isn't some minimum amount of time between events (though there can never actually be more than one occurring simultaneously). Occurring independently of each other means that the amount of time before the next photon is emitted is not dependent on how much time it took before the last photon was emitted, and will have no effect on the next one. The probability distribution of a Poisson process is, aptly named, the Poisson distribution. A Poisson-distributed random variable takes two parameters: the average rate of events, and the amount of time for which we are counting the number of events. The Poisson distribution is a discrete probability distribution. This means it only deals with discrete values (in this case integers). You can't, for example, determine the probability of 103.237 photons being emitted, as this would make no sense. It just so happens that the normal distribution (aka the Gaussian distribution, a continuous probability distribution) is a perfect approximation for the Poisson distribution. This particular normal distribution will have both a mean and variance equal to the product of the average rate and the time period of interest (what we could say is the "expected" amount of signal). The fact that the variance equals the mean is very useful and gives us an easy way of quantifying the amount of noise in a digital image. Statistically speaking, the amount of noise in the image can be quantified by the standard deviation, which itself is the sqare root of the variance. Since the variance in our case is equal to the mean, that means that the amount of shot noise in any image would be the square root of the expected amount of signal.
If we consider this for a moment, we notice that the amount of noise increases with the amount of signal. This seems counter-intuitive, as we would expect noise to go down as signal increases, but in reality this is kind of what happens. This is because human visual acuity is really based on contrast. For example, if we assign something an arbitrary brightness value of 10, and then place something next to it with a value of only 5, the difference between the two would be obvious. The first item is twice as bright as the second. However, if the first item is a brightness of 1000, and we place something next to it with the same brightness difference as the first case, making it a value of 995, they would look pretty much the same to our eyes, because we couldn't detect that relatively small difference in brightness. It is this very same reason why light pollution makes it harder to see faint objects, and why we can't see stars during the daytime. Back to the issue of noise, since the signal will increase at a faster rate than the noise, the ratio between the two, called the Signal to Noise Ratio (SNR), will continue to increase, and even though the magnitude of the brighness variations caused by noise is increasing, how big they are compared to the amount of signal goes down, so we see them less due to the reduced contrast they have. So, the SNR is the real value we want to pay attention to. It is simply the signal divided by the noise, which in this case would be the signal divided by the square root of itself, which simply gives you the square root of the signal. So, if you increase the signal by a factor of 4, the SNR increases by a factor of 2.
It is this very simple calculation that will dominate the math we will be doing in this article. However, there is one more topic we need to consider before moving on, and that is combining two images together. Essentially, since the number of photons captured on each pixel can be considered a normally distributed random variable, then the sum of two such images is the sum of two normally distributed random variables. Such a sum is also a normally distributed random variable with a mean equal to the sum of the input means, and a variance equal to the sum of the input variances. So, the standard deviation of this new random variable, and therefore the noise, would be the square root of the sum of the two signal inputs, which you could also say would be the square root of the sum of the squares of the noise from the two inputs. In mathematics, taking the square root of the sum of the squares is called summing in quadrature. When combining two signal inputs like this, the resulting noise is the sum in quadrature of the noise components of the two inputs. This is an important concept to remember as this is essentially what allows us to take multiple subexposures and stack them to create better images, as we'll see later when we get into the math.
The emission of light is a random, or "stochastic", process. Photons are emitted at a certain average rate depending on whatever circumstances are causing the emission, but this rate is only an average, and does not denote a static interval of emission. Because of this, when we record light, there are going to be statistical variations we call shot noise. The magnitude of this shot noise is measured as the standard deviation, and this value is equal to the sqare root of the expected signal. However, the best way to measure how noisy an image is is by using the Signal to Noise Ratio (SNR) which itself is easily computed by taking the square root of the expected signal. Additionally, when combining two images together, the resultant expected signal value is the sum of the combined input expected values, and the noise is the sum in quadrature of the combined noise values, which is the square root of the sum of the squares, which simply works out to be the square root of the sum of the input expected values. Phew. So we now understand shot noise, which means we are ready to go ahead and stack some images then, right? Well, unfortunately, no. Shot noise may be the most important noise contributor but it isn't the only one. We have to look at how image sensors capture images to learn the whole story, which we cover in the next section.
We now have a firm understanding of the two main types of noise we have to deal with in an astrophoto, shot noise and read noise. Before we begin doing math we have to consider the units for the values we are going to discuss. How much signal we capture can be represented by multiplying the average rate of the signal with the amount of time we are exposing. The average rate should be, in our case, a measurement of flux. Flux is how much of something passes through a certain area in a certain time. We have to use area, because we want to consider the amount of signal reaching each pixel, and each one takes up a certain area. Since pixels have a size measured in micrometers (μm), we could use units of photons per minute per square micrometer. However, we should remember that the photodiodes do not record every single photon that strike them, but only a certain percentage based on wavelength. When they do record one, an electron of charge is stored. So we can use electrons instead of photons. And, instead of using square micrometers, we should use a unit of area we'll just call the pixel. Since different cameras have different sized pixels, how big this unit really is depends on the camera being used, but it makes things easier to work with. So, the "brightness" of a particular part of an object is measured in electrons per minute per pixel. We can also use this to measure the rate of dark current. This also means we'll be using the minute as our time unit, though using seconds or some other unit is not incorrect. Ultimately the flux value will depend on the telescope (mostly focal ratio) and the camera (sensitivity, pixel size, etc) so no target can be said to have a specific flux universal to all equipment setups.
We know that the two primary sources of noise in our images will be shot noise from signal, and read noise from the camera. Let us define some variables:
r = read noise of the camera
t = signal flux of our target (in electrons per pixel per minute)
d = dark current flux of camera
s = skyglow flux
L = subexposure length
X = number of frames in a stack
We know that two different noise sources, when combined, sum in quadrature. So, if S is the total amount of signal acumulated in an image, the magnitude of the combined shot and read noise from a single frame would be:
![]()
When we capture an image, we have three different signal inputs. There is of course the target, then there is the skyglow, and finally there is the dark current. So the SNR of a single subexposure would look like:
![]()
The first thing we do with our subs typically is subtract a dark frame to remove the dark current contribution to the overall signal. To do that, we will capture dark frames. Typically, multiple dark frames are captured and stacked to reduce the shot noise component from each. The SNR of a signal dark frame looks like:
![]()
We will then combine multiple dark frames, and then divide by the number of frames Xdark (essentially averaging). This leaves us with a final SNR of the dark frame as:

When we subtract the dark frame from the image, we will remove the dark current component from the signal, but we must add (since noise is never negative) the noise component in quadrature to the noise segment. That gives us:



We will create a value called the dark noise factor
in order to simplify the equation and substitute, giving us:
![]()
Since the number of stacked dark frames will always be a positive number, the dark noise factor will always be greater than one. More dark frames makes this value smaller. Because of this, subtracting a dark actually increases the total noise in the image. But, since the dark noise factor should be fairly close to 1, and since the dark current noise and read noise should be relatively insignificant noise contributors, this increase should be very small.
Typically at this point we would divide the image by a flat frame. However, we are not going to consider this step here. Since the flat frame will have it's own noise, this division will have some effect on the overall SNR of the image, but the division of two normally distributed random variables is an extremely complex mathematical problem and trying to incorporate that would make the math pretty much unintelligible. The effect on SNR from this division, assuming a good flat, should not be significant in any way so it is safe to ignore it for now.
The next step after flats would be stacking the subexposures. We'll assume just a straight summation for now to make the math simpler. We will also subtract a constant value that equals the sky glow (we assume it is relatively uniform across the frame) When we do this, we get an SNR of:
![]()
Let us consider the total integration time T = X * L and substitute that in, giving us


So we see that our overall SNR is proportional to the square root of the total integration time. We also see that the longer subexposures will reduce the effect of read noise on the final image, regardless of the total integration time. We also see how skyglow is an important contributor to noise. Not only do darker skies make it easier to image faint objects, darker skies allow you to image more detail with less total signal.
Now that we have this equation, we can use it to help us understand how to get the data we want in the most efficient way possible. We will explore this in the upcoming sections.