A2.0 CD-ROM organization

Last updated 22 Mar 2000

Version of this documentation for A1.0
Basic information about A2.0
Sites on the Internet where you can get Ax.0 data
USNO site for 'Ax.0 and derivatives'
C/C++ source code for extracting Ax.0 data
Computing 'pseudo-V' magnitudes from Ax.0 R and B data
Compression of A2.0
Recalibrating Ax.0 magnitudes
A2.0 zones listed in declination order
A2.0, disk #1
A2.0, disk #2
A2.0, disk #3
A2.0, disk #4
A2.0, disk #5
A2.0, disk #6
A2.0, disk #7
A2.0, disk #8
A2.0, disk #9
A2.0, disk #10
A2.0, disk #11
SA2.0
A2.0 sizes after filtering faint stars

A2.0 zones, in declination order: The A2.0 (and A1.0) data are stored in zones, each 7.5 degrees high, numbered by distance from the south celestial pole ("SPD", "South Polar distance"). Thus, ZONE0000.CAT contains data from dec -90 to -82.5; ZONE0075 continues from -82.5 up to -75; and so on, up to ZONE1725 from +82.5 to +90.

This has two unfortunate consequences. First, the files near the celestial equator are enormous. Second, to fit the data on eleven CDs with minimal waste, any concept of orderly organization had to be sacrificed.

To add further confusion, the order for A2.0 is not the same as that for A1.0.

