Answers to Latitude, longitude and altitude of Ckoirama Observatory; where can things like this be looked-up? point to https://www.minorplanetcenter.net/iau/lists/ObsCodesF.html which currently lists 2198 observatories.

The first character of the three character codes has 36 possible alphanumeric values. and the second two are only digits. That allows for 36*10*10 = 3600 possible codes.

I plotted the ones that are currently used and the pattern is interesting. Why are some letter codes fully used (all 100 two digit suffixes are populated) whereas others are completely empty? I haven't noticed an alphabetical associations.

Y = 0 to 9 are the digits and 10 to 36 are A through Z: Shading means the code is used.


For some reason I can't stop comparing the data to the famous Arecibo message, a tiny 1-bit bitmapped image beamed to space containing DNA, amino acids, our solar system and other goodies:

Arecibo Image

import numpy as np
import matplotlib.pyplot as plt
# blob is the unformatted lines from https://www.minorplanetcenter.net/iau/lists/ObsCodes.html
threes = [line[:3] for line in blob.splitlines()]
a = [[x] for x in key]
for t in threes:
b = np.zeros((36, 100))
for i, thing in enumerate(a):
    c = [int(x[1:]) for x in thing[1:]]
    for d in c:
        b[i, d] = 1
plt.imshow(-b, interpolation='nearest', cmap='gray')
pairs = []
todegs = 180/np.pi
for line in blob.splitlines():
        cos, sin = [float(x) for x in (line[13:21], line[21:30])]
        lat = todegs * np.arctan2(sin, cos)
        lon = float(line[4:13])
        pairs.append([lon, lat])
print(len(pairs), len(blob.splitlines()), float(len(pairs))/len(blob.splitlines()) )
lon, lat = np.array(list(zip(*pairs)))
lon = np.mod(lon+180, 360) - 180
plt.plot(lon, lat, 'ok', markersize=1)
plt.ylim(-90, 90)
plt.xlim(-180, 180)
  • 2
    $\begingroup$ I suspect only Gareth Williams of the MPC knows for sure, but my speculation is that recent ones are grouped by longitude. When I applied for the 3 site codes for our 1m telescopes at CTIO in Chile we got W85-W87. DECam on the same mountain got W84 later and when we applied for codes for the newer 0.4m telescopes (at different times we got W89 and W79. Similarly in Hawaii; we got T03 and T04, later codes were T05-T14 $\endgroup$ Mar 19, 2020 at 16:12
  • $\begingroup$ @astrosnapper thanks! I'll do a correlation analysis. While latitude isn't directly available on this list perhaps I can use the parallax coefficients. Can I use the parallax coefficients for observatories as a proxy for latitude using arctan2(sin, cos)? $\endgroup$
    – uhoh
    Mar 20, 2020 at 0:26
  • $\begingroup$ For some reason "If all three were letters there would be 46656 possible codes" was removed from my question, so I'll add it back here as a comment. $\endgroup$
    – uhoh
    May 22, 2020 at 7:40

1 Answer 1


I asked the at the minor planet center how the codes were decided, and the answer was

Historically, the observatory codes were assigned ascending by longitude toward east (from prime meridian): 360 degrees were divided by numbers. When three digit numerical codes were not sufficient, letters plus two numbers were used again in bands toward the east. Some bands are already full (e.g. H**). New observatory code is assigned in the available letter+number band (based on its longitude).


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .