A project I created for myself where I would photograph every NGC object visible from my observatory’s location, with the aim of significantly improving the level of automation of my observatory.
The NGC (New Generation Catalogue) is a catalogue of 7900 celestial objects. Typically they are the brighter 7900 objects in the night sky, excluding stars and solar system objects.
The NGC catalogue is heavily used by amateur astronomers when finding objects to photograph, usually for the sake of ‘pretty pictures’. There are many NGC objects which are extremely well know, such as NGC 253 (silver coin galaxy, NGC 104 (47 Tucanie), NGC 5139 (Omega Centauri), and so many others. But there are also many NGC objects rarely photographed.
NGC objects are distributed across the entire night sky, northern hemisphere and southern hemisphere. Density/distribution of NGC objects across the night sky varies, with some areas containing high densities of galaxies, others of open clusters, others of globular clusters, etc.
Why the project?
In recent years my astronomy has taken a turn away from ‘pretty picture’ astrophotography and towards more research/science orientated astrophotography. This has been driven by equipment suitability and personal tastes.
During early 2008 I was looking for a new project. At the same time I was doing some observations of comet 8P-Tuttle for Italian astronomer Federico Manzini. Recording these observations was very enjoyable but sometimes hard or impossible due to other commitments such as work, exhaustion, or many other reasons. Often it would seem I was unable to make observations on nights that were otherwise perfect – clear sky, stable viewing conditions.
The inability to make observations purely because I personally was not able or willing to spend time out in the observatory got me wondering just how good I would have to get the automation of my observatory to make recording data on such nights practical, without my participation.
To improve the level of automation of my observatory I needed an ongoing purpose/activity to concentrate on. The comet observations were just about done, and weren’t required on a “every night” basis. I needed something new, more challenging, and ongoing.
Enter the thought, “how about I photograph every NGC object in the night sky?”. I knew there was no way I could do this manually, I would be out there all night every night, or just give up. So it would force me to improve the automation of the observatory.
Prior Automation Capabilities
Prior to Project NGC I had been already using the following software together to run the observatory overnight after my initial setup for the night:
- CCD Commander
- Software Bisque TheSky
- Software Bisque CCDSoft
However there were many limitations of how I was utilizing the above setup:
- A night’s script was of one object only, recording several hours data of that one object. This simplified the process because there was no moving between objects which would require a high level of GoTo accuracy.
- No focusing was involved in the automation. Relating to not moving between objects, I was also not moving from object to star (for focus) to object. This meant the camera stayed at the one focus all night. Image quality would usually deteriorate slightly throughout the night as a result.
- Configuring a night’s script took significant time. I would spent usually an hour or two finding a suitable object with suitable guide star, running test exposures, ensuring the object would be correctly positioned for the entire night, ensuring the telescope would not come to physical harm due to positioning, starting the telescope up, focusing, etc.
- Processing images from a night’s observing would take a minimum of an hour, more likely longer.
What needed to improve?
I identified the following areas of automation which required improvement in order for the project to be successful:
- Short setup time. My aim was 15 minutes from the moment I unlock the door of the observatory, to the moment I leave it running for the night.
- Moving between several objects with sufficient GoTo accuracy.
- Focusing several times during the night.
- Image processing automation, preferably with no manual intervention.
- Number of objects, 100/night seemed like a nice expectation.
Steps to Success
I prioritised the requirements as follows:
- Ability to move between objects with sufficient GoTo accuracy
- Short setup time
- Image processing automation
The ability to move between objects with sufficient GoTo accuracy has largely been solved by smart object sequencing, together with successful plate solves.
- Getting plate solves working was the first step. This ended up being a case of increasing the exposure time sufficiently (25 seconds with binning at 1×1) and narrowing the parameters used in plate solving (camera rotation, pixel size, search boundaries), and ensuring that all available catalogues were enabled for plate solving. Also I discovered that in CCDCommander I must use “offset” not “sync”.
- Smart object sequencing has reduced the reliance on plate solves. Initially I was running a plate solve for every object. This kept the number of objects covered on any one night to around 40. By changing the algorithm I use for choosing objects for a given night, and the sequence within which they are imaged, I was able to drop the number of plate solves to only two for each hour of RA. The two plate solves are done on the first two objects for each RA. That ensures that for that RA, even if one plate solve fails, there’s a good chance that objects will be well centered. I then proceed through the objects in DEC sequence, moving from south to north, eliminating any effects of backlash as there is no “going back and forth” in DEC. RA has no backlash on my system.
Short setup time has been achieved largely by creating two sets of VB and MS Access tools to improve automation. One set for pre-night processes and one set for post-processing.
- Before a night I run one set which updates acquired catalogue numbers, sequences remaining objects, generates a list of appropriate objects for that night and extracts that list of sequenced objects to a file format suitable for importing to CCDCommander.
- After each night I run a second set which reduces, repairs (column defect), re-organises into named folders, aligns and stacks all the images from a given night. I then run a Photoshop automation batch against the stacked images to perform some levels/curves etc processing and generation of 16 bit TIF and 8 bit JPG files. I then manually check the files to ensure there are no “duds” (cloud, fog, tree, etc results in incorrect alignment and stacking usually showing up as a bright white image or a black image) and remove these to have them re-acquired in a subsequent run.
Focusing was initially hard because of the ability to accurately GoTo a suitable focus star, and the general reliability of focusing.
With the Plate Solve issues fixed focusing was more praictical, as I could more reliably put a suitable star in the FOV.
- Focusing is done using FocusMax and CCDSoft. Every two hours of RA I schedule one focus on a bright star (magnitude 6-7) nearby the next NGC object which will be acquired.
- As I’m using CCDSoft & TheSky not MaximDL & PinPoint I need to manually pick a suitable star to focus on and move to that star, rather than having the FocusMax automatically find a nearby star.
- I found it unreliable to focus on the same FOV as NGC objects. If the objcts were bright, such as a galaxy with a bright core, it was easy for FocusMax to choose that as it’s focus “star” and then get an erroneous focus as a result.
Image processing automation I will go into in more detail later, but for now I will summarise my process here:
- CCDSoft is used for capturing and reducing of image files.
- Custom VB application is used to invoke CCDSoft for each reduced file, repairing a column defect.
- Custom VB application is used for re-organising files into appropriate directory structure.
- Custom VB application is used to create a RegiStar script for all NGC objects being processed.
- Custom VB application executes RegiStar with the generated script as a command line parameter.
- RegiStar aligns and stacks the images.
The sequence of image capture
It is about here that I should elaborate more on the sequence of objects which I use for image capture, as this is quite critical to the success of my project. By refining the sequence within which objects are imaged I have managed to bypass many problems inherent in a setup on the relatively budget scale of mine.
Initially I wrote a relatively involved program to generate a list of objects where for each one hour of RA n objects would be selected, in Dec sequence, scattered across the entire Dec range (for that RA). The advantage of taking images of objects scattered across the entire Dec range for each RA was that I ended up with a nice scattering of observations across the sky, perhaps avoiding trees, clouds, and just providing a more even ‘scan’. The problem was GoTo accuracy (objects would be in the FOV, but not cetral) and the complexity of the algorithm (mainly with respect to maintenance and ‘tweaks’).
Following that initial process I realized that if I were to end up capturing all NGC objects anyhow, I may as well just start at one end of the sky (south) and move north over time. This had the advantages of reducing slew times and improving GoTo accuracy quite dramatically. Also, the process of determining correct objects to image was dramatically simpler. This is how I have ended up tackling most of the observations. The process is as follows:
- For each RA n images can be imaged such that the telescope stays pointing in the one area of the sky for the whole night. That is, for each hour, it must move east the same amount such that it stays pointing at about the same Altitude. This ended up being 6 objects I could capture per RA.
- Within each RA, sequence not-acquired NGC objects by declination, starting at the south celestial pole.
- On a given night create a list of NGC objects starting at an appropriate RA (15, say) continuing to an appropriate RA (5, say), selecting 6 objects for each RA, from the sequenced (by Dec) list.
- I then end up with a list of objects sequenced by RA hour then Dec, with 6 objects per RA hour and a maximum of 84 objects in the list for any one given night.
The actual algorithm is a bit more complex than is stated above because there are situations such as where there are insufficient remaining objects in a given RA to make up 6, in which case n would be taken from that RA, and 6+(6-n) from the next RA (and so on).
An example list of objects ready for importing to CCDCommander:
Exposure Time Details
You might be wondering above “why is he only doing 6 objects each RA? That isn’t many!” Well, read on.
Early on I decided on an exposure time of 30 seconds, and 10 exposures of each object. I decided on this because:
- Exposures must be unguided (to make the project possible by keeping image capture/prep time down).
- 30 seconds unguided exposures rarely showed star trails
- 30 seconds was a reasonable maximum of what I could image without star trails on images, and I wanted as longer exposures as possible.
- 10 exposures was a nice round number that in the past had proved to allow enough to cull some and still keep minimum data.
So each NGC object takes 300 seconds (5 minutes) to capture. However, there’s more.
Added to 300 seconds per object are:
- Download time. My ST7 is a parallel camera and as such a full frame 1×1 image takes about 12 seconds to download.
- Plate Solve time. I do two plate solves for every 6 image. Each plate solve, including download time, takes about 40 seconds (25 + 12 + 10).
- About every two RA I re-focus the camera. A re-focus takes about 80 seconds.
- Slewing between objects takes time. Guess at 10 seconds including post slew delay.
The total times work out at:
- Per Object:
- 420s (exposures) + 16s (plate solves) + 7s (focus) + 10s (slew)
- Total per object: about 453 seconds
- Per RA:
- About 2718 seconds (46 minutes)
In practice there’s some extra time taking up in general automation & processing & ‘house keeping’ which means 6 objects per RA is safe. I must ensure that the time predicted for an RA is less than or equal to actual, such that the telescope moves east if anything rather than west where it would head over the meridian. Heading over the meridian would be bad:
- The telescope would likely end up straddling the meridian as it moved from one RA to the next back and forth across the meridian for several RA before settling to the west side of the meridian.
- Mirror flop or the like would occur, requiring refocus and meaning objects would be slightly more off-centre until the next plate-solve.
- I image on the east side of the sky, away from city light pollution (Perth is to the west of me), ideally at about 70-80 degrees altitude.
The following tools are being used for image processing in this project:
- CCDSoft (reduction, repair)
- Custom VB application (control of repair, re-organise files, align, stack)
- RegiStar (align, stack). RegiStar is used because CCDSoft does not provide automation capability of image processing such as reduction, alignment, stacking. RegiStar does, via command line options.
- Adobe PhotoShop (final levels, curves, crop)
The process is as follows:
CCDSoft is invoked manually to reduce the directory of all images from a single night. It is left to run, and takes about 15 minutes to do so.
- The custom VB application is started.
- In the custom VB application the rest of the process is initiated via a single button click. It then takes about 65 minutes to complete. This follows through:
- A column defect repair is initiated. This controls CCDSoft, having it repair a column defect on every image. This takes about 5 minutes.
- The single directory of image files from the night is reorganized into a structure of directories each named for it’s object (“NGC 360”) and each having sub-directories of raw files and reduced files. An empty “stacked” directory is created, in preparation for RegiStar running.
- A RegiStar script is generated which contains actions to align/register and stack/combine all image files from the night, done per object with the resulting stacked file stored in the “stacked” sub-directory of each object folder.
- RegiStar the program is invoked and the script run. It is left to run, and takes about 45 – 60 minutes.
- PhotoShop is manually started, each of the stacked files is opened (in baches of about 20) and an “Action” run against each which performs levels, curves, etc. I do this manually so that if I see one that’s obviously failed (cloud, etc) I don’t run the action against that object. The result of the photoshop action is a TIF image being created in a “completed” directory, along with a JPG version of the TIF. This is the most manually intensive part of the process and takes about 5-10 minutes.
- I then glance through the thumbnails of the completed images and delete erroneous object images from the “completed” directory.
Later, when preparing the next night’s script, a database is updated with acquired images based on the contents of the “completed” directory, and NGC object folders of raw images of objects which do not exist in the “completed” directory are deleted.
Project Status & Results
As of May 2010 I have 1963 objects successfully imaged. Many more have been imaged but deleted or later re-imaged due to such factors as fog and cloud. The project was started in February 2008. I hope to complete the project in the next year or two.
Below shows a scatter plot of the images acquired so far (click to view larger). This shows each NGC object where it is positioned in the sky. That is, imagine the sky is flat and shown on this graph. RA goes from 0 to 24 and Dec goes from -70 to +40, the range of declination able to be photographed by my telescope. Click for a larger image.
If you would like to have a copy of the images taken as part of this project you are welcome to them. For A$10 I can send them to you via DVD. Included is:
- Combined (sum) 16bit .FIT file for each object
- JPG 8bit version of the combined .FIT file
To receive a DVD email me.
Individual RAW and reduced exposure files for each object are available upon request also, but not normally distributed.
Eventually I hope to have the entire catalogue of acquired NGC objects available online. At the moment this isn’t practical.