Wednesday, January 29, 2014

An introduction to quantative astrophotography on Linux: Part 1

My work duties briefly had me thinking about some basic astronomical image processing questions that ultimately did not need to be solved as part of that project. Nevertheless the issue was interesting enough to make me perform a simple astrophotography experiment with a normal camera and some open-source software. As many of the astro-photography websites I browsed as part of my research for the work project, and for this experiment, used much expensive hardware and essentially “black-box” GUI Windows-based software, I thought it would be possibly helpful to publish my experiences on this blog.

The aims

The aims of this first experiment are to get answers to the following questions:
  1. What kind of astrophotography can be accomplished with a basic DSLR and a static tripod in the middle of suburbia? What kind of spatial resolution, signal-to-noise, and limiting magnitude can we achieve without specialized equipment?
  2. What are the basic physical characteristics of DSLR astronomical imagery? How big are the pixel sizes, what are the dark current and bias levels, etc etc?
  3. Can satellites, in particular Geostationary satellites, be imaged with such a simple set of equipment? They definitely can be with slightly better equipment - see Dave Kodama’s astrophotography page and Sinnbilder’s post at DPReview.
  4. How easy is it to process RAW files into a format that quantitative astrometry and photometry can be performed on them, using only open source software?

The equipment

  • A Canon Digital Rebel XTi (aka EOS 400D) using the standard “kit” 18-55mm f/3.5-5.6 lens.
  • A nice lightweight tripod who make and model I cannot remember.
  • A computer (a 2008-era Aluminum body 13” Macbook running OS X 10.8 and more importantly using macports for the open-source software). Processing (see later articles) would have been easier if I’d used Linux directly but it was simply more convenient for me to use this old Macbook’s OS directly without resorting to the use of a desktop or a virtual Linux machine.

The observations

On a cold January night (22 degrees Fahrenheit) that was apparently cloudless I set the camera to shoot in RAW mode with 30 second exposures. This is is suburbia, so the site was not totally free of light pollution from the various deck-lights and streetlights associated with the surrounding houses. I had trouble getting the lens in focus by hand, so back inside I set the lens to AF and camera to auto everything and focussed on the most distant thing I could across the house.

I set the tripod and camera up on our deck and started by taking a series of 30 second images of Orion. I chose Orion as the excellent Satellite AR app on my android phone showed an arc of Geostationary satellites going through the southern half of Orion. I experimented with different ISO levels during the run, 400, 800 and 1600 as I was interested in noise levels and star brightness as a function of ISO, and also was worried about saturation of the brighter stars. In future I will use ISO 1600 throughout the night.

Following the Orion images I took a series of images of the field around Jupiter, which was quite bright that night and up in Gemini. I was wondering if  the planet’s image would be resolved, whether could the moons be separated from the planet, and whether the apparent motion of the planet across of the sky could be distinguished from the sidereal motion of the stars.

Finally I took a set of 30 second dark frames: two exposures each as each ISO, and them two 1/4000 second exposures at each ISO. The later images will be used to determine bias levels. I was careful to make sure these images were taken while outside at the same temperature as the observations, as the dark current can be expected to be temperature dependent.

I forgot to take any “dome” flats when I went inside, and finding something white and uniformly illuminated in the house was so difficult that I gave up on getting any rough flats for this first experiment.

