On-line artificial satellite identification

Click here for a list of artsats removed from NEOCP.

This is an on-line version of the sat_id program used for identifying artificial satellites found by asteroid observers. Use the form below to find which artsats match the position/motion of objects you've observed.

Suggested quick start: Don't panic! Copy/paste your observations in the large text window below, or click on "Browse" to pick a file containing the astrometry. Then click the "find matching artsats" button. That will probably be all you need.

The output will show each line of astrometry, followed by the object(s) within the specified angular distance and a little information about them. If you supply more than one position (which I strongly recommend), the apparent motion of "your" object will be shown, and will be compared to the motion of the possible matching artsats. In such a case, it'll almost certainly identify your object correctly (without motion data, it'll be essentially guessing; it could be any artsat that happened to be passing by.)

Identifications are done using elements from three different sources. For the Space-Track.org TLEs, I've saved some elements sets over the last few years at roughly monthly intervals, and the most current elements will also be available for contemporary observations. But (a) elements aren't available for every object and (b) even if we have elements for your object, we may not have elements with an epoch close to that of your observations. Bottom line: identification is by no means certain.

Also, the program times out after 15 seconds. That's usually ample, but don't try to feed it too many observations at once.

If you're still not getting things to work, contact me at p‮ôç.ötulpťcéjôřp@otúl‬m (modified to baffle spammers).


Cut/paste observations in the 80-column MPC format below. Don't worry about it if some other text is copied in as well; extra text will simply be disregarded.

Or, you can upload a file containing the astrometry.

Find artsats within degrees

Motion tolerance : arcmin/sec

Source code for this can be found on GitHub.

Artsats removed from NEOCP

Pseudo-MPECs for most of these objects are available.

ZL22D13 was not a minor planet (2018 June 10.62 UT) = 2015-007B = DSCOVR booster
ZL22902 was not a minor planet (2018 June 10.50 UT) = 2007-004G = THEMIS booster
A106ZsZ was not a minor planet (2018 May 22.76 UT) = ZK1AE47 = Queqiao booster = 2018-045D 
A106Zt0 was not a minor planet (2018 May 22.76 UT) = ZK1AE48 = Queqiao = 2018-045A 
ZJ15031 was not a minor planet (2018 May 15.44 UT) =  ZGBD4BF = unknown artsat; Vela hardware? 
A106N61 was not a minor planet (2018 May 10.85 UT) = 2010-050B = Chang'e 2 booster 
ZJ110D0 was not a minor planet (2018 May 9.74 UT) = 2010-050B = Chang'e 2 booster 
A106IND was not a minor planet (2018 Apr. 18.82 UT) = 2007-004G = THEMIS booster 
JNS007 was not a minor planet (2018 Apr. 17.43 UT) = 2012-003B
ZGBD4BF was not a minor planet (2018 Apr. 12.74 UT) =  ZJ15031 = unknown artsat; Vela hardware? 
ZD8FCAE = 2018 DM4 (2018 Mar. 12.73) = unknown artsat  (3.7-day orbit, i=7; probably Vela junk)
ZTF00HU was not a minor planet (2018 Mar. 8.97 UT) = unknown artsat  (1.06-day orbit, i=41;  no idea what it is)
ZTF00HT was not a minor planet (2018 Mar. 7.94 UT) = S510923 (probable SOLRAD-11 hardware)
ZB02596 was not a minor planet (2018 Jan. 20.62 UT) = 1992-044A = GEOTAIL
ZB01E6F was not a minor planet (2018 Jan. 19.65 UT) = 2013-070B = Chang'e 3 booster
A105Vpa was not a minor planet (2018 Jan. 13.11 UT) = 2011-037B = Spektr-R booster
YYBA961 was not a minor planet (2017 Dec. 20.99 UT) = Themis-D = 2007-004D
YX2674E was not a minor planet (2017 Dec. 16.65 UT) = 2007-004D = THEMIS-D 
YX205B9 was not a minor planet (2017 Dec. 9.17 UT) = 2010-050B = Chang'e 2 booster 
YW1DDB6 was not a minor planet (2017 Nov. 28.13 UT) = 1965-058B = Vela 3B 
YW1C24A was not a minor planet (2017 Nov. 27.49 UT) = unknown maneuvering object
YW14A15 was not a minor planet (2017 Nov. 22.48 UT) = 1963-039C = NORAD 00692 = Vela 1B
YW0F709 was not a minor planet (2017 Nov. 16.99 UT) = 2007-004D = Themis-D
A104JWr was not a minor planet (2017 Oct. 31.07 UT) = 2016-031B = S510599
YU04D17 was not a minor planet (2017 Oct. 28.84 UT) = 2011-037A = SPEKTR-R
A104F4L was not a minor planet (2017 Oct. 28.80 UT) = unknown maneuvering object
YU3F416 was not a minor planet (2017 Oct. 26.41 UT) = unknown maneuvering object
YUA31FA was not a minor planet (2017 Oct. 24.42 UT) = unknown maneuvering object
A104shw was not a minor planet (2017 Oct. 12.03 UT) = unknown maneuvering object
YT273BF was not a minor planet (2017 Oct. 11.71 UT) = unknown maneuvering object
YT273BF was not a minor planet (2017 Oct. 11.71 UT) = YS18A5C etc. =
   unknown maneuvering object
