MPC Packer Logo

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 typeUnpackedPackedNote
numbered minor planet100001Numbers below 100000 are zero-padded to five characters.
numbered minor planet123456C3456C encodes the 120000 to 129999 block.
numbered minor planet620000~0000Tilde Base62 encoding starts at 620000.
numbered minor planet800000~0kpEThe four Base62 digits encode 180000 as the offset from 620000.
numbered minor planet1500000~3gvYThe four Base62 digits encode 880000 as the offset from 620000.
numbered minor planet623844~0100Four Base62 digits store the number minus 620000.
provisional minor planet1995 XAJ95X00AJ encodes the 1900s, 00 means no sequence number.
provisional minor planet2007 TA418K07Tf8A418 is encoded as f8.
provisional minor planet2020 RX118K20RB8X118 is encoded as B8.
cometC/2023 S3CK23S030C is the comet type, S the half-month, 03 the sequence number.
comet1994 P1-BJ94P01bFragment B is stored as lowercase b.
comet2088 A103K88AA30103 is encoded as A3; without fragment the final character is 0.
numbered periodic comet67P0067PThe number is left-padded to four digits.
planetary satelliteJupiter XIIIJ013SThe Roman satellite number is stored as a three-digit Arabic number.