Satellite identification program for astrometrists
Last revised 17 November 2006
(Another program of interest for this problem is Ted Molczan's IDSat.)
Astrometrists routinely come across artificial satellites in their images, and often don't have a way to ID them. In such cases, they often keep getting data on them in hopes that they've found a more interesting (to an astronomer) object: a near-Earth asteroid. If it turns out to be an artificial satellite, then it's been a waste of effort.
I've written a program to address this problem. sat_id reads in a file containing astrometric observations in the MPC format. Each time it comes across an observation, it looks for satellites that were close to the indicated coordinates at that time, as seen from that location. The resulting output contains the original lines from the file, with identifications added (we hope!) after each observation.
The program is based on the artificial satellite ephemeris source code supplied on this site; full C/C++ source code is available. A DOS console executable is provided below, but it could be compiled for other platforms trivially (I've compiled and tested it in Linux). If someone has a server on which this program can run, it should be straightforward to supply a Web-based interface to the program, shielding one from the need to play with DOS.
Using the program: You should first download the Windows program here, and/or download the Linux version here. Create a directory for it, and unZIP it in that directory. (You can also build the code from the C/C++ source provided here.)
Next, you'll need to get a copy of all_tle.txt, a comprehensive list of orbital elements for currently-visible artificial satellites. The file is provided via www.tle.info, or from David Ransom's site, or from this site in Australia. UnZIP the file to extract all_tle.txt into the same directory as sat_id .
Be warned that the elements change over time. You'll probably have to download that file every couple of weeks, to ensure a current set of elements. The full alldat.tle is a large enough file (about a half MByte) to discourage frequent downloading anyway.
And now, you're ready to try it out. Suppose you have a file with MPC-formatted astrometry called vfmo.ast. You would open a DOS prompt, change to the sat_id directory, and run
sat_id vfmo.ast
The program would read through the file, pausing at each observation as it looks for possible matches within .2 degrees. It then outputs data concerning each possible match.
It's possible (though not especially likely) that a given observation may match two satellites. However, people usually get more than one position on an asteroid. In that situation, you'll see the same "matched satellite" for each observation.
If you wish to save the "match" data, you can redirect the output to go into a file, instead of to the console:
sat_id vfmo.ast > sat_ids.txt
At the end, sat_ids.txt would contain the data previously shown on the screen.
Some command-line options: This program assumes that the input elements come from all_tle.txt and that the object was observed at a position within .2 degrees of the predicted one. Suppose that, instead, the elements are in d:\tles\my_sats.tle and you want to extend the search to a half degree. In that case, you would run
sat_id vfmo.ast -td:\tles\my_sats.tle -r.5
If sat_id can't identify an object: Most of the time, this program will successfully identify the target. But some satellites haven't been updated recently enough, and a very few are in extremely high orbits (IMP8, WIND, J002E3, for example.) These last are especially apt to confuse, because they aren't going nearly as fast as your average earth-orbiting satellite, and therefore seem much more like near-earth asteroids. Ephemerides for most of these objects can be found at the Minor Planet Center's Earth-Orbiting Space "Junk" Tracking Page:
http://cfa-www.harvard.edu/iau/SpaceJunk/SpaceJunk.html
But if you try this and still don't know what you've found, you should probably e-mail me, at plutö@projéctpluto.com (remove accent marks), including the MPC-formatted observation(s). If I can't track it down myself, I can probably find somebody who can (and who can make use of your observations to update the orbit for that object.)