Keywords: gcx

Subsections

- Features
  - Image handling
  - Catalogs and WCS
  - Camera Control
  - Telescope control
  - Aperture Photometry
  - Multi-Frame Reductions
  - Interfacing
- Free Software
- Contributing
- About this Manual
- Related Projects

# Introduction

The previous version of GCX , CX was written to control the newly designed `cpx3m` ccd camera. Once the basic camera control functions were running, it was easy to add some LX200 control functions, so that the telescope could be pointed at various objects without having to switch applications.

Having telescope control and image acquisition integrated into one program makes the following step obvious: after entering goto/get commands over several cold nights, one wants to automate the process--especially if he observes a large number of fields every night (as when doing variable star work).

The fact that the author's telescope doesn't point precisely doesn't help automation. So the ability to check/correct the pointing becomes essential. `cx` first got the ability to read star information from the GSC and overlay it on the images; that eases visual checks (one doesn't need maps anymore) but still is one step short of full automation.

Finally, when reliable field matching was implemented in GCX , it became possible to make the program fully automatic. In the current version, GCX can run through a list of observations completely unattended, and only stops if clouds roll in.

As it happens, field matching and image processing are also essential steps for CCD photometry. Over the time, the photometry functions of GCX have expanded continuously up to the point where they contribute the largest part of the program. It is currently possible to reduce photometric data frames in a completely automatic fashion, and perform color transformations, transformation coefficient fitting and all-sky reduction with relative ease.

# Features

#### Image handling

- Open/save 16-bit FITS image files;

  GCX uses floating-point images internally, so other FITS formats are easy to add;

- Zoom/Pan images, adjust brightness/contrast/gamma in an intuitive way, appropiate for astronomical images;
- Convert FITS files to 8-bit PNM after intensity mapping;
- Show image statistics (both global and local);
- Maintain a noise model for the image across transformations; //
- Maintain bad pixel information;
- Perform ccd reductions (dark/bias/flat);
- Automatically align (register) and stack images.

#### Catalogs and WCS

- Read field star information from GSC1/2 and Tycho2;
- Read object information from `edb` and native files;
- Read recipe files;
- Detect sources (stars) from images;
- Overlay objects on the image;
- Edit objects' information;
- Match image stars to catalog positions;
- Calculate world coordinates for image objects.

#### Camera Control

- Control cameras over a TCP socket using a simple protocol;

  The control proces (`cpxcntrl`) presently supports the cpx3m camera. It can be easily modified to support other cameras.

- Acquire images under script control;
- Set binning/windowing/integration times/temperature;
- Dark frames;
- All acquired frames are fully annotated in their FITS headers;
- Auto-generate descriptive names for files.

#### Telescope control

- Support LX200 protocol over serial;
- Point telescope under script control;
- Point telescope by object name (if edb catalogs are installed);
- Refine pointing by comparing image star positions with catalogs;

#### Aperture Photometry

- Do sparse field stellar photometry using fixed circular apertures for stars, annular apertures for sky estimation;
- Aperture sizes fully programmable;
- Multiple sky estimation methods;
- Uses a complex error model thorughout, that takes into account photon shot noise, read noise, noise of the callibration frames and scintillation;
- Report noise estimates for every result;
- Take photometric targets (program and standard stars) from recipe files, or directly from the image;
- Produce a comprehensive report.

#### Multi-Frame Reductions

- Fit color transformation coefficients from multiple frames;
- Fit extinction coefficients;
- Perform all-sky reductions;
- Generate various plots for data checking;

#### Interfacing

- Uses plain-ascii files for configuration files, reports and recipies;
- Implements import filters and an output converter to interface with tabular formats;
- Most functions available in batch mode, so the program can be made part of a script.

# Free Software

Gcx is free software, distributed under the GNU General Public License. Users can modify it to add features, reduction algoritms, support for other cameras/telescopes, file formats. It is written in C. The GUI uses the Gtk+ 1.2 toolkit. Some GNU-specific libc functions are used, but nothing fancy. It should compile and run on any system that has GNU tools, glibc and Gtk+ 1.2. GCX is maintained on a GNU/Linux system.

# Contributing

The most important contribution you can make to GCX is to try it out, and don't give up immediately if something goes wrong. Complain to the author about it--he will try to help you.

The next most important contribution is to extend the hardware support of the program. When interface library are available for cameras (many manufacturers do have such libraries), it is relatively straightforward to add support for a camera, as GCX has cleanly defined camera interface. Likewise, many mount/telescope manufacturers use the LX200 protocol, so essentially what is needed for other telescopes/mounts is testing and maybe a little tweaking. The program only uses a few LX200 functions, so interfacing to even a custom mount should be easy.

Third, there's the bane of free software: documentation. Any help in documenting or checking the documentation of the program is greatly appreciated, and will go a long way towards keeping GCX users happy.

And finally, the fun part: the code itself. There are many clever algorithms that can be added to the program, and which will benefit from the general infrastructure and integration provided by GCX .

# About this Manual

This manual is work in progress. It starts with a tutorial introduction, so people can get a taste of what GCX is all about. The focus in that chapter is on operations that don't involve particular hardware (image viewing and data reduction).

The next chapters describe the main data-reduction functions of the program. In general, each chapter stars with a general description of the algorithms and methods used, then proceeds to describing how the respective methods are implemented in practice. The chapters are written roughly in the order in which data reduction procedes.

Finally, the appendices contain either technical details of the program or general aspects that invlove slighlty more complex mathematics.

The manual is maintained in LATEX.

# Related Projects

`cpxctrl`
  the camera server used by GCX . Currently it supports the cpx3m camera, but should be easy to modify to control different ones;
`cpx3m`
  a free CCD camera design;
`avsomat`
  a batch variable star reduction program; more portable than GCX, it shares some code but uses a different field-matching algorithm.
`xephem`
  The well known planetarium program by Elwood Downey. GCX can read the same object database format as xephem, namely `.edb`, and uses compatible WCS annotation FITS fields. The star search algorithm is also inspired from xephem.
`libnova`
  A library for celestial mechanics and astronomical calculations; GCX uses some sidereal time and equatorial-to-horizontal coordinates transformation routines from libnova.
`wcstools`
  A suite of utilities for setting and using the world coordinate system in FITS headers; GCX uses the same FITS header fields for specifying the WCS as wcstools. Also, the coordinate transformation (projection) routines are taken from wcstools.