It might help to have a "reduced A2.0", a program that would take a .CAT file and produce a subset to a desired magnitude. I may get around to doing that someday (it's a fairly simple job.)

  Filename        Size          A2.0 disk    A1.0 disk  dec range
ZONE0000 CAT    23,910,768      Disk 1        1         -90    -82.5
ZONE0075 CAT    86,276,232      Disk 1        1         -82.5  -75
ZONE0150 CAT   246,296,364      Disk 9        6         -75    -67.5
ZONE0225 CAT   383,940,000      Disk 7        5         -67.5  -60
ZONE0300 CAT   457,993,524      Disk 5        3         -60    -52.5
ZONE0375 CAT   485,481,948      Disk 4        2         -52.5  -45
ZONE0450 CAT   489,880,236      Disk 3        1         -45    -37.5
ZONE0525 CAT   533,337,552      Disk 2        4         -37.5  -30
ZONE0600 CAT   537,821,028      Disk 1        6         -30    -22.5
ZONE0675 CAT   451,563,264      Disk 6        5         -22.5  -15
ZONE0750 CAT   259,313,868      Disk 7        7         -15    -07.5
ZONE0825 CAT   240,911,568      Disk 10       10        -07.5    0
ZONE0900 CAT   246,545,064      Disk 9        8           0    +07.5
ZONE0975 CAT   257,190,756      Disk 8        7         +07.5  +15
ZONE1050 CAT   250,388,400      Disk 8        8         +15    +22.5
ZONE1125 CAT   240,292,752      Disk 11       9         +22.5  +30
ZONE1200 CAT   241,716,960      Disk 10       9         +30    +37.5
ZONE1275 CAT   225,209,376      Disk 11       4         +37.5  +45
ZONE1350 CAT   227,169,384      Disk 6        10        +45    +52.5
ZONE1425 CAT   190,958,580      Disk 4        3         +52.5  +60
ZONE1500 CAT   123,258,960      Disk 2        2         +60    +67.5
ZONE1575 CAT    71,540,304      Disk 3        6         +67.5  +75
ZONE1650 CAT    34,832,736      Disk 3        2         +75    +82.5
ZONE1725 CAT     9,540,948      Disk 2        3         +82.5  +90
Total:       6,315,370,572

Dave Skillman provided the following helpful visualization of the A2.0 layout:

Declination zone mapping to A2 disk numbers

Dec 90.0   82.5   75.0   67.5   60.0   52.5   45.0   37.5   30.0
        \ /    \ /    \ /    \ /    \ /    \ /    \ /    \ /
Disk     2      3      3      2      4      6     11     10



Dec 30.0   22.5   15.0   07.5   00.0  -07.5  -15.0  -22.5  -30.0
        \ /    \ /    \ /    \ /    \  /   \ /    \ /    \ /
Disk    11      8      8      9      10     7      6      1


Dec -30.0  -37.5  -45.0  -52.5  -60.0  -67.5  -75.0  -82.5  -90.0
         \ /    \ /    \ /    \ /    \ /    \ /    \ /    \ /
Disk      2      3      4      5      7      9      1      1


 Disk #1: 
 Volume in drive J is UA001
 Volume Serial Number is B6CC-3F2C
 Directory of J:\

DEMO     TAR        51,200  09-24-98 10:15a DEMO.TAR
READAST  V10         8,326  09-24-98 10:15a READAST.V10
README   V10        12,727  09-24-98 10:15a README.V10
README   V20        19,366  09-24-98 10:15a README.V20
READMESA V10         4,854  09-24-98 10:15a READMESA.V10
READMESA V20         1,199  09-24-98 10:15a READMESA.V20
READPHT  V10        11,096  09-24-98 10:15a READPHT.V10
READPMM  V10        29,134  09-24-98 10:15a READPMM.V10
READUSE  V10         6,201  09-24-98 10:15a READUSE.V10
READUSE  V20         6,381  09-24-98 10:15a READUSE.V20
ZONE0000 ACC         2,880  09-24-98 10:13a ZONE0000.ACC
ZONE0000 CAT    23,910,768  09-24-98 10:13a ZONE0000.CAT
ZONE0075 ACC         2,880  09-24-98 10:15a ZONE0075.ACC
ZONE0075 CAT    86,276,232  09-24-98 10:15a ZONE0075.CAT
ZONE0600 ACC         2,880  09-24-98 10:13a ZONE0600.ACC
ZONE0600 CAT   537,821,028  09-24-98 10:13a ZONE0600.CAT
        16 file(s)    648,167,152 bytes
         0 dir(s)               0 bytes free


 Disk #2: 
 Volume in drive K is UA002
 Volume Serial Number is C724-6122
 Directory of K:\

ZONE0525 ACC         2,880  09-20-98 11:57a ZONE0525.ACC
ZONE0525 CAT   533,337,552  09-20-98 11:57a ZONE0525.CAT
ZONE1500 ACC         2,880  09-20-98 11:59a ZONE1500.ACC
ZONE1500 CAT   123,258,960  09-20-98 11:59a ZONE1500.CAT
ZONE1725 ACC         2,880  09-20-98 11:59a ZONE1725.ACC
ZONE1725 CAT     9,540,948  09-20-98 11:59a ZONE1725.CAT
         6 file(s)    666,146,100 bytes
         0 dir(s)               0 bytes free


 Disk #3: 
 Volume in drive L is UA003
 Volume Serial Number is 962B-7529
 Directory of L:\

NEWBIN   TAR    51,640,320  09-20-98 12:56p NEWBIN.TAR
SG1      TAR    26,511,360  09-20-98 12:55p SG1.TAR
ZONE0450 ACC         2,880  09-20-98 12:53p ZONE0450.ACC
ZONE0450 CAT   489,880,236  09-20-98 12:53p ZONE0450.CAT
ZONE1575 ACC         2,880  09-20-98 12:54p ZONE1575.ACC
ZONE1575 CAT    71,540,304  09-20-98 12:54p ZONE1575.CAT
ZONE1650 ACC         2,880  09-20-98 12:55p ZONE1650.ACC
ZONE1650 CAT    34,832,736  09-20-98 12:55p ZONE1650.CAT
         8 file(s)    674,413,596 bytes
         0 dir(s)               0 bytes free


 Disk #4: 
 Volume in drive M is UA004
 Volume Serial Number is A62F-7A25
 Directory of M:\

ZONE0375 ACC         2,880  09-20-98  1:51p ZONE0375.ACC
ZONE0375 CAT   485,481,948  09-20-98  1:51p ZONE0375.CAT
ZONE1425 ACC         2,880  09-20-98  1:55p ZONE1425.ACC
ZONE1425 CAT   190,958,580  09-20-98  1:55p ZONE1425.CAT
         4 file(s)    676,446,288 bytes
         0 dir(s)               0 bytes free


 Disk #5: 
 Volume in drive J is UA005
 Volume Serial Number is BFCE-121F
 Directory of J:\

ALPHA13  TAR    86,640,640  09-20-98  2:51p ALPHA13.TAR
BINARY   TAR    81,326,080  09-20-98  2:52p BINARY.TAR
ZONE0300 ACC         2,880  09-20-98  2:49p ZONE0300.ACC
ZONE0300 CAT   457,993,524  09-20-98  2:49p ZONE0300.CAT
         4 file(s)    625,963,124 bytes
         0 dir(s)               0 bytes free


 Disk #6: 
 Volume in drive K is UA006
 Volume Serial Number is D337-8129
 Directory of K:\

ZONE0675 ACC         2,880  09-20-98  3:43p ZONE0675.ACC
ZONE0675 CAT   451,563,264  09-20-98  3:43p ZONE0675.CAT
ZONE1350 ACC         2,880  09-20-98  3:47p ZONE1350.ACC
ZONE1350 CAT   227,169,384  09-20-98  3:47p ZONE1350.CAT
         4 file(s)    678,738,408 bytes
         0 dir(s)               0 bytes free


 Disk #7: 
 Volume in drive L is UA007
 Volume Serial Number is BEEB-402C
 Directory of L:\

ZONE0225 ACC         2,880  09-20-98  4:41p ZONE0225.ACC
ZONE0225 CAT   383,940,000  09-20-98  4:41p ZONE0225.CAT
ZONE0750 ACC         2,880  09-20-98  4:45p ZONE0750.ACC
ZONE0750 CAT   259,313,868  09-20-98  4:45p ZONE0750.CAT
         4 file(s)    643,259,628 bytes
         0 dir(s)               0 bytes free


 Disk #8: 
 Volume in drive M is UA008
 Volume Serial Number is D5EA-3C2C
 Directory of M:\

ZONE0975 ACC         2,880  09-20-98  5:34p ZONE0975.ACC
ZONE0975 CAT   257,190,756  09-20-98  5:34p ZONE0975.CAT
ZONE1050 ACC         2,880  09-20-98  5:38p ZONE1050.ACC
ZONE1050 CAT   250,388,400  09-20-98  5:38p ZONE1050.CAT
         4 file(s)    507,584,916 bytes
         0 dir(s)               0 bytes free


 Disk #9: 
 Volume in drive J is UA009
 Volume Serial Number is D7BD-1F2B
 Directory of J:\

ZONE0150 ACC         2,880  09-20-98  6:22p ZONE0150.ACC
ZONE0150 CAT   246,296,364  09-20-98  6:22p ZONE0150.CAT
ZONE0900 ACC         2,880  09-20-98  6:18p ZONE0900.ACC
ZONE0900 CAT   246,545,064  09-20-98  6:18p ZONE0900.CAT
         4 file(s)    492,847,188 bytes
         0 dir(s)               0 bytes free


 Disk #10: 
 Volume in drive K is UA010
 Volume Serial Number is AE8E-0C21
 Directory of K:\

ZONE0825 ACC         2,880  09-20-98  7:06p ZONE0825.ACC
ZONE0825 CAT   240,911,568  09-20-98  7:06p ZONE0825.CAT
ZONE1200 ACC         2,880  09-20-98  7:02p ZONE1200.ACC
ZONE1200 CAT   241,716,960  09-20-98  7:02p ZONE1200.CAT
         4 file(s)    482,634,288 bytes
         0 dir(s)               0 bytes free


 Disk #11: 
 Volume in drive L is UA011
 Volume Serial Number is CBA2-F42A
 Directory of L:\

ZONE1125 ACC         2,880  09-20-98  7:44p ZONE1125.ACC
ZONE1125 CAT   240,292,752  09-20-98  7:44p ZONE1125.CAT
ZONE1275 ACC         2,880  09-20-98  7:48p ZONE1275.ACC
ZONE1275 CAT   225,209,376  09-20-98  7:48p ZONE1275.CAT
         4 file(s)    465,507,888 bytes
         0 dir(s)               0 bytes free


 SA2.0: 
 Volume in drive K is USNOSA20
 Volume Serial Number is 4B51-C695
 Directory of K:\

READAST  V10         8,326  09-24-98 11:05a READAST.V10
README   V10        12,727  09-24-98 11:05a README.V10
README   V20        19,366  09-24-98 11:05a README.V20
READMESA V10         4,854  09-24-98 11:05a READMESA.V10
READMESA V20         1,199  09-24-98 11:05a READMESA.V20
READPHT  V10        11,096  09-24-98 11:05a READPHT.V10
READPMM  V10        29,134  09-24-98 11:05a READPMM.V10
READUSE  V10         6,201  09-24-98 11:05a READUSE.V10
READUSE  V20         6,381  09-24-98 11:05a READUSE.V20
ZONE0000 ACC         2,880  09-24-98 11:05a ZONE0000.ACC
ZONE0000 CAT     3,052,152  09-24-98 11:05a ZONE0000.CAT
ZONE0075 ACC         2,880  09-24-98 11:05a ZONE0075.ACC
ZONE0075 CAT     9,083,196  09-24-98 11:06a ZONE0075.CAT
ZONE0150 ACC         2,880  09-24-98 11:05a ZONE0150.ACC
ZONE0150 CAT    14,968,068  09-24-98 11:06a ZONE0150.CAT
ZONE0225 ACC         2,880  09-24-98 11:05a ZONE0225.ACC
ZONE0225 CAT    20,472,024  09-24-98 11:06a ZONE0225.CAT
ZONE0300 ACC         2,880  09-24-98 11:05a ZONE0300.ACC
ZONE0300 CAT    25,635,408  09-24-98 11:07a ZONE0300.CAT
ZONE0375 ACC         2,880  09-24-98 11:05a ZONE0375.ACC
ZONE0375 CAT    30,337,008  09-24-98 11:07a ZONE0375.CAT
ZONE0450 ACC         2,880  09-24-98 11:05a ZONE0450.ACC
ZONE0450 CAT    34,453,488  09-24-98 11:08a ZONE0450.CAT
ZONE0525 ACC         2,880  09-24-98 11:05a ZONE0525.ACC
ZONE0525 CAT    37,932,072  09-24-98 11:09a ZONE0525.CAT
ZONE0600 ACC         2,880  09-24-98 11:05a ZONE0600.ACC
ZONE0600 CAT    40,948,416  09-24-98 11:10a ZONE0600.CAT
ZONE0675 ACC         2,880  09-24-98 11:05a ZONE0675.ACC
ZONE0675 CAT    41,942,196  09-24-98 11:11a ZONE0675.CAT
ZONE0750 ACC         2,880  09-24-98 11:05a ZONE0750.ACC
ZONE0750 CAT    40,867,848  09-24-98 11:11a ZONE0750.CAT
ZONE0825 ACC         2,880  09-24-98 11:05a ZONE0825.ACC
ZONE0825 CAT    41,095,488  09-24-98 11:12a ZONE0825.CAT
ZONE0900 ACC         2,880  09-24-98 11:05a ZONE0900.ACC
ZONE0900 CAT    40,869,072  09-24-98 11:13a ZONE0900.CAT
ZONE0975 ACC         2,880  09-24-98 11:05a ZONE0975.ACC
ZONE0975 CAT    40,153,776  09-24-98 11:14a ZONE0975.CAT
ZONE1050 ACC         2,880  09-24-98 11:05a ZONE1050.ACC
ZONE1050 CAT    39,405,480  09-24-98 11:15a ZONE1050.CAT
ZONE1125 ACC         2,880  09-24-98 11:05a ZONE1125.ACC
ZONE1125 CAT    37,838,388  09-24-98 11:15a ZONE1125.CAT
ZONE1200 ACC         2,880  09-24-98 11:05a ZONE1200.ACC
ZONE1200 CAT    35,579,316  09-24-98 11:16a ZONE1200.CAT
ZONE1275 ACC         2,880  09-24-98 11:05a ZONE1275.ACC
ZONE1275 CAT    32,420,964  09-24-98 11:17a ZONE1275.CAT
ZONE1350 ACC         2,880  09-24-98 11:05a ZONE1350.ACC
ZONE1350 CAT    28,552,992  09-24-98 11:17a ZONE1350.CAT
ZONE1425 ACC         2,880  09-24-98 11:05a ZONE1425.ACC
ZONE1425 CAT    24,210,864  09-24-98 11:18a ZONE1425.CAT
ZONE1500 ACC         2,880  09-24-98 11:05a ZONE1500.ACC
ZONE1500 CAT    19,156,344  09-24-98 11:18a ZONE1500.CAT
ZONE1575 ACC         2,880  09-24-98 11:05a ZONE1575.ACC
ZONE1575 CAT    13,976,316  09-24-98 11:19a ZONE1575.CAT
ZONE1650 ACC         2,880  09-24-98 11:05a ZONE1650.ACC
ZONE1650 CAT     8,609,532  09-24-98 11:19a ZONE1650.CAT
ZONE1725 ACC         2,880  09-24-98 11:05a ZONE1725.ACC
ZONE1725 CAT     2,858,460  09-24-98 11:19a ZONE1725.CAT
        57 file(s)    664,587,272 bytes
         0 dir(s)               0 bytes free

A2.0 sizes after filtering faint stars: The entire A2.0 tips the scales at 6.3 GBytes, a bit more than some of us want to put on our hard drives right now. One way to evade this is to filter out stars fainter than a certain magnitude.

This leads to two problems. The first is finding software to do the filtering. I didn't know of any until recently, but in February 2003, David Dean posted the following on the Astrometrica and Minor Planet Mailing List:

MPer's,

I've written a perl script to filter the USNO A2 database at a given
mag limit. (I posted on the Astrometrica group recently about this -
sorry if this is redundant for you!). You're welcome to copy it from
http://m57.org/contrib/DoubleD/usnoFilter.txt and give it a try. See
the comments at the top of the script on how to use. You'll need perl
on your local computer, running from a command prompt under Windows
(or shell on any other platform perl runs on).

I've found this handy to put a smaller database on my laptop to check
pointing or get a quick fit at the scope. (I never have much luck with
the SA subset). Use at your own risk, but I have done some sanity
checks - filtering a zone at mag "100", for example, ouputs .acc and
.cat files identical to the original A2 files.

Feel free to write me off-group with any questions or comments.

David Dean

The second problem is determining what the limit ought to be. Choose too faint a limit, and you may find (after carefully swapping in all eleven CD-ROMs) that the "subset" won't fit. Choose too bright a limit, and you'll find that you've plenty of space left over.

The following tables give the size, in megabytes, of each of the 24 A2.0 declination "zones" after filtering to a given magnitude, as well as the size of all 24 zones combined. Examples: if you filtered zone 0525 to R magnitude 17.5, the resulting data would consume 295 MBytes. Filtering the entire A2.0 to that level would consume 3318 MBytes. (The 'zone by zone' data lets you figure out, say, what size would result if you took everything north of dec -30 and brighter than 18.)

Three tables are given, for R magnitude, B magnitude, and V magnitude limits. The R and B data come straight from A2.0 itself. The V magnitudes are computed using a very rough approximation provided by T. Kato:

V = (5R + 3B) / 8

The results don't add up to the full size of A2.0, because some stars lack R and/or B magnitudes. A "megabyte" is defined to be 2^20 = 1,048,576 bytes.


                    R Magnitude sizes: 

band   0000 0075 0150 0225 0300 0375 0450 0525 0600 0675 0750 0825
----   ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
13.0:     0    1    3    6    8    8    8    8    7    7    5    4
13.5:     0    2    5    9   12   11   11   11   11   10    8    7
14.0:     0    2    7   13   17   16   16   16   15   15   12   11
14.5:     1    3   10   20   25   23   23   23   22   22   18   16
15.0:     1    5   14   29   36   33   32   34   32   32   27   24
15.5:     2    7   21   42   53   48   47   50   48   47   39   35
16.0:     3   11   32   63   78   71   69   75   70   69   55   50
16.5:     4   16   48   97  117  107  104  113  107  100   78   69
17.0:     6   24   75  147  176  162  156  174  165  145  104   93
17.5:    10   40  127  239  284  270  257  295  276  215  135  120
18.0:    21   80  223  356  418  451  443  490  493  370  171  153
18.5:    22   82  234  365  436  462  466  505  510  417  209  189
19.0:    22   82  234  365  436  462  466  505  510  426  237  217
19.5:    22   82  234  365  436  462  466  505  510  429  246  228

band   0900 0975 1050 1125 1200 1275 1350 1425 1500 1575 1650 1725 total
----   ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -----
13.0:     5    5    5    5    5    4    4    3    2    1    0    0  116
13.5:     8    8    7    7    7    6    7    5    3    2    1    0  170
14.0:    12   12   11   11   11   10   10    8    5    3    1    0  247
14.5:    17   18   17   17   17   15   15   12    7    4    2    0  358
15.0:    26   26   24   24   25   21   22   18   11    6    3    1  520
15.5:    37   38   36   35   35   31   32   26   16    9    5    1  752
16.0:    53   54   50   49   49   43   46   36   22   13    7    2 1082
16.5:    73   75   70   68   68   60   64   51   32   18    9    2 1561
17.0:    99  102   95   92   92   81   86   70   43   24   12    3 2239
17.5:   127  132  124  120  120  106  111   91   57   32   16    4 3318
18.0:   159  167  157  151  151  135  140  117   73   41   20    5 4994
18.5:   195  204  195  186  186  170  175  148   94   52   25    6 5545
19.0:   224  234  226  216  217  201  204  172  110   63   30    8 5877
19.5:   234  244  238  228  229  213  215  181  117   67   33    9 6004



                      B Magnitude sizes: 

band   0000 0075 0150 0225 0300 0375 0450 0525 0600 0675 0750 0825
----   ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
13.0:     0    0    1    2    4    5    5    5    5    5    5    3
13.5:     0    0    1    3    6    8    7    7    7    7    7    5
14.0:     0    0    2    5    9   11   11   11   10   10   10    8
14.5:     0    0    2    7   13   17   16   15   15   15   15   12
15.0:     0    1    4   10   20   25   23   22   23   22   23   19
15.5:     0    1    5   15   30   36   34   33   33   33   33   28
16.0:     0    2    8   23   44   54   50   48   49   48   49   40
16.5:     0    3   12   35   67   80   74   71   74   71   72   57
17.0:     0    5   17   53  100  119  111  105  110  107  104   80
17.5:     0    7   25   81  149  176  165  156  166  160  150  107
18.0:     0   10   37  126  219  260  246  232  252  241  215  141
18.5:     0   16   62  194  311  367  380  359  397  385  321  184
19.0:     0   22   81  231  361  430  458  459  498  502  415  226
19.5:     0   22   82  234  364  435  462  465  504  509  428  245

band   0900 0975 1050 1125 1200 1275 1350 1425 1500 1575 1650 1725 total
----   ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -----
13.0:     3    3    3    3    3    3    3    3    2    1    1    0   75
13.5:     5    5    5    5    5    5    4    4    3    2    1    0  113
14.0:     7    8    8    8    7    8    7    7    5    3    2    1  168
14.5:    11   12   13   12   11   12   10   11    8    5    3    1  249
15.0:    17   18   19   18   17   18   16   16   12    7    4    2  365
15.5:    25   27   28   26   25   26   23   24   18   11    7    4  534
16.0:    36   38   40   37   36   37   33   34   27   16   10    5  774
16.5:    51   54   56   52   50   51   46   48   38   22   13    7 1115
17.0:    70   74   77   72   69   71   63   66   52   31   18   10 1596
17.5:    95  100  104   97   93   95   85   88   70   42   24   13 2257
18.0:   125  130  137  127  122  123  110  115   93   56   32   16 3178
18.5:   162  169  177  165  158  158  143  148  122   75   42   21 4528
19.0:   204  210  219  209  198  199  183  188  157   99   56   27 5644
19.5:   226  233  243  236  225  226  211  213  179  115   66   32 5965



                      V Magnitude sizes: 

band   0000 0075 0150 0225 0300 0375 0450 0525 0600 0675 0750 0825
----   ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
13.0:     0    0    1    2    3    3    3    3    3    3    1    1
13.5:     0    0    2    3    4    4    4    4    4    4    3    2
14.0:     0    1    3    5    6    6    6    6    6    6    4    4
14.5:     0    1    4    8    9    9    9    8    9    9    7    6
15.0:     0    2    6   12   14   13   13   13   13   14   11   10
15.5:     1    3    9   18   21   20   19   19   20   21   17   15
16.0:     1    5   14   27   31   29   28   28   29   31   25   22
16.5:     2    7   22   41   47   44   42   43   44   45   37   32
17.0:     3   11   34   61   70   66   63   64   65   66   52   46
17.5:     4   16   51   91  103   99   93   95   96   96   72   63
18.0:     7   23   76  130  150  144  135  138  139  135   96   84
18.5:     9   32  107  179  206  200  188  193  192  189  129  110
19.0:    11   42  143  231  270  264  249  260  257  251  174  149
19.5:    14   54  179  277  329  332  316  333  328  313  224  199

band   0900 0975 1050 1125 1200 1275 1350 1425 1500 1575 1650 1725 total
----   ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -----
13.0:     1    2    1    1    1    1    1    1    0    0    0    0   43
13.5:     3    3    3    2    3    2    2    2    1    0    0    0   65
14.0:     4    5    4    4    4    4    4    3    2    1    0    0   98
14.5:     7    7    7    7    7    6    6    4    3    2    1    0  147
15.0:    11   11   11   10   10   10    9    7    4    3    1    0  219
15.5:    16   17   16   15   16   15   15   11    6    4    2    0  326
16.0:    24   25   24   22   23   22   22   16    9    6    3    1  479
16.5:    34   36   34   32   33   31   31   23   13    8    5    1  701
17.0:    48   51   48   45   47   43   45   33   19   12    7    2 1010
17.5:    66   70   65   61   64   59   61   46   26   16    9    2 1439
18.0:    88   93   87   82   86   79   82   62   35   21   12    3 2000
18.5:   116  123  113  107  111  101  105   82   46   28   15    4 2696
19.0:   155  163  150  141  145  133  137  110   63   37   20    5 3571
19.5:   205  212  198  186  189  175  178  148   89   52   26    7 4574

Compression of A2.0: A2.0 is distributed in a binary form, and standard compressors such as PKZip or GZip won't reduce the size by much. (They also make use of the data a pain; you have to decompress everything before you can access any data, and you can't "reach in" and decompress a chunk of data in the middle.) But it does not necessarily follow that A2.0 can't be compressed much. There is really a lot of redundancy in A2.0; that's the basic requirement for compressibility.