A104mHe was not a minor planet (2017 Oct. 4.52 UT) = MMS still in daylight phase
A104mHa was not a minor planet (2017 Oct. 2.70 UT) = MMS still in daylight phase
   The above two were arcminutes apart.  The Multiscale Magnetospheric Satellites
   are a tight cluster of four satellites.
A104lks was not a minor planet (2017 Sept. 30.85 UT) = unknown maneuvering object
A104dMW was not a minor planet (2017 Sept. 27.08 UT) =  2015-007B = DSCOVR booster
A104ayW was not a minor planet (2017 Sept. 26.77 UT) = YS18A5C = YS16534 = A104ayW
         = unknown maneuvering object
YS1D210 was not a minor planet (2017 Sept. 26.50 UT) = 2002-048A = INTEGRAL
YSAE1BF was not a minor planet (2017 Sept. 25.63 UT) = 2002-048A = INTEGRAL
YS16534 was not confirmed (2017 Sept. 24.76 UT),  but was = YS18A5C = A104ayW
         = unknown maneuvering object
A10422t was not a minor planet (2017 Sept. 20.89 UT) = OSIRIS-REx = 2016-055A
YS18A5C was not a minor planet (2017 Sept. 20.48 UT) = YS18A5C = YS16534 = A104ayW
            = A104lks = unknown maneuvering object
