1 /* 2 # This file is part of the Astrometry.net suite. 3 # Licensed under a 3-clause BSD style license - see LICENSE 4 */ 5 6 #include <stdint.h> 7 8 #include "nomad.h" 9 #include "an-endian.h" 10 #include "starutil.h" 11 nomad_parse_entry(nomad_entry * entry,const void * encoded)12int nomad_parse_entry(nomad_entry* entry, const void* encoded) { 13 const uint32_t* udata = encoded; 14 uint32_t uval; 15 int32_t ival; 16 17 ival = uval = u32_letoh(udata[0]); 18 entry->ra = arcsec2deg(uval * 0.001); 19 20 ival = uval = u32_letoh(udata[1]); 21 entry->dec = arcsec2deg(uval * 0.001) - 90.0; 22 23 ival = uval = u32_letoh(udata[2]); 24 entry->sigma_racosdec = arcsec2deg(uval * 0.001); 25 26 ival = uval = u32_letoh(udata[3]); 27 entry->sigma_dec = arcsec2deg(uval * 0.001); 28 29 ival = uval = u32_letoh(udata[4]); 30 entry->pm_racosdec = ival * 0.0001; 31 32 ival = uval = u32_letoh(udata[5]); 33 entry->pm_dec = ival * 0.0001; 34 35 ival = uval = u32_letoh(udata[6]); 36 entry->sigma_pm_racosdec = uval * 0.0001; 37 38 ival = uval = u32_letoh(udata[7]); 39 entry->sigma_pm_dec = uval * 0.0001; 40 41 ival = uval = u32_letoh(udata[8]); 42 entry->epoch_ra = uval * 0.001; 43 44 ival = uval = u32_letoh(udata[9]); 45 entry->epoch_dec = uval * 0.001; 46 47 ival = uval = u32_letoh(udata[10]); 48 entry->mag_B = ival * 0.001; 49 50 ival = uval = u32_letoh(udata[11]); 51 entry->mag_V = ival * 0.001; 52 53 ival = uval = u32_letoh(udata[12]); 54 entry->mag_R = ival * 0.001; 55 56 ival = uval = u32_letoh(udata[13]); 57 entry->mag_J = ival * 0.001; 58 59 ival = uval = u32_letoh(udata[14]); 60 entry->mag_H = ival * 0.001; 61 62 ival = uval = u32_letoh(udata[15]); 63 entry->mag_K = ival * 0.001; 64 65 ival = uval = u32_letoh(udata[16]); 66 entry->usnob_id = uval; 67 68 ival = uval = u32_letoh(udata[17]); 69 entry->twomass_id = uval; 70 71 ival = uval = u32_letoh(udata[18]); 72 entry->yb6_id = uval; 73 74 ival = uval = u32_letoh(udata[19]); 75 entry->ucac2_id = uval; 76 77 ival = uval = u32_letoh(udata[20]); 78 entry->tycho2_id = uval; 79 80 ival = uval = u32_letoh(udata[21]); 81 entry->astrometry_src = (uval >> 0) & 0x7; 82 entry->blue_src = (uval >> 3) & 0x7; 83 entry->visual_src = (uval >> 6) & 0x7; 84 entry->red_src = (uval >> 9) & 0x7; 85 86 entry->usnob_fail = (uval >> 12) & 0x1; 87 entry->twomass_fail = (uval >> 13) & 0x1; 88 89 entry->tycho_astrometry = (uval >> 16) & 0x1; 90 entry->alt_radec = (uval >> 17) & 0x1; 91 //entry->alt_2mass = (uval >> 18) & 0x1; 92 entry->alt_ucac = (uval >> 19) & 0x1; 93 entry->alt_tycho = (uval >> 20) & 0x1; 94 entry->blue_o = (uval >> 21) & 0x1; 95 entry->red_e = (uval >> 22) & 0x1; 96 entry->twomass_only = (uval >> 23) & 0x1; 97 entry->hipp_astrometry = (uval >> 24) & 0x1; 98 entry->diffraction = (uval >> 25) & 0x1; 99 entry->confusion = (uval >> 26) & 0x1; 100 entry->bright_confusion = (uval >> 27) & 0x1; 101 entry->bright_artifact = (uval >> 28) & 0x1; 102 entry->standard = (uval >> 29) & 0x1; 103 //entry->external = (uval >> 30) & 0x1; 104 105 return 0; 106 } 107