Technically, this sort of compression is quite possible. But legally and practically, there are problems. Ax.0 must be distributed in its "raw", uncompressed form. And while the following compression method would be "old hat" for most professional programmers, it would be understandably scary to your average Basic or Fortran programmer.

The following assumes we want to keep things relatively simple (as compression algorithms go), and that we want lossless compression (no bits are sacrificed in the creation of this data, and you could decompress it and re-create the original byte for byte). For this, we can achieve compression of 25% or 33% almost trivially. Somewhat more complex algorithms could get us to the 50% level with a little effort.

Each A2.0 (or A1.0) star is currently stored as three long integers (12 bytes). The first contains the RA. The second contains the dec (actually, dec + 90 degrees, "south polar distance", or "SPD".) The third contains magnitude data and the identity of the plate ("field", in A2.0-speak) used. To compress this 25% would mean storing each star in nine bytes instead of twelve; 33% would require eight bytes/star.

Both the RA and dec are stored in "units" of .01 arcsecond (360000 units/degree). Stars are stored in 24 files, each covering a declination band of 7.5 degrees.

In any given declination band, the dec will obviously only cover a range of 7.5 degrees, or 2.7 million units. That can be stored in 22 bits. Let's round that up to a full three bytes. We've lopped off one byte already.

The RA for a given zone does run through a full 360 degrees, also stored in the .01 arcsecond units. Let's divide each zone into 2160 pieces in RA. At the equator, each "piece" would measure 10' east-west, a.k.a. 60000 units.

