Files
skyview.astronomiemuseum.de/public/py/sgp4/alpha5.py
T
2026-03-31 09:44:27 +02:00

23 lines
606 B
Python

"""Alpha 5 encoding of satellite numbers to fit in 5 characters."""
def to_alpha5(n):
if n < 100000:
return '%05d' % n
if n > 339999:
raise ValueError('satellite number cannot exceed 339999,'
" whose Alpha 5 encoding is 'Z9999'")
i, n = divmod(n, 10000)
i += ord('A') - 10
if i >= ord('I'): i += 1
if i >= ord('O'): i += 1
return '%c%04d' % (i, n)
def from_alpha5(s):
if not s[0].isalpha():
return int(s)
c, s = s[0], s[1:]
n = ord(c) - ord('A') + 10
n -= c > 'I'
n -= c > 'O'
return n * 10000 + int(s)