CHARON Users Manual

(For French-speaking users: Manuel d'utilisation)

(For Italian-speaking users: Manuale d'uso in Italiano)

Last updated 14 December 2004


Note that Charon is nearly obsolete. Not much has been done with it in recent years, and other software has leapt ahead. Charon runs in DOS; people are finding that to be increasingly difficult, unless you keep a WinXP or similar system running. (One can, and I have, run Charon and other old DOS software in DOSBox under any of the many forks of Windows, or in Linux.) Click here for a list of other astrometric/photometric software.

Following is some information concerning the Charon astrometric data collection software. The purpose of Charon is to enable users to extract positional and photometric information from CCD images and scanned images with a minimum of work; preferably, zero work. The current version is kept on the Project Pluto Web site; click here to download CHARON.ZIP (about 360 KBytes) .

Recent changes to Charon

(Note that none of these changes is particularly recent! I've made the occasional "critical error" fix, but Charon is almost abandoned; click here for a list of other astrometric/photometric software.)

(14 Dec 2004) Better handling of UCAC-2 and Ax.0 data: (Click here for information about UCAC-2.) Previously, you got Charon to make use of UCAC-2 through a somewhat odd command-line argument system. Now, it's a bit simpler than that. Just go into Charon's Settings menu, drop down to the catalog selection line ("Match to..."), and cycle around until you get "Match to UCAC-2".

However, you do still have to tell Charon where the UCAC-2 data may be found. Charon assumes that the data from the three UCAC-2 disks has been copied to your hard drive. You then fire up Guide, hit Alt-J, and enter a line such as


where 'c:\ucac2' is replaced with the path to the UCAC-2 data.

Also, handling of SAx.0 and Ax.0 is quite a bit less confusing now. Click here for details. In addition, Charon now shows some of the "extra" data for A2.0, such as R and B magnitudes and catalog numbers.

(28 Aug 2003) Use of UCAC-2 (USNO CCD Astrograph Catalog) data: (Click here for information about UCAC-2.) This is the new, updated version of UCAC. Its main advantage over UCAC-1 is much greater coverage, from the south celestial pole up to about declination +45. For most purposes, this is now the astrometric catalogue of choice. Click here for details on how to use UCAC-2.

Charon will mention the fact that it's using UCAC-2 data, and the star identifiers will be "2UCAC(number)". MPC reports will have the statement NET UCAC-2.

(24 Dec 1999) MPC report header handling: In the past, when you hit a key in Charon to generate an MPC (or IOTA) report, Charon simply added the data to the report file. The 'observational details' header, wherein you're expected to give some data about your observatory, was totally neglected by Charon.

Now, however, you can set up the 'observational details' in the file HEADER.MPC. Whenever you create a new report file, Charon will copy over header data from this file. By default, HEADER.MPC contains some example information; it should be easy to edit this to reflect your own data. (Directions are given inside HEADER.MPC, or you can click here to read the MPC page about 'observational details'.)

(24 Dec 1999) French update: Jean-Noël Moreau has sent in files bringing the French version of Charon and the French version of this Web page up to date.

(24 Dec 1999) Some bug fixes: Charon was bombing out mysteriously when file/path names got long enough; but these can now be up to about 120 characters long. The observatory code previously had to be three digits; now it can be three characters. (This is not especially important right now, but there will soon be over 1000 observatories, and the 'O1K' bug will be fixed by allowing combinations of three characters.)

(24 Dec 1999) Charon C/C++ source code: It is my intention to turn Charon into an open-source program. Some (admittedly fumbling) steps have been taken in this direction. Click here for details.

(22 Dec 1999) Image inversion: Charon now shows images with the proper 'north up' orientation in almost all cases. (There are still oddballs that could confuse it, and it can't do much about images where east or west are at the top of the image. But the vast majority of images should be shown correctly.)

(22 Dec 1999) Ability to set the photometric band: The 'Settings' menu contains two new entries. One lets you select the photometric band written out in MPC and IOTA reports.

Figuring out what that band ought to be can be a little problematic. The difficulty is that most astrometry is GSC-based using unfiltered images. There has been some debate recently on the Minor Planet Mailing List as to what band ought to be used in that case. I am reluctant to voice an opinion very loudly, since I know a bit about the math behind photometry and almost nothing about its actual practice.

Still, almost all agree on one point. If you select no photometric band (the default), the Minor Planet Center will assume that the image is B. And unless you're using some interesting new blue-sensitive/red-insensitive CCD, this is unmistakably wrong. Select either V or R. I waffle on the issue of which of these two should be used.

The USNO A1.0 and A2.0 datasets provide B and R magnitudes. One can, with modest accuracy, infer V magnitudes from these (click here for details). When you use Charon with Ax.0, it looks at the photometric band selected, and will use the B or R mags, or infer V mags, should you have one of those three bands selected.

It is not yet quite so bright about the use of Tycho/ACT. This dataset has BT and VT data, a.k.a. Btycho and Vtycho, along with Johnson V magnitudes. The VT and BT data can be translated, with good accuracy, to "standard" B and V data; in fact, Guide has done this for a while now. (You can then infer R magnitudes, but the accuracy is really awful.) But at present, Charon just uses the Johnson V data... I'll have to fix this.

(22 Dec 1999) Ability to set the 'max tilt angle': The 'Settings' menu also has a new entry for the maximum tilt angle. By default, when Charon pattern-matches an image to a star pattern, it will consider any possible tilt angle. Some people do provide drift-scanned images, or flip the images oddly, or have the CCD attached at an odd angle, so this flexibility is sometimes necessary.

But images aligned north/south are extremely common. In these cases, Charon spends a lot of time considering pattern matches that involve rotations that won't happen. The new parameter lets you control that behavior. Suppose you're confident that your image is within, say, five degrees of being truly north/south. In such a case, enter a value of '5' on this line in the Settings menu, and Charon will simply skip over a lot of "impossible" pattern matches, resulting in far greater speed.

There is a second benefit to this. In "marginal" images, Charon might normally get a mistaken pattern match. That match is often at an odd angle. Given the new requirement that the image must run north/south, Charon is less likely to get confused.

(27 Aug 1999) New 'Settings' menu: Charon is being reconfigured to avoid any need to set command-line parameters. (You can still do so, if you wish; many people running hundreds of images practically have to.)

If you run Charon with no command-line parameters, you'll see that the Settings menu appears, with new options for the target name, image file name, limiting magnitude, and centroiding options. The 'help' at the bottom of the window scrolls now, and has been extended quite a bit. It should now be possible for a new user to start up Charon, look at the Settings menu, and figure things out from the help text.

(8 Apr 1999) MPCORB use: As of 17 March 1999, Guide was able to use the Minor Planet Center MPCORB database. . It would obviously be helpful if Charon could also use this new database; and it now can.

If you have MPCORB.DAT or MPCORBCR.DAT in the Guide directory, you can use an object specification such as "-oA 4179" or "-oA 1997 XF11" to indicate the objects 4179 Toutatis or 1997 XF11, computed using MPCORB data. The '-oa' (both letters lowercase) command will still access Guide's built-in data, just as before. See the above link for information as to the strengths and weaknesses of each method.

(24 Mar 1999) Charon blinks!: One serious deficiency in Charon has long been that you couldn't blink images in it. This lack has now been fixed.

To blink two (or more) images, you must first load them into Charon in a "normal" way, getting a good astrometric fit for each image. As you do this with each image, you must hit 'z' to add it to Charon's list of images displayable in Guide (click here if you aren't familiar with this process). Each time you do this, Charon adds information about that file to its IMAGES.DAT file, such as the RA/dec of each corner of the image.

When you load the last image, hit 'b' (as in 'blink', logically). The first time you do this, there will be a pause as Guide searches IMAGES.DAT for images that might overlap the one you currently have loaded. Once it has them loaded, you'll see the message "Blink image(s) loaded". (If Charon looks through IMAGES.DAT and doesn't find any images that would overlap the one you currently have loaded, it will give the message "No blinkable image found" instead.)

Once you've done this, you can hit 'b' to blink images. If you have, say, three images loaded, hitting 'b' three times will cycle through them, showing the file name for each image. The images will scale correctly if you're zoomed in, and the astrometric fit will be used to ensure they line up correctly. One of my test cases was M-57, because I have six images from various sources, including DSS. The images have a variety of scales, alignments, exposures, and so on; Charon was able to "stack" them all correctly. (This might lead to some nice tri-color imaging eventually, by the way. And blinking with DSS would help in confirming novae and such.)

When the images are first loaded, Charon takes your current contrast and brightness settings and applies them to all the new images. After that, you can set brightness and contrast separately for each image as it appears on the screen. Normally, you won't really want to do that. But if you're blinking images of different exposure lengths, it can be helpful.

(24 Mar 1999) More palettes: In the past, Charon's Settings menu would let you select "black stars on white" or "black stars on white". You could also toggle these by hitting 'r' when an image was displayed. Now, Charon supports those two color schemes, plus four more: two different pseudocoloring schemes, plus a "red stars on black (night vision)" mode, plus a "black stars on red (flashlight)" mode. Hitting 'r' cycles among the six palettes; you can also cycle through them in the Settings menu.

The pseudocolor palettes can make subtle gradations a bit more apparent, but they do take some getting used to. The night vision mode is useful when at the scope if you don't want to ruin your adaptation; the 'flashlight' mode is helpful if you want to have a bright red screen for finding dropped objects.

Those who would like to add custom palettes or remove any of these existing palettes should look in the text file PALETTE.DAT. The end of the file has directions for accomplishing those tasks.

(17 Feb 1999) Better handling of file extensions: In the past, Charon only recognized SBIG files if they had the extension .ST6, .ST7, etc. This has been changed; Charon can now recognize these files no matter what extension you may put on them (some software insists on adding unusual extensions.)

(17 Feb 1999) Blunder detection: Charon will now show the altitude/azimuth of the target object and of the sun. If the sun's altitude is greater than -12 degrees, or if the target altitude is below the horizon, Charon will warn you. (I frequently get images where this is the case. It usually turns out that the time set in the header is incorrect, or the latitude/longitude is wrong, or the time in the header is local time instead of UT. This simple process of checking altitudes won't catch all such errors, but it does help.)

Description of Charon

With Charon, one must provide an image, specifying either the object or an approximate position in the sky. Charon will then examine the image you've taken, and will search through a star catalog (such as the GSC and Tycho databases on the Guide CD-ROM) for stars covering that area. It then will calculate the transformation between J2000 RA/dec and positions in the image.

Once it has done this, it has registered the image to the sky, and will show you the image with GSC stars superimposed as an overlay. You can move the cursor around and collect information concerning the RA, declination and magnitude of objects in the image. You can hit Tab to immediately zoom in on the target object; Charon will show both the computed, "expected" position of the target object, as well as its actual observed position in the image, and the difference (observed - computed, or "O-C", or "residual") between them.

You can then produce a report on the measured position of the object in a format suitable for submission to the Minor Planet Center (MPC) or International Occultation and Transit Association (IOTA). This sort of data can be used in computing orbital elements, using the FIND_ORB orbit computing software; it can also be used for "last-minute astrometry", to get really good predictions for asteroid occultations.

Finally, if you've loaded an image into Charon successfully, you can then tell Charon that this image is to be shown in Guide, in much the same way that RealSky/DSS images are shown in the backgrounds of charts.


There is a fairly serious need for better follow-up on newly discovered asteroids. Once an asteroid is found, it takes a bare minimum of three observations to determine its orbit; in reality, it generally takes more observations, made over a longer period of time, to eliminate uncertainties. Quite a few Guide users have asked about the subject of astrometry software. As things stand today, many observers spend much more time analyzing the data than they do in collecting it. Software to remove most of the "drudgery" would let them spend more time doing something more interesting.

This seemed a logical task for me to untake; I already had most of the required software components, as well as all the data handily compressed to one CD. I felt it would be a useful contribution to astronomical data collection, and I also thought it would just make an interesting project.

Other astrometry/photometry software

For some time, Charon was among the leading astrometric reduction packages out there. That hasn't been true for about a decade. For one thing, it's a DOS program, in a world where people are increasingly uncomfortable with DOS software, and where many find it simply fails on their modern systems. (You can get it to work, even on "modern" forks of Windows or Linux or OS/X, by using DOSBox. Not that I'd especially recommend it, but it can be done... I do suggest it as a way to run DOS software that can't be ported to other systems.)

Charon is also not as easy to use or as powerful as some of the current astrometric reduction software. As you can see, it has not been updated (except for some bug fixes and newly-added catalogues) for some years. Updating it has become difficult, due to some poor design decisions I made at the time and because software development tools have moved on; I'm probably one hardware failure away from being completely unable to make changes to the code.

Fortunately, we do have alternatives. Despite my pride of authorship, I consider Charon to now be essentially obsoleted by the following packages.

Perhaps the most widely used software at present is Astrometrica, shareware written and sold by Herbert Raab. This software pioneered the use of "stack and track" observing.

PinPoint, by Bob Denny of DC-3 Dreams Software, is a very nice astrometric/photometric reduction package, quite well thought of in the community. It makes running a fully-automated, no-humans-involved processing pipeline practical.

Canopus, by Brian D. Warner, is especially oriented toward photometric work (though it does a perfectly good job on astrometry as well).

Starting and using Charon

For a long time, it was absolutely necessary to have a copy of Guide 5.0 (or later) to use Charon. The Guide CD contains built-in orbital elements for asteroids and comets, plus the entire Hubble GSC and Tycho catalogs. It also contains assorted catalogs that allow you to refer to your target as, say, "NGC 4565", rather than having to provide an RA/dec.

It's still easiest to use Charon in conjunction with a Guide CD, but it's no longer necessary. It can instead use star catalog data downloaded from Web sites or extracted from freely-distributed CD-ROMs.

You'll want to start by downloading and unZIPping the CHARON.ZIP file in your Guide directory. The program requires the same mouse driver as the DOS versions of Guide.

Before trying it with your own images, it's a good idea to see the software in action on "known to be good" images. For demonstration purposes, I asked Dan Kaiser for some sample .ST6 images. You can click here to download one of NGC 4565. Put it in the Guide directory, and run

 charon ngc4565.st6 -ongc4565


There are several other -o switches for different classes of objects; for example,

It's quite possible that you will get a "stub exec failed" error message. If that happens, click here for the solution to this problem.

The software will pause for a bit while it figures out the position of NGC 4565. It will then pause some more while it grabs GSC data for that region and looks for a match. All this may take a few seconds. When it's done, it will spit out the results of its match. For the NGC 4565, Charon finds 8 Guide Star Catalog stars in the image that match within the default tolerance of 1 arcsecond. It spits out some details of the match, such as residual values. It also computes the focal length using both the computed height and width of a pixel; these values should match fairly closely. The angle between the axes is also computed, and should be very close to 90 degrees. (Near the horizon, the image will sometimes be distorted enough to make the axes vary a bit from the ideal 90-degree angle.)

Hit a key, and the software will clear the screen and show you the entire image. Superimposed on this are green crosses showing the GSC stars (remember Green=GSC), and red circles showing the stars Charon found in the image. Also, the cursor appears as a red cross-hair, covering the screen.

As you move the cursor around, its position in RA/dec is shown in the upper left corner in yellow (same color as the cursor). Just above this, the pixel coordinates and the value of the current image pixel are given (still in yellow, to reinforce the fact that this is data for the point under the cursor.)

The position, identifier, and catalogued magnitude for the nearest GSC star are shown in green (matches the GSC star in question), and the position and computed magnitude for the nearest image star is shown in red (matches the image star).

The calculated target position option is shown with the full-screen red cross. In theory, the actual target should appear near that position, and sure enough, the core of NGC 4565 lies right on the cross (you may need to adjust the contrast to see it, though.) A small red circle marks Charon's idea of the center of NGC 4565 in the image; move the cursor there, read the position in red from the upper left, and (in theory) you're done.

You can pan by clicking with the mouse or using the cursor keys. (Cursor keys alone pan half a screen; Ctrl+cursor keys pan one image pixel at a time.) Key commands are as follows:

These four controls roughly follow the user interface of a TV set, which provides "brightness" and "contrast" controls. We can worry about something fancier later, if needed.

You can also measure distances and position angles in the same manner as in Guide: click with the right mouse button and drag the mouse. The distance and position angle are updated in the legend area as the mouse is moved, and a "rubber band" shows the line being measured.

You can also zoom in using the same "click with left button and drag the mouse" method used in Guide.

Now that you've seen Charon in action, the next step is to get it to read your images, instead of those already on the Guide CD.


Once you have Charon running, you will find astrometry to be extremely simple. Unfortunately, you do have to first tell Charon quite a bit about your images and telescope. This is done through Charon's settings menu.

The easiest way to get to the settings menu is to run Charon with absolutely no command line arguments at all. Change the needed settings and hit Escape, and your changes will be saved.

Also, you can access the settings menu while Charon is running by hitting the Enter key.

In either case, you're presented with a list of about twenty settings. You can move from line to line with the arrow keys, and edit the values in the fields. There is some help provided at the bottom of the screen for each line.

Report file name: This defaults to MPC.LOG, and is the name of the ASCII text file to which MPC and IOTA reports will be appended.

Cutoff point: This defines the percentage of the image considered to be "background". It defaults to .97, meaning that 97% of the image is assumed to be background, with 3% of it being valid stars. You will probably never have to change this setting.

Image offset: This setting is used for images where processing may have created pixels with negative values (after dark fields have been subtracted, for example.) It defaults to zero. It can also be used in some images which have been offset already. For example, some imaging software creates data "biased" by 32768; even a completely "empty" pixel is set to this value. In such a case, setting an image offset of -32768 can get you back to a "normal" range of values.

Scale tolerance: By default, this is set to .01, and means that Charon will handle up to a 1% error in the approximate focal length. This is usually far more than enough to allow for the slight changes in focal length. If you have no real idea what the focal length is, or if the focal length is not set properly in the image file, you may wish to increase this value to, say, 1, to indicate that the focal length may be off by 100%. Once Charon has successfully matched an image, it will show the computed focal length, and you can set the correct value in future images. Setting a wide tolerance does force Charon to consider more possible matches between stars in the image and stars in the GSC; if possible, set the focal length accurately and use a low scale tolerance.

Search distance: By default, Charon examines stars within .5 degree of the target position. If you think the target position may be inaccurate, you may wish to increase this value. If you expect the target position to be accurate, but know that the field of view of your camera is greater than (or less than) 1 degree, you may want to modify this value. Increasing it means Charon must consider more possible matches, so it can slow the program down; decreasing it too far may cause it to ignore stars that are actually valid.

Observer code: The MPC assigns 3-digit codes to observers. Set yours, and Charon will use that code in MPC and IOTA reports. It will also use the latitude/longitude corresponding to that observer code.

Time offset: If your imaging software assigns a consistently biased time to images, you can use this value to "un-bias" the time. I've also used it in cases where someone has used local time instead of UT in their images!

Maximum residual: By default, Charon considers that if a star's position in the image matches a star in the GSC to within one arcsecond, they must be the same star. This is almost always a valid assumption, but I have seen one image, gathered at very low altitude, where this value had to be raised to 3 arcseconds.

Video mode: By default, Charon starts up in 320x200 (low-res) mode. This option cycles to 640x480, 800x600, and 1024x768 modes. The sole advantage of 320x200 mode is that it _always_ works; not all cards will be happy with all of the high-res modes.

A useful tip to keep in mind if some video modes fail: if you run Charon with an added '-;' command-line switch, i.e., something such as

charon (usual command-line arguments) -; 

Charon will switch the way it probes your graphics card. This sometimes (not always) causes Charon to be able to use modes that would otherwise fail. (In other cases, it causes modes to fail that would otherwise work. So it is well to run Charon first without this switch.)


Depending on its settings, Charon can be either quite fast (usually a second or so per image) or insanely slow (minutes to hours per image). My usual process to speed it up includes steps such as:

(This last is especially a problem for SA2.0 users. That catalog omits plenty of bright stars, requiring you to bump the "number of stars" up to, say, 20 or 30, in hopes that four or five matches can be obtained! And Charon's performance drops _very_ dramatically with an increased "number of stars". This is why only a few truly devoted citizens are using Charon with SA2.0.)

Others who expect to have the target near the center, with perhaps 2' of error, will make that search distance 8'. And so on. Setting the search distance to be unnecessarily high will cause Charon to load more comparison stars, so it'll be slower than it has to be.


If you wish to correct for the effects of parallax, you'll need to make sure that Guide has your correct latitude and longitude set in Guide's Settings menu. This normally is not terribly important, of course, but it can cause large positional errors for closer objects: up to a 20 arcsecond shift for objects 1 AU away, and still worse shifts for near-Earth objects.

If you're going to provide data to the Minor Planet Center (MPC) or the International Occultation and Transit Association (IOTA), you need to tell Charon your MPC observer code. You do this inside the settings menu (reached by hitting Enter, as described above).

The next problem is actually getting the object position. Generally, the best way to do this is to hit Tab. This causes Charon to center on the computed object position (as marked by the red crosshairs); the target object should be close by, with a red circle on it. Move the cursor near the target object, and its RA/dec will be shown in red, with residuals (O-C, or observed-computed coordinates) in arcseconds underneath.

Hit 'o', and Charon will append the object position and other data to the ASCII file MPC.LOG. Alternatively, you can hit 'i', which will append the same data in IOTA format. You can then send the data to the MPC or IOTA. (The formats are mostly identical, but IOTA requires an extra digit of precision for three data fields.) There are three small details that must be mentioned:

(1) Charon's object-finding system may not succeed in finding the target object and marking it with a red circle. This is particularly common in dealing with faint or extended objects. In such a case, you must move the cursor over the object and hit 'c' (for 'centroid'). Given this hint that "yes, there is an object here", Charon will find the object's position and add a red circle there. You can then make an MPC report as before.

(2) The MPC report for comets will not contain the comet designation. The COMET.DAT file on the CD-ROM doesn't contain the new-style designations. I expect to fix this.

(3) The reported position in the MPC or IOTA report is _not_ adjusted for parallax, and shouldn't be. Both organizations need "raw", measured positions for orbital computations.


By default, Charon will use the Hubble Guide Star Catalog (GSC), version 1.1, for reference stars. This is set as an option in Charon's settings menu. The other options are the use of the Tycho dataset, the USNO A1.0 and A2.0 datasets (either from the CD-ROMs or from the Web servers), the GSC 1.2 data from a Web server, the GSC-ACT data, or the Tycho-2 data from a CD-ROM.

The 'plus' of the Tycho data is that it is the most precise available. It is the only dataset precise enough to do last-minute astrometry, for providing good accuracy in predicting the occultations of stars by asteroids. Furthermore, the magnitude data is so good that decent photometry can be done. Usually, Charon provides magnitudes that serve as only a rough guide to reality. But if Tycho is used as a reference catalog, you'll get accurate magnitudes.

On the downside, though, Tycho contains about 1/15 the number of stars in the GSC. Unless you have a pretty wide field of view (about a half degree or so), it will be rare for you to have enough Tycho stars to get a good fit.

Also, the Tycho stars are all around magnitude 10.5 or brighter. If you pursue a faint object, it can be easy to find yourself in trouble; you have to take a long exposure, which can saturate bright stars... meaning that you can't use Tycho after all!

With Guides 5.0 through 7.0, "Tycho" means the original million-star Tycho-1 dataset (the only one available at the time). Guide 8.0 uses Tycho-2, an improved version with 2.5 million stars. But it's still possible to do Tycho-2 based astrometry with a Guide 7.0 disk.

To do it, your first step will be to get the Tycho-2 data on a CD-ROM. Send requests for Tycho-2 data CDs to Erik Høg. This CD is available at no cost to you.

You should then set up Charon as you normally would for Tycho-based astrometry (by selecting "Match to Tycho/Hipparcos" in the Settings menu.) But when you start up Charon, you must indicate the path to the Tycho-2 data. If it were on, say, drive D: (the usual letter for a CD-ROM),

charon (usual options) -Gd 

would do the job. If instead, you've copied the Tycho-2 data file to a hard drive, you'll have to specify the full path to the file CATALOG.DAT. For example:

charon (usual options) -Gc:\tycho2\catalog.dat 

In either case, Charon will report loading a certain number of Tycho-2 stars, and the MPC report file will indicate "NET=TYCHO-2" (instead of just "NET=ACT".) These will be the only indications that Tycho-2 is being used instead of Tycho/ACT.

At the other extreme, the USNO A1.0/A2.0 catalogs are ideal for very narrow fields of view, because these contain about 25 times as many stars as the GSC. The A2.0 is an updated version of A1.0, recalibrated using the ACT catalog. This removed the worst of the astrometric errors in A1.0, and perhaps some of the photometric troubles. From the viewpoint of Charon, the two versions are quite similar, and will be referred to under the generic term "A1.0" in this discussion. (You do have to be sure you select the right version in the settings menu, though! Also, the A2.0 came out after the Guide 7.0 CDs were made; so to use the A2.0 CDs, you need to download a new version of Charon and download and unZIP the index file for the A2.0.)

There are two problems with A1.0/A2.0. First is that of acquiring a copy; you should contact Dave Monet, dgm at nofs dot navy dot mil, to inquire about availability. The data is sent on eleven CD-ROMs, free of charge... which means it drains USNO's budget a bit, and they aren't eager to send out copies unless you have a good reason for asking.

Availability of the data appears to change over time, though, depending on how many CDs are on hand and how much demand USNO is receiving for the data.

In using A1.0, the settings menu offers two possibilities. You can simply "Match to A1.0", or "Match to A1.0 (data on hard drive)". With the first option, Charon will ask you to insert one of the A1.0 or A2.0 CD-ROMs. It will extract data from that CD, then ask you to put the Guide CD back into the drive. After this, things will proceed normally. (There are also "Match to A2.0" and "Match to A2.0 (data on hard drive)" options.)

Once you have done this, the A1.0 data for that area is cached on the hard drive. It's not necessary to reload it. You can instead switch to "Match to A1.0 (data on hard drive)", or to the similar A2.0 option.

There are smaller, single-CD versions of both A1.0 and A2.0, called USNO SA1.0 and SA2.0. Charon can, just barely, make use of these. The reason for the "just barely" is that, in these catalogs, 90% of the stars have been discarded. The remaining 10% provide a very even distribution of stars; you are almost guaranteed to have several on your CCD chip. (This is in contrast to the GSC, which has some pretty sparse regions.) But the 10% selected for SA1.0 and SA2.0 are not necessarily the brightest 10%, which leads to trouble. Charon attempts to match star patterns, and this is nearly impossible to do with SA. I know of only one person doing it now (though he has worked it out to the point where it works routinely).

But it is possible, and desirable on some counts. First, you can get SA1.0/2.0 at no charge from the US Naval Observatory; getting A1.0/A2.0, by contrast, is not easy (few sets of the disks were made). Second, A2.0 was calibrated using the ACT catalog. That means it lacks the sort of systematic errors of the Guide Star Catalog, providing a healthy boost in accuracy. (A1.0 was calibrated using GSC, so it shares the astrometric errors of that catalog.)

Third, A1.0/A2.0 provide about 50 million stars apiece, almost three times the star density of the GSC; and the density is quite even. Some GSC users find that a given image "falls in the gaps", where there aren't enough GSC stars to calibrate it. That doesn't happen very often with SA catalogs.

So how does one use SA data in Charon? First, test the image out with the GSC. This will let you verify that all crucial settings, such as focal length, inverted vs. uninverted, pixel size, target name, and so on, are correct. You'll want to get it running as fast as possible; check the items mentioned in the speedups section. Once the image loads correctly with GSC, you can proceed to worrying about SA1.0/SA2.0.

If you're using SA2.0, download and unZIP this file (about 14 KBytes). It contains the index file needed by Charon to access SA2.0 data. (The SA1.0 index is already on the Guide 7 CD.)

Enter Charon's settings menu, and toggle the "Match to GSC" parameter until it cycles to "Match to A1.0" or "Match to A2.0", according to your use of SA1.0 or SA2.0. (If you don't see the corresponding option, download the CHARON.ZIP file again; you're using an older version.) Increase the "number of stars used" to about 40; the hope is that four of these will survive the SA 'decimation'. The down side of this is that you will have a very long search time. Once you get SA working, though, you may be able to decrease this number.

And now we turn to a very crucial parameter for this process, and one that is vexingly hard to get right: the saturation point. In the SA catalogs, bright stars are usually omitted; they formed such big, blurry images on the source plates that their astrometric quality was lower than that of their dimmer cousins. By default, Charon would attempt to match the forty brightest stars to SA stars, few of which are bright; and your odds of getting a match would be correspondingly low.

To evade this, you have to drop the saturation point to eliminate brighter stars. This requires considerable trial and error, as you search for a value that will work with your first image. (Once you have this, subsequent images are much easier.)

Also, there is the possibility of using GSC-1.2. This is provided by the Space Telescope Science Institute (STScI); click here for some details about GSC 1.2.

GSC 1.2 is essentially a re-reduction of GSC 1.1. As is described at the above site, GSC 1.1 has some rather horrible positional errors, especially near the edge of the photographic plates used to correct it. In GSC 1.2, the data was analyzed using some extra terms in the polynomial fits, and using the PPM catalog as a reference instead of the older catalogs used in 1.1.

In a perfect world, STScI would make the entire GSC 1.2 available on CD-ROM or via ftp. For some reason, they are not at all willing to do this. You can only get 1.2 data via the GSC request form provided by STScI.

To use GSC 1.2 with Charon, therefore, go through the following steps. Visit the request form and ask for GSC 1.2 data covering your CCD image. Save the data to your hard drive in text form (Charon won't understand the HTML form.) Suppose you saved it in the file gsc_12.txt; you would then run Charon as follows:

charon (image name) (object name) (other options) -Ggsc_12.txt

The '-G' option overrides the usual searching through catalogs, and informs Charon that the star data is to come from that file.

Charon can also use the GSC-ACT catalog. This is an astrometric recalibration of the "original" GSC 1.1 used by Guide and by most other astrometry software. It virtually eliminates the systematic positional errors in GSC 1.1. (Magnitudes are left unaffected.)

To use it in Charon, start up Charon, enter the Settings menu, and cycle the catalog used until you reach "Match to GSC-ACT." That will usually be all you need do.

Charon is able to do this by using a data file to "adjust" GSC 1.1 astrometry. (GSC-ACT is really nothing more than GSC 1.1 with positions modified to eliminate systematic errors.) It's possible that you will see the following message:

GSC_ACT.DAT not found!  Can't correct to GSC-ACT positions 

If that happens, it means you should download and unZIP this file (about 590 KBytes) into your Guide directory. The error will then vanish.

As of 20 May 1999, Charon has been extended to allow use of data from the Sloan Astrometric Calibration Region (ACR) files. The ACR data covers sixteen regions around the celestial equator, with each region roughly 7.6 by 3.2 degrees. It covers too little area to be of general use, but it can be absolutely wonderful for testing your astrometry. The errors in the ACR are so small that catalog errors are (in comparison to other concerns) almost negligible. This is an unusual state of affairs; when using any form of the GSC and Ax.0 catalogs, the built-in systematic errors of these catalogs are almost always the limiting factor in the quality of your astrometry.

You can click here for details about the ACR, such as where to download it from and how to display it in Guide. In Charon, it is used in exactly the same manner as GSC 1.2 data; for example, if you had an image that lies partway in Sloan ACR Region J, and had downloaded that file to the C:\SLOAN directory, you would use:

charon (image name) (object name) (other options) -Gc:\sloan\regionj.dat


One reason using ST6 (and other SBIG) files is so simple is that their format is very standardized. Most of the required data, such as time of observation, pixel size, focal length, and so forth, is contained in the header.

Unfortunately, no such standards exist for FITS. All of the above data may be contained in a FITS image, but more likely, it will not be. Also, FITS data comes in various "bit depths"; Charon at present handles only the most common, 16-bit integer data.

Similarly, "multipart" Cookbook CCD images contain no date and time information, or focal length data. (On the plus side, the size of the pixels, in microns, is well-defined, since Cookbook cameras use either TI211 or TI242 chips.)

Some FITS images contain the date and time of the observation, in the tags DATE-OBS and TIME-OBS. (In theory, _all_ 'standard' FITS files will contain this data; in reality, one cannot depend on it.) If the image lacks these tags, or if the tags contain erroneous data, you can set the observation date with

    -b(day/month/year hour:minute:second)

For example, if your image was created on 28 Aug 1995 at 3:14:16 UT, one would use

charon -b28/8/1995 3:14:16 -ongc7001

This should allow one to handle all 16-bit integer images. But I have not had a large number of images to test; if you run into problems, please send me a sample image or two. I will probably find that I've failed to handle some hitherto-unencountered field, and can fix it readily.


Once you've loaded an image into Charon successfully, then its position, orientation, and scale in the sky are all known quantities. This data can be used to have the image shown in the background of charts in Guide, much as RealSky and DSS images are shown. To do so, take the following steps:

First, confirm that the image is indeed properly loaded into Charon. (Otherwise, you can get an image to show up as a weird streak in Guide, or simply not registered to the correct part of the sky). Adjust the contrast to the level you'd like to have as the default when the image is shown in Guide. When done, hit 'z' on the keypad.

Charon will show the text "Entry added to IMAGES.DAT". Exit Charon, start up Guide, and recenter on your image.

By default, it won't be displayed in Guide. Hit Alt-J; you'll be asked to "Enter test flag:" Enter 10 here. Test flag 10 toggles the display of user-added images (so you'll have to do the exact same thing to shut off the images).

This system works by adding a line for each image to the text file IMAGES.DAT. Each line contains the RA/dec of the four corners, in decimal degrees; the contrast range; the height and width of the image in pixels; and some data used by Guide to recognize the various file formats. The main thing to keep in mind is that you can edit IMAGES.DAT and remove individual lines, or delete the whole thing, as needed. I mention this simply because, at this point, there is no slick dialog box where one can select or deselect images.


This chapter describes the internal workings of the algorithm used by Charon to locate stars. For most people, this will be of little use and less interest; but I'm occasionally asked about it, and some discussion is in order.

The current "usual" method for finding the position of a star in an image uses a centroiding process. One defines a cell size, usually around 5x5 or 7x7. After finding the brightest pixel in the star, this cell, or "centroiding box", is centered on that pixel. Charon also has a centroiding box; you can currently set its size in the settings menu.

With simple centroiding, one does a weighted average of pixel values in the cell, such as:

 x_star = y_star = total_intensity = 0;
 for( i=0; i < number_of_pixels_in_cell; i=i+1)
    x_star = x_star + intensity[i] * x[i];
    y_star = y_star + intensity[i] * y[i];
 x_star = x_star / total_intensity;
 y_star = y_star / total_intensity;

This is the method that I used in Charon for some time before deciding to try a more complex system.

The above centroiding system works on the assumption that the target star can be modelled as a Gaussian. That's not a generally a bad assumption; the only change I make to it is to assume that there is also a "background level", i.e., the target star is a Gaussian plus a constant.

However, the simple centroiding scheme runs into problems if some pixels are saturated or dead, or if the background level is high compared to the intensity of the star, or if the object is close to another object. All of those objections can be met by simply rejecting such objects, since there are usually an ample number of perfectly useful stars that can be considered instead. My chief reason for abandoning the simple scheme was that it doesn't deal well with comets.

We assume that the intensity at a pixel (x, y) is given by

                               2      2
I(x,y) = I    + I    exp( -dist /sigma )
          back   star


                       2           2
dist = sqrt( (x-x_star) +(y-y_star) )

(This is the mathematical equivalent of the constant-plus- Gaussian assumption.) For a particular star, we have five unknowns: the star coordinates x_star and y_star, the star's intensity Istar, the background Iback, and the star's "size", sigma. We do have approximate values for the position and intensity, based on the simple centroiding, and if we start with an assumed zero background and a "guessed" sigma, we can do a least-squares fit to get accurate values for all five unknowns.

The above process goes by the name of "point-spread function fitting", or "PSF fitting". I've been happy with its ability to deal with close pairs of stars, poor data, and in particular, its ability to get good positions for comets, where Iback may turn out to be unusually high. It can also extract valid positions for objects containing saturated, dead and "hot" pixels; the major problem here is simply identifying those pixels so the software knows not to include them in the fit.

The 'centroid size' in the Settings menu allows you to determine the area Charon uses for the PSF fit. By default, it uses a 5x5 grid cell; in theory, a 7x7 or even a 9x9 would produce better results. In practice, larger areas often result in including parts of stars other than the one being measured.


I'm occasionally asked about the mathematics underlying Charon, both by people interested in working on their own astrometry software and by potential Charon users wanting to make sure that the software is indeed doing what it ought to do (that is, using standard methods of astrometry to achieve the highest possible accuracy). If you're not in one of these categories, you can skip the following discussion without any trouble at all.

Charon uses the most common method for astrometric reduction. The first step is to find the positions of stars in the image in pixel coordinates. Charon does this by assuming the star (or satellite) forms a Gaussian peak in the image, and fitting a Gaussian curve to each star. This provides the pixel position (x, y) of the star, and an estimate of its magnitude, as described in the previous chapter.

So in this manner, we have computed (x, y) pixel positions for all stars in the image. Next, we need to match some stars in the image to stars in a reference catalog, usually the Hubble Guide Star Catalog (though Charon can use the Tycho/ACT catalog or the USNO A1.0 instead). If we can match N stars, then we have

x(i), y(i) corresponds to RA(i), declination(i), i=1,2,....N

We start with an assumed plate center (RA0, declination0), and compute "pseudo-plate coordinates" (xi, eta) for each RA(i), declination(i). Then we can assume that

 xi(i)  = A x(i) + B y(i) + C + xi_residual(i)
eta(i) = D x(i) + E y(i) + F + eta_residual(i)

The six values A, B, C, D, E, and F are called "plate constants". If you have three stars (N = 3), then you have six equations and six unknown plate constants, and you can get an _exact_ solution for them (the residuals will be zero).

Add in more stars, and this happy situation will vanish: the new stars will have nonzero residuals, both because of measurement errors (no measurement is perfect, after all) and because the assumption that you can model everything with just these six terms isn't entirely true (more on that later). The solution is to take the values of A-F we just determined, and adjust them with a least-squares fit. This process finds the values of the plate constants that minimize

sum( x_residual(i) ^ 2 + y_residual(i) ^ 2), i = 1,2,....N.

('^' means 'raised to the power of', similar to the FORTRAN **.) There are some excellent reasons, first derived by Carl F. Gauss, for considering "the minimum of the sum of the squares of the errors" to be a good criterion in such cases. The same method is used in orbit determination and in telescope mount error analysis, as well as in many other fields... it's an enormously powerful tool.

But I digress. Using these six plate constants, you can take an RA/declination, transform it to (xi, eta) "pseudo-plate" coordinates, and then get its (x, y) pixel coordinates. This is a "first-order" or "linear" fit, and is one of three kinds of fits that can be selected in the Settings menu.

If you know the size of a pixel in microns, you can also compute the focal length from the plate constants. (Charon displays the focal length as computed from the pixel height and width; this provides another check for errors. The focal length initially provided in the image serves solely to enable Charon to make its initial match of image stars to GSC stars.)

If there are at least 7 stars, we can consider the use of a quadratic fit:

 xi  = Ax + By + C + Gx^2 + Hy^2 + Ixy + xi_residual
eta = Dx + Ey + F + Jx^2 + Ky^2 + Lxy + eta_residual

This uses 12 plate constants instead of 6; our seven stars provides fourteen equations. (True, one could use six stars and get an exact fit, both 12 equations and 12 unknowns, but this is dangerous; you'll get an exact fit, even if your data is total garbage.) Going further, if there are at least 11 stars, Charon can consider the use of a cubic fit, where terms in x^3, xy^2, yx^2, and y^3 are included and we have 20 plate constants.

Quadratic and cubic fits can allow correction for differential refraction and for distortions in large fields of view. (The fit used for creating the Hubble Guide Star Catalog included a few fourth-order terms, to account for some odd distortions in the Schmidt cameras.) In all but a few cases, I am not convinced of the usefulness of quadratic and cubic fits, except in cases where the image covers a wide area of the sky and distortions are pronounced. However, I do know that some people will be using the software with wide-angle Schmidt cameras, and for them, cubic fits will be a necessity.

All three types of fits are available in the Settings menu. I suggest avoiding the use of higher-order fits unless you know that either your optics or your large field of view are causing non-linear distortions in the image. It's hard to overemphasize this. Using those higher-order fits always yields lower residuals; but it doesn't necessarily mean you're really getting a better fit! So it can fool you into thinking you have better data than is actually the case.

A2.0 use: If you look within the Settings menu, you will see a "Match to..." line, indicating the star catalog Charon is using for the astrometric reduction. If you cycle through the choices, you'll see among them "Match to A2.0" and "Match to A1.0". (Click here if you don't know what A2.0 is.)

Select one of these, and Charon will attempt to pattern-match your image using these catalogs. It will first attempt to find the data files in the path you specified for use in Guide ( click here for information on how to specify the path for Ax.0 data.) If no such path is specified, or if Charon can't find data there, it will ask you to insert a particular Ax.0 CD-ROM, from the ten or eleven in the data set. Put that CD in the drive, or the SAx.0 disk, and Charon will extract the data and match your image to it.