A103Plg was not a minor planet (2017 Sept. 12.88 UT) = 2002-048A = INTEGRAL
A103gra was not a minor planet (2017 Aug. 7.73 UT) =  2015-007B = DSCOVR booster
A102PtH was not a minor planet (2017 June 29.94 UT) = 2002-048A = INTEGRAL
YJ8E84E was not a minor planet (2017 May 5.49 UT)2010-050B = Chang'e 2 booster 
A102rYH was not a minor planet (2017 May 4.80 UT) (= Chang'e 2 booster = 2010-050B)
A102mZM was not a minor planet (2017 Apr. 16.10 UT) (= Jovian moon J11 (Carme))
YE86B74 was not a minor planet (2017 Mar. 8.54 UT) (=artsat, q=8,900km, P=1,395m, e=0.79, H=33.3)
DR0144 was not a minor planet (2017 Mar. 3.51 UT) (= DR0143 = 2010-058A - Meridian 3)
YDBE38D was not a minor planet (2017 Feb. 24.73 UT) (=IMP-7 = 06197U = 1972-073A)
YDBCB9B was not a minor planet (2017 Feb. 23.56 UT) (= 2007-004G = Themis booster)
YDB93D4 was not a minor planet (2017 Feb. 22.58 UT) (possibly  unidentified art
    sat, q=11,000km, a=42,000km, e=0.73, i= 5°, P=0.98d, H=32;  or minor
    planet q=0.95, a=1.05, e=0.10, i= 0.1°, P=1.08yr)
YCB3006 was not a minor planet (2017 Feb. 5.62 UT) (= unidentified art sat,
    q=27,000km, a=82,000km, e=0.67, i= 5°, P=2.7d, H=33)
YCB2EAD was not a minor planet (2017 Feb. 5.62 UT) (=unidentified art sat)
YB98FF0 was not a minor planet (2017 Jan. 26.54 UT) (q=8,500km, Q=84,000km,
     a=46,000km, e=0.816, i=18°, P=1.14d)
YA90431 was not a minor planet (2016 Jan. 9.75 UT) (=2011-037A = SPEKTR-R)
A101CTf was not a minor planet (2016 Jan. 9.75 UT) (=2011-037A = SPEKTR-R)
XY0AC11 was not a minor planet (2016 Dec. 19.19 UT) (= 9O0DC57)
XWA402E was not a minor planet (2016 Nov. 26.55 UT) (= unidentified art sat,
     P=3.6d, i=34°)
XW99CEC was not a minor planet (2016 Nov. 19.60 UT) (= art sat XV902A4)

XV902A4 was not a minor planet (2016 Nov. 11.60 UT) (= XW99CEC, q~17,350km, e~0.791,
     a~82,950km, incl.~18.1, P~2.75d)
XUA93AC was not a minor planet (2016 Oct. 21.56 UT) (=9O0DC57)
XSE131F was not a minor planet (2016 Sept. 25.74 UT) (=9O0DC57)
ARO9271 was not a minor planet (2016 Sept. 24.61 UT) (=IMP-7 = 06197U = 1972-073A)
S510942 was not a minor planet (2016 Sept. 23.00 UT) (P=1458m, i=25.5°, e=.48);
     probably related to 038001s
S510923 was not a minor planet (2016 Sept. 5.07 UT) (P=7702m/5.35d, e=.03, i=38.4°);
     probably SOLRAD 11 hardware
P10wKxy was not a minor planet (2016 Aug. 27.09 UT) (= 2013-070B = NORAD 39459 =
     Chang'e 3 booster)
S510599 was not a minor planet (2016 Aug. 5.55 UT) (= 2016-031B = NORAD 41553:
     P=1947m, e=.87, i=22.2°)
XN9B63A was not a minor planet (2016 July 12.65 UT) (= 1983-020D)
XL8D89E was not a minor planet (2016 June 9.76 UT) (probably = 6Q0B44E, q=802,000km, a=880,000km,
     e=0.088, i=32°, P=95d, H=30.1)
S509590 was not a minor planet (2016 May 29.84 UT) (= 2009-068B = NORAD 36109 =
     WF0AEDA = WGS 3 rk)
S509559 was not a minor planet (2016 May 11.11 UT) (= probable Vela art sat:
     P=6733m/4.68d, e=.45, i=13°)
A100BHx was not a minor planet (2016 May 7.48 UT) (=2011-037A = SPEKTR-R)
S509434 was not a minor planet (2016 Apr. 19.74 UT) (= 2013-041B = NORAD 39224 = WGS 6 Rk)
LM05M27 was not a minor planet (2016 Apr. 11.65 UT)
LM056yj was not a minor planet (2016 Apr. 11.65 UT)
S509356 was not a minor planet (2016 Apr. 8.78 UT) (= WJ2AD07 = 2015-019C = NORAD 41929)
LM057MD was not a minor planet (2016 Mar. 31.83 UT) (= Jupiter satellite J8 (Pasiphae))
LM057QR was not a minor planet (2016 Mar. 31.83 UT) (= Jupiter satellite J9 (Sinope))
XF38FAC was not a minor planet (2016 Mar. 20.63 UT) =  2015-007B = DSCOVR booster
M70pEOH was not a minor planet (2016 Mar. 16.07 UT) (= ExoMars2)
M70pEQ1 was not a minor planet (2016 Mar. 16.07 UT) (= ExoMars2)
M70pGbh was not a minor planet (2016 Mar. 15.60 UT) (= ExoMars1)
M70pF8A was not a minor planet (2016 Mar. 15.60 UT) (= ExoMars1)
M70pEPX was not a minor planet (2016 Mar. 15.60 UT) (= ExoMars1)
XE9C2B4 was not a minor planet (2016 Mar. 3.54 UT) (artificial satellite,
     q=15,000km, e=0.696, a= 49,300km, P=1.26d, H=35)
XE2BED3 was not a minor planet (2016 Mar. 1.72 UT)
XC23519 was not a minor planet (2016 Feb. 14.24 UT) = 2007-004A = Themis-A
XC83E0D was not a minor planet (2016 Feb. 8.80 UT) (= 1976-023C = SOLRAD 11A = NORAD 08748 =
     WB31C9F)
XC1CF5F was not a minor planet (2016 Feb. 7.60 UT) = 2007-004D = Themis-D
XB17DFE was not a minor planet (2016 Jan. 31.58 UT) (but possibly could have
     actually been a minor planet)
XB134E9 was not a minor planet (2016 Jan. 21.63 UT) = 1965-058A = Vela 3a
XB134E9 was not a minor planet (2016 Jan. 21.50 UT) = 1965-058A = Vela 3a
XA0D00E was not a minor planet (2016 Jan. 12.66 UT)
     (= 32705 = 1977-093E = SL-6 R/B(2))
XA0BC12 was not a minor planet (2016 Jan. 12.64 UT) = 1965-058A = Vela 3a