Therefore, the RA can be stored in sixteen bits, a.k.a. two bytes. We're down to nine bytes a star. That's the 25% compression format.

There is a small cost for this: we need to know where each "piece" begins and ends. That requires an "index" of 2160 long integers per zone (much like the 96 long integers currently given in .ACC files). With 24 zones, we'll need to invest (24 zones) * (2160 pieces/zone) * (4 index bytes/piece) = 207360 bytes for our index. But that's a small price to pay, considering we just cut A2.0 down by 25%, or about 1.6 GByte.

We could re-define our "piece" so that, instead of covering 60000 "units" in RA, it covers only 256. Doing that means we can store an RA value in only one byte (saves 500 MBytes), but our index grows by about 250-fold (consumes 50 MBytes, about 2 MBytes/zone). Still, doing this boosts the compression from 25% up to 33% (eight bytes/star instead of nine).

Further compression does get a little harder to do. The declination values will vary almost randomly across those 7.5 degrees within a zone, and by definition, you can't compress random data. (You could get a little from the fact that stars will cluster a little here and there, and you could store the dec in 22 bits instead of 24 bits; this last eliminates two bits/star, or one byte for every four stars. With a half billion stars in A2.0, we'd be talking about saving 125 MBytes. But it would a fair amount of pain for only modest gain.)

I've been keeping the number of bytes/star constant for the sake of discussion. This is an unusual restriction; most compression methods store "common" values in fewer bits than they do "rare" values. Abandon that restriction, and all sorts of wonderful possibilities open up. The difference in RA between one star and its neighbor, for example, is highly correlated (because each zone is sorted in RA) and would compress nicely. The "field" (plate) identifier also could be compressed fairly well, and cross-indexing to GSC, PPM, Tycho-2, and other catalogs would be straightforward if you abandon the constant size requirement.

I've also kept all the data (lossless compression). The last two or three bits of the RA and of the dec are basically "noise", and could be dropped painlessly, saving 250 or 375 MBytes. If it's a dire emergency, I suppose we could do that... but the ability to reconstruct the original A2.0 from its compressed version could be valuable. In fact, Dave Monet might well insist on it from a legal perspective.

33% is not, by usual standards, impressive compression. But A2.0 consumes about 6.3 GBytes in its 'raw' form. 33% compression brings us down to 4.7 GBytes, 50% to 3.2 GBytes... either of which would fit nicely on a 5.2 GByte DVD, with some room for other catalogs.