April 20, 2012

Weekend Project: Discover Linux Astronomy Tools

Considering Linux's foothold in everything from embedded devices to supercomputers, describing the project's growth as astronomical is no exaggeration. But it is a literal truth, too, as Linux and open source software power scores of professional and amateur astronomy projects. Whether you need to precisely drive a large telescope for scientific purposes or just want to create decent-looking astrophotography, chances are there is a project out there already suited for the task.


Step one is figuring out where to point your telescope. If you don't know where to look, the chances are you won't see anything interesting. Fortunately, just about everything from the local planets and asteroids out to deep sky objects is well-cataloged; what you need is a way to translate the celestial position of an object into the coordinates for your position on the ground, at the point in time you intend to be looking up. Astronomers use tables called ephemerides to keep track of these ground-observer positions. But with a computer at hand, you can put away then pencil and paper, and calculate your spotting information on-the-fly.

At the simple-end of the spectrum you find CLI tools like aa (for Astronomical Almanac), a GPLv2 app that calculates positions and velocities for planetary bodies and stars, with a simple, menu-driven interface. It is packaged for Debian, so other distros may carry it, too.

PyEphem is a flexible Python alternative that lets you load in your own data sets from other sources; available options include the International Astronomical Union, NORAD, and interesting private collections such as old space probes.

Skycalc mixes ephemeris functionality with a heads-up planetarium-style display. An even more flexible package is uniMap, which integrates photo-matching and other features discussed below. Finally, check out Ephcom and XEphem, which are older applications but are still good to have around.Skycalc

Two other projects related to the task of generating ephemerides are creating your own charts and logging observations. PP3 is a LaTeX chart generator; it can help you plot out your sky-watching session or create visual aids. Observation Manager allows you to take careful logs of what you see – which will come in handy when you discover that comet that isn't listed in anyone else's ephemeris....

Scoping Out

Once you know precisely where to look, however, you'll rapidly discover that you need a lot of precision control to aim your telescope and to track objects as the sky moves. A lot of amateur astronomers shell out big bucks for devices that will automatically rotate their telescopes to track the sky, or even dial-in an object by name. That sounds like no fun at all, but luckily there is a homebrew, open source route, too.

Obviously your controller software will need to be tailored to your hardware, but there are only a few major vendors. If you have a Celestron scope, NexControl is for you. XmTel supports Celestron NexStar, Meade LX200, Planewave Instruments, Galil motion controllers, and several other systems – plus it can be controlled remotely, thanks to the open source INDI software stack.

Some slightly older applications may be worth checking out if you have tricky hardware needs, such as Nova, which bundles telescope control, ephemeris, and image capture, or STV, which is built to control SBIG brand guide systems.

The above projects target specific hardware, but there is something to be said for the complete do-it-yourself approach, too. Many people get into amateur astronomy with low-cost Dobsonian telescopes, and add their own equatorial mounts later. There are experienced builders like BBAstroDesigns who offer hand-made telescope controllers, and makes the hardware designs and software available for free.

Open PHD Guiding (which stands for "Push Here, Dummy") is a hardware-neutral system that is self-calibrating, so you can let the software figure out how fast the motors move the telescope. Open Focus is a similar project focused (no pun intended...) on autofocusing, which is no simple feat.

In addition, there are plenty of Arduino-based solutions, like ejholmes's ASCOM Driver. A great place to get started with homebrew control is the SGL Observatory Automation project, which tackles focusing, telescope control, and several other pieces of observatory automation.

Don't Forget the Camera...

You can certainly have an excellent stargazing experience using solely the human eye (well, through the telescope), but if you want to capture digital photos of the night sky, open source software can help you there, too. As with telescope control, there are solutions for commercial products and for homebrew devices.

For SBIG's USB CCD capture devices, NightView can control the camera, setting the binning mode, exposure type, and shutter length, as well as set the CCD temperature and control any filter wheels attached. For serial and parallel-port SBIG cameras, you will want to look at Shiny.

XmCCD, from the makers of the XmTel software mentioned above, supports some SBIG and Apogee models, plus several brands of filter wheel. GCX is older, but supports some Meade cameras.

Qastrocam and its sibling Qastrocam-g2 are both designed to work with standard webcams – although you will need to mount them to your telescope with an adapter, and your results will be better if you get a high-quality, CCD-based webcam. Audela bridges the gap, providing a uniform interface to USB webcams, more expensive CCD capture devices, and even DSLRs.

Image Processing

Capturing raw images is not the end of the process, however. You will still need post-processing software to transform your data into usable pictures, whether for aesthetic or scientific purposes. That is because astrophotography pushes the limits of even the best capture device, due to the dim light of sky objects. For pure photography, you will generally want to make multiple exposures and stack them together to produce sharp images. For any sort of scientific usage – even ensuring something as simple as accurate color – you will tackle a task called "reduction" that attempts to alleviate the effects of sensor noise and ambient heat, by averaging multiple frames, subtracting "dark frames," and so on. You may also need to precisely align your images and identify objects by their catalog numbers.

On the scientific front, there are a lot of packages to choose from, including all-in-one packages like AstroBuffer, SAOImage DS9, FITS Liberator, and GCX (mentioned above), plus standalone tools that tackle one part of the process – sometimes intended to be called from scripts and other applications.

In this category you will find ISIS, IRAF, stecf, SWarp, WCSTools, and WeightWatcher. A whole other suite of options are available for matching the objects in your images to known celestial catalog entries, such as SExtractor, and Montage.

But don't worry if the high-end tools seem intimidating at first glance; there are "amateur" applications as well, such as uniMap (mentioned above) and Dark Master. In addition, many of the all-in-one processing apps are perfectly suited to producing frame-worthy images. Just be aware that you may have to read up a bit on which of the options interest you and which are overkill.

Turn Off the Lights and Go Outside

We may not have space stations and orbital telescopes running completely Linux-based software, yet. But as you can see, Linux and open source have a wealth of technology to offer the astronomy sector, from amateurs building their own telescopes right up to full-time researchers processing deep-sky imagery. In fact, there is so much out there that it almost seems too easy. But you can always seek refuge from the throngs by going even further afield, say to radio astronomy. As a matter of fact, yeah, Linux and open source software at work there, too – such as GNU Radio Astronomy and AIPS – but at least it is slightly less crowded.