The catalogs were downloaded, and C programs were written to put the data from each catalog into a common structure:
typedef struct StarData { double ra; // J 2000 Right ascension in radians. double dec; // J 2000 Declination in radians. int mv; // Visual magnitude. * 100. 3000 == no data. int mb; // blue magnitude. * 100. 3000 == no data. int mk; // K band magnitude. * 100. 3000 == no data. int pmRa; // Proper motion in RA in mas/yr. * 100. int pmDec; // Proper motion in dec in mas/yr. * 100. int pme; // Proper motion error in mas/yr. * 100. char cat; // Catalog the data is from. char id[23]; // Catalog ID. } sData;
This data was then sorted into a master file that contained all entries from
the catalogs in ascending order of right ascension.
The master file was then sorted into a separate file that eliminated all non
stellar objects, all stars with no proper motion, and finally all stars fainter
that 16.0mv. This final file was only a 16GB file that could be processed in
under an hour, whereas the 66GB master file would have taken 112 hours or
4 days, 16 hours. The smaller file has large enough counts for each pair of
catalogs to be statistically significant.
The file was parsed by a C program that located stars from different catalogs that were within an arc second of each other. These stars were considered to be the same star, and their proper motions were compared. The proper motions were converted into polar coordinates, consisting of the direction (A) they were moving in and the magnitude of this motion (L). This data was incorporated into an algorithm that calculated a running mean and standard deviation6.
Note: Stars whose proper motion error is zero were eliminated from this study.
1) The PPMXL catalog web site.
4) The Tycho catalog web site.
5) The Gaia Data Release 1 web site.
6) Knuth's preferred method for calculating a running standard deviation.