ST5000 Flight Catalogs

Change Log
Version Date Comments
1.0 29-May-2012 Initial Release
1.1 25-Jun-2012 Add more catalogs, add checksums
1.2 20-Feb-2015 Add the 5.08 and 5.09-wsmr builds.

Introduction

The ST5000 uses two on-board catalogs for its miraculous Lost-in-Space (LIS) attitude determination. It uses a star catalog of 38,400 stars brighter than about 8th magnitude, and a magically designed catalog of star triangles built from the star catalog.

The normal triangle catalog uses a level-8 Hierarchical Triangular Mesh to provide 524,288 triangles over 4pi steradians, or about 13 triangles per square degree. A level-9 mesh provides 4 times as many triangles, or 2,097,152, for about 52 triangles per square degree. This improves the LIS performance for faint, sparse fields.

Flight catalog names:

Note on file names and dates: the standard star catalog contains stars from the SAO J2000 catalog. The triangle catalog is produced from the star catalog. IMPORTANT: although the catalogs come from the same ultimate source, their low-level bit-for-bit content may vary according to the computer on which they were produced. This is due to insignificant differences in least-significant bits of floating point numbers and floating point processor hardware. So, if you produced the star catalog in 2001 using a Silicon Graphics Indy workstation, it will not compare bit-for-bit with one produced in 2012 on a Mac. The checksums will differ too. The stars may even sort to a slightly different ordering. But the overall "stellar" content will be the same.

Because of this, you need to use catalog pairs of similar "vintage". The tried and true level-8 flight catalogs are vintage 2001. The new level 9 catalogs are vintage 2012. You must use one vintage or the other, but not both.

The names encode the file characteristics. The "8" in the traditional star catalog name denotes a faint end of 8th magnitude. The "8.8" in the triangle catalog name denotes an 8th magnitude star catalog built out to mesh level 8 for triangles. The new (vintage 2012) catalogs have more information in their names:

Using the new catalogs as custom catalogs:

To run a test with new catalogs, I recommend you load them in as the custom "user" catalogs, similar to the custom catalogs you build with Learn Mode. When you select "Use Custom Catalogs" from the GUI, the following file names are used:

So to run a level-9 sky test, you'd use ftp to load the tracker like this:

Then you can toggle between the level-8 and level-9 meshes just by selecting "Load Normal Catalogs" and "Load Custom Catalogs" in the GUI.

To restore the tracker to its normal contents, do a "Remove Custom Catalogs".

Using the new catalogs as the "real" catalogs, in case you need to use custom catalogs for other reasons:

Just load the catalogs into the regular names:

The catalogs are here. See important software note below.

Here are the checksums (see note below the table):

Star catalog Checksum Level 8 Mesh Checksum Level 9 Mesh Checksum
lis.8.cat.s.dat 0x0b4e lis.8.8.cat.t.dat 0xa951

lis.4.0.8.0.cat.s.dat 0x27b1 lis.4.0.8.0.8.cat.t.dat 0x3004 lis.4.0.8.0.9.cat.t.dat 0x0da1
lis.4.5.8.0.cat.s.dat 0x0974 lis.4.5.8.0.8.cat.t.dat 0x7609 lis.4.5.8.0.9.cat.t.dat 0x5a16
lis.5.0.8.0.cat.s.dat 0x722c lis.5.0.8.0.8.cat.t.dat 0x3512 lis.5.0.8.0.9.cat.t.dat 0x80d8
lis.5.5.8.0.cat.s.dat 0x1db8 lis.5.5.8.0.8.cat.t.dat 0xecd3 lis.5.5.8.0.9.cat.t.dat 0x2aab
lis.6.0.8.0.cat.s.dat 0xf327 lis.6.0.8.0.8.cat.t.dat 0x0402 lis.6.0.8.0.9.cat.t.dat 0x1b6b

Note: the checksums are not computed on the raw catalog files. Instead, the catalog files are read into structs in the C program, and the checksum is calculated on the resulting struct array. We do this to ensure that the arrays are correct after the read. It is therefore necessary to worry about how the C compiler packs and aligns the struct members. We use a 32-bit memory model, so the LisStar struct is 28 bytes and the LisTriangle struct is 10 bytes. On 64-bit OSX, the LisStar struct turns out to be 32 bytes, and the checksum produces an incorrect answer. We achieved the correct 28-byte packing on a 64-bit CPU by wrapping the struct definition with:

#pragma pack(4)
...
#pragma options align=reset

Important Software Note:

The ST5000 software version 5.08 was compiled with a triangle array sized for the level-8 mesh. A level-9 mesh is 4 times as big, so the triangle array needs a bigger dimension.

Here is a zip file (builds-5.09-wsmr.zip) of new executables compiled with the bigger array.

Here is a zip file of the usual 5.08 (builds-5.08.zip) executables.