Examples
Automatically pack, unpack and extract MPC object designations from files.
Packed and unpacked designations
OBS80 starts with a fixed-width object field. Long clear-text designations must not simply be copied there because date, RA, DEC and station code would shift. MPC therefore uses compact packed designations for many objects.
Permanent minor-planet numbers are not always written as plain decimal numbers; the packed representation depends on the numeric range. Numbers from 1 to 99999 occupy exactly five characters and are left-padded with zeroes, for example 1 as 00001. Numbers from 100000 to 619999 use a leading Base62 character for the 10000 block followed by four decimal digits; therefore 123456 becomes C3456. From 620000 onward the tilde form is used: ~ plus four Base62 characters encode the offset from the base value 620000. Examples: 620000 becomes ~0000, 800000 becomes ~0kpE, and 1500000 becomes ~3gvY.
Tilde Base62 formula: for number >= 620000, packed = "~" + Base62(number - 620000, 4 characters).
The Base62 digits are 0-9, A-Z and a-z. The four characters are left-padded with 0, which is why 620000 - 620000 = 0 appears as 0000.
Provisional minor planets follow the pattern year + half-month + sequence number + second letter. In packed form the first character is a century code: I for the 1800s, J for the 1900s, K for the 2000s and L for the 2100s. This is followed by the two year digits, the half-month letter, a two-character packed sequence number and the second letter. Example: 2007 TA418 becomes K07Tf8A. Here K07 means year 2007, T is the half-month, f8 encodes sequence number 418 and A is the second letter.
Comets use a related base pattern but may also carry a type letter such as C, P, D or X and a fragment. A missing fragment is represented by 0; a fragment letter is stored lowercase in the packed designation. Numbered periodic comets use a different short form: a four-digit number plus P or D, for example 67P as 0067P. Planetary satellites are written as planet code, three-digit satellite number and S, for example J013S for Jupiter XIII.
The important point is that a packed designation is not an arbitrary abbreviation and not a free tracklet name; it follows a fixed MPC grammar. MPC Packer therefore converts only designations that match one of these rules. Free ADES tracklet identifiers are not guessed; file import discards them, and manual input marks them as unsafe.
For ADES the program checks permID, then provID, then trkSub. A pure trkSub is not guessed; it is marked as unsafe.
Examples
Examples as CSV · Examples as JSON
| Object type | Unpacked | Packed | Note |
|---|---|---|---|
| numbered minor planet | 1 | 00001 | Numbers below 100000 are zero-padded to five characters. |
| numbered minor planet | 123456 | C3456 | C encodes the 120000 to 129999 block. |
| numbered minor planet | 620000 | ~0000 | Tilde Base62 encoding starts at 620000. |
| numbered minor planet | 800000 | ~0kpE | The four Base62 digits encode 180000 as the offset from 620000. |
| numbered minor planet | 1500000 | ~3gvY | The four Base62 digits encode 880000 as the offset from 620000. |
| numbered minor planet | 623844 | ~0100 | Four Base62 digits store the number minus 620000. |
| provisional minor planet | 1995 XA | J95X00A | J encodes the 1900s, 00 means no sequence number. |
| provisional minor planet | 2007 TA418 | K07Tf8A | 418 is encoded as f8. |
| provisional minor planet | 2020 RX118 | K20RB8X | 118 is encoded as B8. |
| comet | C/2023 S3 | CK23S030 | C is the comet type, S the half-month, 03 the sequence number. |
| comet | 1994 P1-B | J94P01b | Fragment B is stored as lowercase b. |
| comet | 2088 A103 | K88AA30 | 103 is encoded as A3; without fragment the final character is 0. |
| numbered periodic comet | 67P | 0067P | The number is left-padded to four digits. |
| planetary satellite | Jupiter XIII | J013S | The Roman satellite number is stored as a three-digit Arabic number. |