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 error, and finally all
stars fainter that 17.0mv.
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. This data was incorporated into an algorithm that calculated a running mean and standard deviation6.
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.