FileName     DateTime                  ISO   tsec fstop flen rows cols target
_MG_0670.CR2 Sat_Jan_18_21:47:25_2014  400     30 f/5.6 30.0 2602 3906 orion
_MG_0671.CR2 Sat_Jan_18_21:48:17_2014  400     30 f/5.6 30.0 2602 3906 orion
_MG_0672.CR2 Sat_Jan_18_21:48:57_2014  400     30 f/5.6 30.0 2602 3906 orion
_MG_0673.CR2 Sat_Jan_18_21:49:37_2014  400     30 f/5.6 30.0 2602 3906 orion
_MG_0674.CR2 Sat_Jan_18_21:51:05_2014  800     30 f/5.6 30.0 2602 3906 orion
_MG_0675.CR2 Sat_Jan_18_21:51:45_2014  800     30 f/5.6 30.0 2602 3906 orion
_MG_0676.CR2 Sat_Jan_18_21:52:25_2014  800     30 f/5.6 30.0 2602 3906 orion
_MG_0677.CR2 Sat_Jan_18_21:53:05_2014 1600     30 f/5.6 30.0 2602 3906 orion
_MG_0678.CR2 Sat_Jan_18_21:53:55_2014 1600     30 f/5.6 30.0 2602 3906 orion
_MG_0679.CR2 Sat_Jan_18_21:54:34_2014 1600     30 f/5.6 30.0 2602 3906 orion
_MG_0680.CR2 Sat_Jan_18_21:55:23_2014 1600     30 f/5.6 30.0 2602 3906 orion
_MG_0681.CR2 Sat_Jan_18_21:56:07_2014  800     30 f/5.6 30.0 2602 3906 orion
_MG_0682.CR2 Sat_Jan_18_21:56:42_2014  800     30 f/5.6 30.0 2602 3906 orion
_MG_0683.CR2 Sat_Jan_18_21:57:19_2014  800     30 f/5.6 30.0 2602 3906 orion
_MG_0684.CR2 Sat_Jan_18_21:57:55_2014  800     30 f/5.6 30.0 2602 3906 orion
_MG_0685.CR2 Sat_Jan_18_21:59:11_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0686.CR2 Sat_Jan_18_21:59:49_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0687.CR2 Sat_Jan_18_22:00:27_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0688.CR2 Sat_Jan_18_22:01:03_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0689.CR2 Sat_Jan_18_22:01:38_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0690.CR2 Sat_Jan_18_22:02:13_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0691.CR2 Sat_Jan_18_22:02:49_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0692.CR2 Sat_Jan_18_22:03:26_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0693.CR2 Sat_Jan_18_22:04:02_2014  800     30 f/5.6 30.0 2602 3906 jupiter
_MG_0694.CR2 Sat_Jan_18_22:04:46_2014  800     30 f/5.6 30.0 2602 3906 dark
_MG_0695.CR2 Sat_Jan_18_22:05:41_2014  800     30 f/5.6 30.0 2602 3906 dark
_MG_0696.CR2 Sat_Jan_18_22:06:22_2014 1600     30 f/5.6 30.0 2602 3906 dark
_MG_0697.CR2 Sat_Jan_18_22:06:57_2014 1600     30 f/5.6 30.0 2602 3906 dark
_MG_0698.CR2 Sat_Jan_18_22:07:40_2014  400     30 f/5.6 30.0 2602 3906 dark
_MG_0699.CR2 Sat_Jan_18_22:08:14_2014  400     30 f/5.6 30.0 2602 3906 dark
_MG_0700.CR2 Sat_Jan_18_22:09:03_2014  400 1/4000 f/5.6 30.0 2602 3906 bias
_MG_0701.CR2 Sat_Jan_18_22:09:09_2014  400 1/4000 f/5.6 30.0 2602 3906 bias
_MG_0702.CR2 Sat_Jan_18_22:09:21_2014  800 1/4000 f/5.6 30.0 2602 3906 bias
_MG_0703.CR2 Sat_Jan_18_22:09:23_2014  800 1/4000 f/5.6 30.0 2602 3906 bias
_MG_0704.CR2 Sat_Jan_18_22:09:31_2014 1600 1/4000 f/5.6 30.0 2602 3906 bias
_MG_0705.CR2 Sat_Jan_18_22:09:32_2014 1600 1/4000 f/5.6 30.0 2602 3906 bias

Initial Outcome

Two of Orion and two of the Jupiter/Gemini images, after bad-pixel and dark current removal, lightly smoothed and on a Log10 intensity scale.
Going through the images on the camera showed I’d had a good series of Orion images, with the sword being very prominent compared to the view “by eye”. The motion of the stars was clearly apparent even within the 30 s exposures, and over the entire series the stars moved many degrees. In contrast a Geostationary satellite would be at the exact same location in each image. Some (processed) frames are shown.

The Jupiter/Gemini images were also of reasonable quality. The dark frames (discussed in a future post) clearly showed a number of bad pixels in the camera that are not normally apparent in well-lit normal exposures.

Next episode...

In the next part of this series (Part 2) I’ll cover the steps of converting the RAW files on the camera into the FITS format used by professional astronomers and professional astronomical software.

Post a Comment