IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 40902


Ignore:
Timestamp:
Oct 3, 2019, 3:49:32 PM (7 years ago)
Author:
eugene
Message:

add UHS variants

Location:
branches/eam_branches/ohana.20190329/src/addstar/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ohana.20190329/src/addstar/src/args_loadukirt_uhs.c

    r40888 r40902  
    2424    UKIRT_MODE = UKIRT_MODE_UGCS;
    2525    UKIRT_NFILTER = 6;
     26    remove_argument (N, argc, argv);
     27  }
     28  if ((N = get_argument (*argc, argv, "-ugps"))) {
     29    UKIRT_MODE = UKIRT_MODE_UGPS;
     30    UKIRT_NFILTER = 5;
    2631    remove_argument (N, argc, argv);
    2732  }
     
    147152static void help () {
    148153
    149   fprintf (stderr, "USAGE: loadukirt_uhs [options] (file) [..more files]\n");
    150   fprintf (stderr, "  add data from stellar parameter file to DVO\n\n");
     154  fprintf (stderr, "USAGE: loadukirt_uhs [options] (file) [-uhs | -ugcs | -ulas | -ugps] [..more files]\n");
     155  fprintf (stderr, "  add data from UKIRT CSV file to DVO\n");
     156  fprintf (stderr, "  mode is required : -uhs | -ugcs | -ulas | -ugps\n\n");
    151157
    152158  fprintf (stderr, "  optional flags:\n");
  • branches/eam_branches/ohana.20190329/src/addstar/src/loadukirt_uhs_readstars.c

    r40888 r40902  
    1212    case UKIRT_MODE_UGCS: {
    1313      UKIRT_Stars *stars = loadukirt_uhs_readstars_ugcs (f, buffer, nstart, options, nstars);
     14      return stars;
     15    }
     16     
     17    case UKIRT_MODE_UGPS: {
     18      UKIRT_Stars *stars = loadukirt_uhs_readstars_ugps (f, buffer, nstart, options, nstars);
    1419      return stars;
    1520    }
  • branches/eam_branches/ohana.20190329/src/addstar/src/loadukirt_uhs_readstars_ugcs.c

    r40887 r40902  
    223223UKIRT_Stars *loadukirt_uhs_readstars_ugcs (FILE *f, char *buffer, int *nstart, AddstarClientOptions *options, int *nstars) {
    224224
    225   int codeZ  = GetPhotcodeCodebyName ("UKIRT_Z");  if (!codeZ ) Shutdown ("missing photcode UKIRT_Z ");
    226   int codeY  = GetPhotcodeCodebyName ("UKIRT_Y");  if (!codeY ) Shutdown ("missing photcode UKIRT_Y ");
    227   int codeJ  = GetPhotcodeCodebyName ("UKIRT_J");  if (!codeJ ) Shutdown ("missing photcode UKIRT_J ");
    228   int codeH  = GetPhotcodeCodebyName ("UKIRT_H");  if (!codeH ) Shutdown ("missing photcode UKIRT_H ");
    229   int codeK1 = GetPhotcodeCodebyName ("UKIRT_K1"); if (!codeK1) Shutdown ("missing photcode UKIRT_K1");
    230   int codeK2 = GetPhotcodeCodebyName ("UKIRT_K2"); if (!codeK2) Shutdown ("missing photcode UKIRT_K2");
     225  int codeZ = GetPhotcodeCodebyName ("UKIRT_Z"); if (!codeZ) Shutdown ("missing photcode UKIRT_Z");
     226  int codeY = GetPhotcodeCodebyName ("UKIRT_Y"); if (!codeY) Shutdown ("missing photcode UKIRT_Y");
     227  int codeJ = GetPhotcodeCodebyName ("UKIRT_J"); if (!codeJ) Shutdown ("missing photcode UKIRT_J");
     228  int codeH = GetPhotcodeCodebyName ("UKIRT_H"); if (!codeH) Shutdown ("missing photcode UKIRT_H");
     229  int codeK = GetPhotcodeCodebyName ("UKIRT_K"); if (!codeK) Shutdown ("missing photcode UKIRT_K");
    231230
    232231  // XXX I need a UKIRT UHS Mean Epoch
     
    556555
    557556  ALLOCATE_PTR (stars, UKIRT_Stars, NSTARS);
    558   for (int i = 0; i < NSTARS; i++) {
    559     ALLOCATE (stars[i].measure, Measure, UKIRT_NFILTER);
    560   }
    561557
    562558  for (int i = 0; i < NstarsIn; i++) {
     
    566562    Dmin = MIN (Dmin, dec[i]);
    567563    Dmax = MAX (Dmax, dec[i]);
     564
     565    // only allocate the measures for stars as we define them
     566    ALLOCATE (stars[Nstars].measure, Measure, UKIRT_NFILTER);
    568567
    569568    // we have NFILTER (== 6) UKIRT measurements per object
     
    572571      dvo_measure_init (&stars[Nstars].measure[j]);
    573572    }
    574 
     573   
    575574    stars[Nstars].average.R = ra[i];
    576575    stars[Nstars].average.D = dec[i];
     
    691690    stars[Nstars].measure[4].photFlags2 = photFlags2;
    692691    stars[Nstars].measure[4].detID      = k1SeqNum[i];
    693     stars[Nstars].measure[4].photcode   = codeK1;
     692    stars[Nstars].measure[4].photcode   = codeK;
    694693
    695694    // K1 measure
     
    711710    stars[Nstars].measure[5].photFlags2 = photFlags2;
    712711    stars[Nstars].measure[5].detID      = k2SeqNum[i];
    713     stars[Nstars].measure[5].photcode   = codeK2;
     712    stars[Nstars].measure[5].photcode   = codeK;
    714713
    715714    stars[Nstars].average.Nmeasure = UKIRT_NFILTER;
     
    719718      NSTARS += 10000;
    720719      REALLOCATE (stars, UKIRT_Stars, NSTARS);
    721       for (int j = Nstars; j < NSTARS; j++) {
    722         ALLOCATE (stars[j].measure, Measure, UKIRT_NFILTER);
    723       }
    724720    }
    725721  }
     
    729725  FREE (ra);
    730726  FREE (dec);
     727  FREE (epoch);
    731728  FREE (priOrSec);
    732729  FREE (mergedClass);
  • branches/eam_branches/ohana.20190329/src/addstar/src/loadukirt_uhs_readstars_ugps.c

    r40889 r40902  
    4848 35 pSaturated                :
    4949
    50  zAperMag1                    : M
    51  zAperMag1Err         : dM
    52  zAperMag3                    : Map
    53  zAperMag3Err         : dMap
    54  zAperMag4                    : Mkron
    55  zAperMag4Err         : dMron
    56  zGausig                      :
    57  zEll                 :
    58  zPA                          : posangle
    59  zErrBits                     :
    60  zDeblend                     :
    61  zClass               : psfQF
    62  zClassStat                   :
    63  zppErrBits                   : photFlags
    64  zSeqNum                   : detID
    65  zObjID               :
    66  zXi                  :
    67  zEta                 :
    68 
    69  zAperMag1                    : M
    70  zAperMag1Err         : dM
    71  zAperMag3                    : Map
    72  zAperMag3Err         : dMap
    73  zAperMag4                    : Mkron
    74  zAperMag4Err         : dMron
    75  zGausig                      :
    76  zEll                 :
    77  zPA                          : posangle
    78  zErrBits                     :
    79  zDeblend                     :
    80  zClass               : psfQF
    81  zClassStat                   :
    82  zppErrBits                   : photFlags
    83  zSeqNum                   : detID
    84  zObjID               :
    85  zXi                  :
    86  zEta                 :
    87 
    88  zAperMag1                    : M
    89  zAperMag1Err         : dM
    90  zAperMag3                    : Map
    91  zAperMag3Err         : dMap
    92  zAperMag4                    : Mkron
    93  zAperMag4Err         : dMron
    94  zGausig                      :
    95  zEll                 :
    96  zPA                          : posangle
    97  zErrBits                     :
    98  zDeblend                     :
    99  zClass               : psfQF
    100  zClassStat                   :
    101  zppErrBits                   : photFlags
    102  zSeqNum                   : detID
    103  zObjID               :
    104  zXi                  :
    105  zEta                 :
    106 
    107  zAperMag1                    : M
    108  zAperMag1Err         : dM
    109  zAperMag3                    : Map
    110  zAperMag3Err         : dMap
    111  zAperMag4                    : Mkron
    112  zAperMag4Err         : dMron
    113  zGausig                      :
    114  zEll                 :
    115  zPA                          : posangle
    116  zErrBits                     :
    117  zDeblend                     :
    118  zClass               : psfQF
    119  zClassStat                   :
    120  zppErrBits                   : photFlags
    121  zSeqNum                   : detID
    122  zObjID               :
    123  zXi                  :
    124  zEta                 :
    125 
    126  zAperMag1                    : M
    127  zAperMag1Err         : dM
    128  zAperMag3                    : Map
    129  zAperMag3Err         : dMap
    130  zAperMag4                    : Mkron
    131  zAperMag4Err         : dMron
    132  zGausig                      :
    133  zEll                 :
    134  zPA                          : posangle
    135  zErrBits                     :
    136  zDeblend                     :
    137  zClass               : psfQF
    138  zClassStat                   :
    139  zppErrBits                   : photFlags
    140  zSeqNum                   : detID
    141  zObjID               :
    142  zXi                  :
    143  zEta                 :
     50 36 jAperMag1                 : M
     51 37 jAperMag1Err              : dM
     52 38 jAperMag3                 : Map
     53 39 jAperMag3Err              : dMap
     54 40 jAperMag4                 : Mkron
     55 41 jAperMag4Err              : dMron
     56 42 jGausig                   :
     57 43 jEll                      :
     58 44 jPA                       : posangle
     59 45 jErrBits                  :
     60 46 jDeblend                  :
     61 47 jClass                    : psfQF
     62 48 jClassStat                :
     63 49 jppErrBits                : photFlags
     64 50 jSeqNum                   : detID
     65 51 jObjID                    :
     66 52 jXi                       :
     67 53 jEta                      :
     68 54 hAperMag1                 : M
     69 55 hAperMag1Err              : dM
     70 56 hAperMag3                 : Map
     71 57 hAperMag3Err              : dMap
     72 58 hAperMag4                 : Mkron
     73 59 hAperMag4Err              : dMron
     74 60 hGausig                   :
     75 61 hEll                      :
     76 62 hPA                       : posangle
     77 63 hErrBits                  :
     78 64 hDeblend                  :
     79 65 hClass                    : psfQF
     80 66 hClassStat                :
     81 67 hppErrBits                : photFlags
     82 68 hSeqNum                   : detID
     83 69 hObjID                    :
     84 70 hXi                       :
     85 71 hEta                      :
     86 72 k_1AperMag1               : M
     87 73 k_1AperMag1Err            : dM
     88 74 k_1AperMag3               : Map
     89 75 k_1AperMag3Err            : dMap
     90 76 k_1AperMag4               : Mkron
     91 77 k_1AperMag4Err            : dMron
     92 78 k_1Gausig                 :
     93 79 k_1Ell                    :
     94 80 k_1PA                     : posangle
     95 81 k_1ErrBits                :
     96 82 k_1Deblend                :
     97 83 k_1Class                  : psfQF
     98 84 k_1ClassStat              :
     99 85 k_1ppErrBits              : photFlags
     100 86 k_1SeqNum                 : detID
     101 87 k_1ObjID                  :
     102 88 k_1Xi                     :
     103 89 k_1Eta                    :
     104 90 k_2AperMag1               : M
     105 91 k_2AperMag1Err            : dM
     106 92 k_2AperMag3               : Map
     107 93 k_2AperMag3Err            : dMap
     108 94 k_2AperMag4               : Mkron
     109 95 k_2AperMag4Err            : dMron
     110 96 k_2Gausig                 :
     111 97 k_2Ell                    :
     112 98 k_2PA                     : posangle
     113 99 k_2ErrBits                :
     114100 k_2Deblend                :
     115101 k_2Class                  : psfQF
     116102 k_2ClassStat              :
     117103 k_2ppErrBits              : photFlags
     118104 k_2SeqNum                 : detID
     119105 k_2ObjID                  :
     120106 k_2Xi                     :
     121107 k_2Eta                    :
     122108 h_2AperMag1               : M
     123109 h_2AperMag1Err            : dM
     124110 h_2AperMag3               : Map
     125111 h_2AperMag3Err            : dMap
     126112 h_2AperMag4               : Mkron
     127113 h_2AperMag4Err            : dMron
     128114 h_2Gausig                 :
     129115 h_2Ell                    :
     130116 h_2PA                     : posangle
     131117 h_2ErrBits                :
     132118 h_2Deblend                :
     133119 h_2Class                  : psfQF
     134120 h_2ClassStat              :
     135121 h_2ppErrBits              : photFlags
     136122 h_2SeqNum                 : detID
     137123 h_2ObjID                  :
     138124 h_2Xi                     :
     139125 h_2Eta                    :
    144140
    145141*/
     
    169165static int Nskip = 0; // UKIRT UHS CSV files have a single header row (and no special character to mark)
    170166
    171 UKIRT_Stars *loadukirt_uhs_readstars_ugcs (FILE *f, char *buffer, int *nstart, AddstarClientOptions *options, int *nstars) {
    172 
    173   int codeZ  = GetPhotcodeCodebyName ("UKIRT_Z");  if (!codeZ ) Shutdown ("missing photcode UKIRT_Z ");
    174   int codeY  = GetPhotcodeCodebyName ("UKIRT_Y");  if (!codeY ) Shutdown ("missing photcode UKIRT_Y ");
    175   int codeJ  = GetPhotcodeCodebyName ("UKIRT_J");  if (!codeJ ) Shutdown ("missing photcode UKIRT_J ");
    176   int codeH  = GetPhotcodeCodebyName ("UKIRT_H");  if (!codeH ) Shutdown ("missing photcode UKIRT_H ");
    177   int codeK1 = GetPhotcodeCodebyName ("UKIRT_K1"); if (!codeK1) Shutdown ("missing photcode UKIRT_K1");
    178   int codeK2 = GetPhotcodeCodebyName ("UKIRT_K2"); if (!codeK2) Shutdown ("missing photcode UKIRT_K2");
     167UKIRT_Stars *loadukirt_uhs_readstars_ugps (FILE *f, char *buffer, int *nstart, AddstarClientOptions *options, int *nstars) {
     168
     169  int codeJ = GetPhotcodeCodebyName ("UKIRT_J"); if (!codeJ) Shutdown ("missing photcode UKIRT_J");
     170  int codeH = GetPhotcodeCodebyName ("UKIRT_H"); if (!codeH) Shutdown ("missing photcode UKIRT_H");
     171  int codeK = GetPhotcodeCodebyName ("UKIRT_K"); if (!codeK) Shutdown ("missing photcode UKIRT_K");
    179172
    180173  // XXX I need a UKIRT UHS Mean Epoch
     
    196189  ALLOCATE_PTR (pGalaxy,      double,   NELEM);
    197190
    198   ALLOCATE_PTR (zHallMag,     double,   NELEM);
    199   ALLOCATE_PTR (zHallMagErr,  double,   NELEM);
    200   ALLOCATE_PTR (zAperMag3,    double,   NELEM);
    201   ALLOCATE_PTR (zAperMag3Err, double,   NELEM);
    202   ALLOCATE_PTR (zAperMag4,    double,   NELEM);
    203   ALLOCATE_PTR (zAperMag4Err, double,   NELEM);
    204   ALLOCATE_PTR (zPA,          double,   NELEM);
    205   ALLOCATE_PTR (zClass,       int,      NELEM);
    206   ALLOCATE_PTR (zppErrBits,   int,      NELEM);
    207   ALLOCATE_PTR (zSeqNum,      int,      NELEM);
    208 
    209   ALLOCATE_PTR (yHallMag,     double,   NELEM);
    210   ALLOCATE_PTR (yHallMagErr,  double,   NELEM);
    211   ALLOCATE_PTR (yAperMag3,    double,   NELEM);
    212   ALLOCATE_PTR (yAperMag3Err, double,   NELEM);
    213   ALLOCATE_PTR (yAperMag4,    double,   NELEM);
    214   ALLOCATE_PTR (yAperMag4Err, double,   NELEM);
    215   ALLOCATE_PTR (yPA,          double,   NELEM);
    216   ALLOCATE_PTR (yClass,       int,      NELEM);
    217   ALLOCATE_PTR (yppErrBits,   int,      NELEM);
    218   ALLOCATE_PTR (ySeqNum,      int,      NELEM);
    219 
    220   ALLOCATE_PTR (jHallMag,     double,   NELEM);
    221   ALLOCATE_PTR (jHallMagErr,  double,   NELEM);
     191  ALLOCATE_PTR (jAperMag1,    double,   NELEM);
     192  ALLOCATE_PTR (jAperMag1Err, double,   NELEM);
    222193  ALLOCATE_PTR (jAperMag3,    double,   NELEM);
    223194  ALLOCATE_PTR (jAperMag3Err, double,   NELEM);
     
    229200  ALLOCATE_PTR (jSeqNum,      int,      NELEM);
    230201
    231   ALLOCATE_PTR (hHallMag,     double,   NELEM);
    232   ALLOCATE_PTR (hHallMagErr, double,   NELEM);
     202  ALLOCATE_PTR (hAperMag1,    double,   NELEM);
     203  ALLOCATE_PTR (hAperMag1Err, double,   NELEM);
    233204  ALLOCATE_PTR (hAperMag3,    double,   NELEM);
    234205  ALLOCATE_PTR (hAperMag3Err, double,   NELEM);
     
    240211  ALLOCATE_PTR (hSeqNum,      int,      NELEM);
    241212
    242   ALLOCATE_PTR (k1HallMag,     double,   NELEM);
    243   ALLOCATE_PTR (k1HallMagErr, double,   NELEM);
     213  ALLOCATE_PTR (k1AperMag1,    double,   NELEM);
     214  ALLOCATE_PTR (k1AperMag1Err, double,   NELEM);
    244215  ALLOCATE_PTR (k1AperMag3,    double,   NELEM);
    245216  ALLOCATE_PTR (k1AperMag3Err, double,   NELEM);
     
    251222  ALLOCATE_PTR (k1SeqNum,      int,      NELEM);
    252223
    253   ALLOCATE_PTR (k2HallMag,     double,   NELEM);
    254   ALLOCATE_PTR (k2HallMagErr, double,   NELEM);
     224  ALLOCATE_PTR (k2AperMag1,    double,   NELEM);
     225  ALLOCATE_PTR (k2AperMag1Err, double,   NELEM);
    255226  ALLOCATE_PTR (k2AperMag3,    double,   NELEM);
    256227  ALLOCATE_PTR (k2AperMag3Err, double,   NELEM);
     
    261232  ALLOCATE_PTR (k2ppErrBits,   int,      NELEM);
    262233  ALLOCATE_PTR (k2SeqNum,      int,      NELEM);
     234
     235  ALLOCATE_PTR (h2AperMag1,    double,   NELEM);
     236  ALLOCATE_PTR (h2AperMag1Err, double,   NELEM);
     237  ALLOCATE_PTR (h2AperMag3,    double,   NELEM);
     238  ALLOCATE_PTR (h2AperMag3Err, double,   NELEM);
     239  ALLOCATE_PTR (h2AperMag4,    double,   NELEM);
     240  ALLOCATE_PTR (h2AperMag4Err, double,   NELEM);
     241  ALLOCATE_PTR (h2PA,          double,   NELEM);
     242  ALLOCATE_PTR (h2Class,       int,      NELEM);
     243  ALLOCATE_PTR (h2ppErrBits,   int,      NELEM);
     244  ALLOCATE_PTR (h2SeqNum,      int,      NELEM);
    263245
    264246  // we have a working buffer read from the file. we parse the lines in the working buffer
     
    334316
    335317      // the start of the line is the 1st element (fields are 1-counting)
    336       jPARSE (  1,   1, sourceID,      "sourceID");
    337       iPARSE (  3,   1, frameSetID,    "frameSetID");
    338       dPARSE (  4,   3, ra,            "ra");
    339       dPARSE (  5,   4, dec,           "dec");
    340       dPARSE (  8,   5, epoch,         "epoch");
    341       jPARSE ( 23,   8, priOrSec,      "priOrSec"); // watch for epoch
    342       iPARSE ( 41,  23, mergedClass,   "mergedClass");
    343       dPARSE ( 42,  41, pStar,         "pStar");
    344       dPARSE ( 43,  42, pGalaxy,       "pGalaxy");
    345       dPARSE ( 46,  43, zHallMag,      "zHallMag");
    346       dPARSE ( 47,  46, zHallMagErr,   "zHallMagErr");
    347       dPARSE ( 50,  47, zAperMag3,     "zAperMag3");
    348       dPARSE ( 51,  50, zAperMag3Err,  "zAperMag3Err");
    349       dPARSE ( 52,  51, zAperMag4,     "zAperMag4");
    350       dPARSE ( 53,  52, zAperMag4Err,  "zAperMag4Err");
    351       dPARSE ( 58,  53, zPA,           "zPA");
    352       iPARSE ( 61,  58, zClass,        "zClass");
    353       iPARSE ( 63,  61, zppErrBits,    "zppErrBits");
    354       iPARSE ( 64,  63, zSeqNum,       "zSeqNum");
    355       dPARSE ( 68,  64, yHallMag,      "yHallMag");
    356       dPARSE ( 69,  68, yHallMagErr,   "yHallMagErr");
    357       dPARSE ( 72,  69, yAperMag3,     "yAperMag3");
    358       dPARSE ( 73,  72, yAperMag3Err,  "yAperMag3Err");
    359       dPARSE ( 74,  73, yAperMag4,     "yAperMag4");
    360       dPARSE ( 75,  74, yAperMag4Err,  "yAperMag4Err");
    361       dPARSE ( 80,  75, yPA,           "yPA");
    362       iPARSE ( 83,  80, yClass,        "yClass");
    363       iPARSE ( 85,  83, yppErrBits,    "yppErrBits");
    364       iPARSE ( 86,  85, ySeqNum,       "ySeqNum");
    365       dPARSE ( 90,  86, jHallMag,      "jHallMag");
    366       dPARSE ( 91,  90, jHallMagErr,   "jHallMagErr");
    367       dPARSE ( 94,  91, jAperMag3,     "jAperMag3");
    368       dPARSE ( 95,  94, jAperMag3Err,  "jAperMag3Err");
    369       dPARSE ( 96,  95, jAperMag4,     "jAperMag4");
    370       dPARSE ( 97,  96, jAperMag4Err,  "jAperMag4Err");
    371       dPARSE (102,  97, jPA,           "jPA");
    372       iPARSE (105, 102, jClass,        "jClass");
    373       iPARSE (107, 105, jppErrBits,    "jppErrBits");
    374       iPARSE (108, 107, jSeqNum,       "jSeqNum");
    375       dPARSE (112, 108, hHallMag,      "hHallMag");
    376       dPARSE (113, 112, hHallMagErr,   "hHallMagErr");
    377       dPARSE (116, 113, hAperMag3,     "hAperMag3");
    378       dPARSE (117, 116, hAperMag3Err,  "hAperMag3Err");
    379       dPARSE (118, 117, hAperMag4,     "hAperMag4");
    380       dPARSE (119, 118, hAperMag4Err,  "hAperMag4Err");
    381       dPARSE (124, 119, hPA,           "hPA");
    382       iPARSE (127, 124, hClass,        "hClass");
    383       iPARSE (129, 127, hppErrBits,    "hppErrBits");
    384       iPARSE (130, 129, hSeqNum,       "hSeqNum");
    385       dPARSE (134, 130, k1HallMag,     "k1HallMag");
    386       dPARSE (135, 134, k1HallMagErr,  "k1HallMagErr");
    387       dPARSE (138, 135, k1AperMag3,    "k1AperMag3");
    388       dPARSE (139, 138, k1AperMag3Err, "k1AperMag3Err");
    389       dPARSE (140, 139, k1AperMag4,    "k1AperMag4");
    390       dPARSE (141, 140, k1AperMag4Err, "k1AperMag4Err");
    391       dPARSE (146, 141, k1PA,          "k1PA");
    392       iPARSE (149, 146, k1Class,       "k1Class");
    393       iPARSE (151, 149, k1ppErrBits,   "k1ppErrBits");
    394       iPARSE (152, 151, k1SeqNum,      "k1SeqNum");
    395       dPARSE (156, 152, k2HallMag,     "k2HallMag");
    396       dPARSE (157, 156, k2HallMagErr,  "k2HallMagErr");
    397       dPARSE (160, 157, k2AperMag3,    "k2AperMag3");
    398       dPARSE (161, 160, k2AperMag3Err, "k2AperMag3Err");
    399       dPARSE (162, 161, k2AperMag4,    "k2AperMag4");
    400       dPARSE (163, 162, k2AperMag4Err, "k2AperMag4Err");
    401       dPARSE (168, 163, k2PA,          "k2PA");
    402       iPARSE (171, 168, k2Class,       "k2Class");
    403       iPARSE (173, 171, k2ppErrBits,   "k2ppErrBits");
    404       iPARSE (174, 173, k2SeqNum,      "k2SeqNum");
     318      jPARSE (  1,   1, sourceID,       "sourceID");
     319      iPARSE (  3,   1, frameSetID,     "frameSetID");
     320      dPARSE (  4,   3, ra,             "ra");
     321      dPARSE (  5,   4, dec,            "dec");
     322      dPARSE (  8,   5, epoch,          "epoch");
     323      jPARSE ( 23,   8, priOrSec,       "priOrSec"); // watch for epoch
     324      iPARSE ( 31,  23, mergedClass,    "mergedClass");
     325      dPARSE ( 32,  31, pStar,          "pStar");
     326      dPARSE ( 33,  32, pGalaxy,        "pGalaxy");
     327      dPARSE ( 36,  33, jAperMag1,      "jAperMag1");
     328      dPARSE ( 37,  36, jAperMag1Err,   "jAperMag1Err");
     329      dPARSE ( 38,  37, jAperMag3,      "jAperMag3");
     330      dPARSE ( 39,  38, jAperMag3Err,   "jAperMag3Err");
     331      dPARSE ( 40,  39, jAperMag4,      "jAperMag4");
     332      dPARSE ( 41,  40, jAperMag4Err,   "jAperMag4Err");
     333      dPARSE ( 44,  41, jPA,            "jPA");
     334      iPARSE ( 47,  44, jClass,         "jClass");
     335      iPARSE ( 49,  47, jppErrBits,     "jppErrBits");
     336      iPARSE ( 50,  49, jSeqNum,        "jSeqNum");
     337      dPARSE ( 54,  50, hAperMag1,      "hAperMag1");
     338      dPARSE ( 55,  54, hAperMag1Err,   "hAperMag1Err");
     339      dPARSE ( 56,  55, hAperMag3,      "hAperMag3");
     340      dPARSE ( 57,  56, hAperMag3Err,   "hAperMag3Err");
     341      dPARSE ( 58,  57, hAperMag4,      "hAperMag4");
     342      dPARSE ( 59,  58, hAperMag4Err,   "hAperMag4Err");
     343      dPARSE ( 62,  59, hPA,            "hPA");
     344      iPARSE ( 65,  62, hClass,         "hClass");
     345      iPARSE ( 67,  65, hppErrBits,     "hppErrBits");
     346      iPARSE ( 68,  67, hSeqNum,        "hSeqNum");
     347      dPARSE ( 72,  68, k1AperMag1,     "k1AperMag1");
     348      dPARSE ( 73,  72, k1AperMag1Err,  "k1AperMag1Err");
     349      dPARSE ( 74,  73, k1AperMag3,     "k1AperMag3");
     350      dPARSE ( 75,  74, k1AperMag3Err,  "k1AperMag3Err");
     351      dPARSE ( 76,  75, k1AperMag4,     "k1AperMag4");
     352      dPARSE ( 77,  76, k1AperMag4Err,  "k1AperMag4Err");
     353      dPARSE ( 80,  77, k1PA,           "k1PA");
     354      iPARSE ( 83,  80, k1Class,        "k1Class");
     355      iPARSE ( 85,  83, k1ppErrBits,    "k1ppErrBits");
     356      iPARSE ( 86,  85, k1SeqNum,       "k1SeqNum");
     357      dPARSE ( 90,  86, k2AperMag1,     "k2AperMag1");
     358      dPARSE ( 91,  90, k2AperMag1Err,  "k2AperMag1Err");
     359      dPARSE ( 92,  91, k2AperMag3,     "k2AperMag3");
     360      dPARSE ( 93,  92, k2AperMag3Err,  "k2AperMag3Err");
     361      dPARSE ( 94,  93, k2AperMag4,     "k2AperMag4");
     362      dPARSE ( 95,  94, k2AperMag4Err,  "k2AperMag4Err");
     363      dPARSE ( 98,  95, k2PA,           "k2PA");
     364      iPARSE (101,  98, k2Class,        "k2Class");
     365      iPARSE (103, 101, k2ppErrBits,    "k2ppErrBits");
     366      iPARSE (104, 103, k2SeqNum,       "k2SeqNum");
     367      dPARSE (108, 104, h2AperMag1,     "hAperMag1");
     368      dPARSE (109, 108, h2AperMag1Err,  "hAperMag1Err");
     369      dPARSE (110, 109, h2AperMag3,     "hAperMag3");
     370      dPARSE (111, 110, h2AperMag3Err,  "hAperMag3Err");
     371      dPARSE (112, 111, h2AperMag4,     "hAperMag4");
     372      dPARSE (113, 112, h2AperMag4Err,  "hAperMag4Err");
     373      dPARSE (116, 113, h2PA,           "hPA");
     374      iPARSE (119, 116, h2Class,        "hClass");
     375      iPARSE (121, 119, h2ppErrBits,    "hppErrBits");
     376      iPARSE (122, 121, h2SeqNum,       "hSeqNum");
    405377
    406378      if (!lineStatus && VERBOSE) {
     
    424396        REALLOCATE (pStar,        double,   NELEM);
    425397        REALLOCATE (pGalaxy,      double,   NELEM);
    426         REALLOCATE (zHallMag,     double,   NELEM);
    427         REALLOCATE (zHallMagErr,  double,   NELEM);
    428         REALLOCATE (zAperMag3,    double,   NELEM);
    429         REALLOCATE (zAperMag3Err, double,   NELEM);
    430         REALLOCATE (zAperMag4,    double,   NELEM);
    431         REALLOCATE (zAperMag4Err, double,   NELEM);
    432         REALLOCATE (zPA,          double,   NELEM);
    433         REALLOCATE (zClass,       int,      NELEM);
    434         REALLOCATE (zppErrBits,   int,      NELEM);
    435         REALLOCATE (zSeqNum,      int,      NELEM);
    436         REALLOCATE (yHallMag,     double,   NELEM);
    437         REALLOCATE (yHallMagErr,  double,   NELEM);
    438         REALLOCATE (yAperMag3,    double,   NELEM);
    439         REALLOCATE (yAperMag3Err, double,   NELEM);
    440         REALLOCATE (yAperMag4,    double,   NELEM);
    441         REALLOCATE (yAperMag4Err, double,   NELEM);
    442         REALLOCATE (yPA,          double,   NELEM);
    443         REALLOCATE (yClass,       int,      NELEM);
    444         REALLOCATE (yppErrBits,   int,      NELEM);
    445         REALLOCATE (ySeqNum,      int,      NELEM);
    446         REALLOCATE (jHallMag,     double,   NELEM);
    447         REALLOCATE (jHallMagErr,  double,   NELEM);
     398        REALLOCATE (jAperMag1,     double,   NELEM);
     399        REALLOCATE (jAperMag1Err,  double,   NELEM);
    448400        REALLOCATE (jAperMag3,    double,   NELEM);
    449401        REALLOCATE (jAperMag3Err, double,   NELEM);
     
    454406        REALLOCATE (jppErrBits,   int,      NELEM);
    455407        REALLOCATE (jSeqNum,      int,      NELEM);
    456         REALLOCATE (hHallMag,     double,   NELEM);
    457         REALLOCATE (hHallMagErr,  double,   NELEM);
     408        REALLOCATE (hAperMag1,     double,   NELEM);
     409        REALLOCATE (hAperMag1Err,  double,   NELEM);
    458410        REALLOCATE (hAperMag3,    double,   NELEM);
    459411        REALLOCATE (hAperMag3Err, double,   NELEM);
     
    464416        REALLOCATE (hppErrBits,   int,      NELEM);
    465417        REALLOCATE (hSeqNum,      int,      NELEM);
    466         REALLOCATE (k1HallMag,     double,   NELEM);
    467         REALLOCATE (k1HallMagErr,  double,   NELEM);
     418        REALLOCATE (k1AperMag1,     double,   NELEM);
     419        REALLOCATE (k1AperMag1Err,  double,   NELEM);
    468420        REALLOCATE (k1AperMag3,    double,   NELEM);
    469421        REALLOCATE (k1AperMag3Err, double,   NELEM);
     
    474426        REALLOCATE (k1ppErrBits,   int,      NELEM);
    475427        REALLOCATE (k1SeqNum,      int,      NELEM);
    476         REALLOCATE (k2HallMag,     double,   NELEM);
    477         REALLOCATE (k2HallMagErr,  double,   NELEM);
     428        REALLOCATE (k2AperMag1,     double,   NELEM);
     429        REALLOCATE (k2AperMag1Err,  double,   NELEM);
    478430        REALLOCATE (k2AperMag3,    double,   NELEM);
    479431        REALLOCATE (k2AperMag3Err, double,   NELEM);
     
    484436        REALLOCATE (k2ppErrBits,   int,      NELEM);
    485437        REALLOCATE (k2SeqNum,      int,      NELEM);
     438        REALLOCATE (h2AperMag1,     double,   NELEM);
     439        REALLOCATE (h2AperMag1Err,  double,   NELEM);
     440        REALLOCATE (h2AperMag3,    double,   NELEM);
     441        REALLOCATE (h2AperMag3Err, double,   NELEM);
     442        REALLOCATE (h2AperMag4,    double,   NELEM);
     443        REALLOCATE (h2AperMag4Err, double,   NELEM);
     444        REALLOCATE (h2PA,          double,   NELEM);
     445        REALLOCATE (h2Class,       int,      NELEM);
     446        REALLOCATE (h2ppErrBits,   int,      NELEM);
     447        REALLOCATE (h2SeqNum,      int,      NELEM);
    486448      }
    487449      if (!EndOfFile) {
     
    504466
    505467  ALLOCATE_PTR (stars, UKIRT_Stars, NSTARS);
    506   for (int i = 0; i < NSTARS; i++) {
    507     ALLOCATE (stars[i].measure, Measure, UKIRT_NFILTER);
    508   }
    509468
    510469  for (int i = 0; i < NstarsIn; i++) {
     
    514473    Dmin = MIN (Dmin, dec[i]);
    515474    Dmax = MAX (Dmax, dec[i]);
     475
     476    // only allocate the measures for stars as we define them
     477    ALLOCATE (stars[Nstars].measure, Measure, UKIRT_NFILTER);
    516478
    517479    // we have NFILTER (== 6) UKIRT measurements per object
     
    541503    }
    542504
    543     // y measure
     505    // J measure
    544506    stars[Nstars].measure[0].extID      = sourceID[i];
    545507    stars[Nstars].measure[0].imageID    = frameSetID[i]; // XXX check for frameSetID > 31-bit int
     
    548510    stars[Nstars].measure[0].psfChisq   = pStar[i];
    549511    stars[Nstars].measure[0].extNsigma  = pGalaxy[i];
    550     stars[Nstars].measure[0].M          = yHallMag[i];
    551     stars[Nstars].measure[0].dM         = yHallMagErr[i];
    552     stars[Nstars].measure[0].Map        = yAperMag3[i];
    553     stars[Nstars].measure[0].dMap       = yAperMag3Err[i];
    554     stars[Nstars].measure[0].Mkron      = yAperMag4[i];
    555     stars[Nstars].measure[0].dMkron     = yAperMag4Err[i];
    556     stars[Nstars].measure[0].posangle   = yPA[i]; // XXX units
    557     stars[Nstars].measure[0].psfQF      = yClass[i];
    558     stars[Nstars].measure[0].photFlags  = yppErrBits[i];
     512    stars[Nstars].measure[0].M          = jAperMag1[i];
     513    stars[Nstars].measure[0].dM         = jAperMag1Err[i];
     514    stars[Nstars].measure[0].Map        = jAperMag3[i];
     515    stars[Nstars].measure[0].dMap       = jAperMag3Err[i];
     516    stars[Nstars].measure[0].Mkron      = jAperMag4[i];
     517    stars[Nstars].measure[0].dMkron     = jAperMag4Err[i];
     518    stars[Nstars].measure[0].posangle   = jPA[i]; // XXX units
     519    stars[Nstars].measure[0].psfQF      = jClass[i];
     520    stars[Nstars].measure[0].photFlags  = jppErrBits[i];
    559521    stars[Nstars].measure[0].photFlags2 = photFlags2;
    560     stars[Nstars].measure[0].detID      = ySeqNum[i];
    561     stars[Nstars].measure[0].photcode   = codeY;
    562 
    563     // z measure
     522    stars[Nstars].measure[0].detID      = jSeqNum[i];
     523    stars[Nstars].measure[0].photcode   = codeJ;
     524
     525    // H measure
    564526    stars[Nstars].measure[1].extID      = sourceID[i];
    565527    stars[Nstars].measure[1].imageID    = frameSetID[i]; // XXX check for frameSetID > 31-bit int
     
    568530    stars[Nstars].measure[1].psfChisq   = pStar[i];
    569531    stars[Nstars].measure[1].extNsigma  = pGalaxy[i];
    570     stars[Nstars].measure[1].M          = zHallMag[i];
    571     stars[Nstars].measure[1].dM         = zHallMagErr[i];
    572     stars[Nstars].measure[1].Map        = zAperMag3[i];
    573     stars[Nstars].measure[1].dMap       = zAperMag3Err[i];
    574     stars[Nstars].measure[1].Mkron      = zAperMag4[i];
    575     stars[Nstars].measure[1].dMkron     = zAperMag4Err[i];
    576     stars[Nstars].measure[1].posangle   = zPA[i]; // XXX units
    577     stars[Nstars].measure[1].psfQF      = zClass[i];
    578     stars[Nstars].measure[1].photFlags  = zppErrBits[i];
     532    stars[Nstars].measure[1].M          = hAperMag1[i];
     533    stars[Nstars].measure[1].dM         = hAperMag1Err[i];
     534    stars[Nstars].measure[1].Map        = hAperMag3[i];
     535    stars[Nstars].measure[1].dMap       = hAperMag3Err[i];
     536    stars[Nstars].measure[1].Mkron      = hAperMag4[i];
     537    stars[Nstars].measure[1].dMkron     = hAperMag4Err[i];
     538    stars[Nstars].measure[1].posangle   = hPA[i]; // XXX units
     539    stars[Nstars].measure[1].psfQF      = hClass[i];
     540    stars[Nstars].measure[1].photFlags  = hppErrBits[i];
    579541    stars[Nstars].measure[1].photFlags2 = photFlags2;
    580     stars[Nstars].measure[1].detID      = zSeqNum[i];
    581     stars[Nstars].measure[1].photcode   = codeZ;
    582 
    583     // J measure
     542    stars[Nstars].measure[1].detID      = hSeqNum[i];
     543    stars[Nstars].measure[1].photcode   = codeH;
     544
     545    // K1 measure
    584546    stars[Nstars].measure[2].extID      = sourceID[i];
    585547    stars[Nstars].measure[2].imageID    = frameSetID[i]; // XXX check for frameSetID > 31-bit int
     
    588550    stars[Nstars].measure[2].psfChisq   = pStar[i];
    589551    stars[Nstars].measure[2].extNsigma  = pGalaxy[i];
    590     stars[Nstars].measure[2].M          = jHallMag[i];
    591     stars[Nstars].measure[2].dM         = jHallMagErr[i];
    592     stars[Nstars].measure[2].Map        = jAperMag3[i];
    593     stars[Nstars].measure[2].dMap       = jAperMag3Err[i];
    594     stars[Nstars].measure[2].Mkron      = jAperMag4[i];
    595     stars[Nstars].measure[2].dMkron     = jAperMag4Err[i];
    596     stars[Nstars].measure[2].posangle   = jPA[i]; // XXX units
    597     stars[Nstars].measure[2].psfQF      = jClass[i];
    598     stars[Nstars].measure[2].photFlags  = jppErrBits[i];
     552    stars[Nstars].measure[2].M          = k1AperMag1[i];
     553    stars[Nstars].measure[2].dM         = k1AperMag1Err[i];
     554    stars[Nstars].measure[2].Map        = k1AperMag3[i];
     555    stars[Nstars].measure[2].dMap       = k1AperMag3Err[i];
     556    stars[Nstars].measure[2].Mkron      = k1AperMag4[i];
     557    stars[Nstars].measure[2].dMkron     = k1AperMag4Err[i];
     558    stars[Nstars].measure[2].posangle   = k1PA[i]; // XXX units
     559    stars[Nstars].measure[2].psfQF      = k1Class[i];
     560    stars[Nstars].measure[2].photFlags  = k1ppErrBits[i];
    599561    stars[Nstars].measure[2].photFlags2 = photFlags2;
    600     stars[Nstars].measure[2].detID      = jSeqNum[i];
    601     stars[Nstars].measure[2].photcode   = codeJ;
    602 
    603     // H measure
     562    stars[Nstars].measure[2].detID      = k1SeqNum[i];
     563    stars[Nstars].measure[2].photcode   = codeK;
     564
     565    // K1 measure
    604566    stars[Nstars].measure[3].extID      = sourceID[i];
    605567    stars[Nstars].measure[3].imageID    = frameSetID[i]; // XXX check for frameSetID > 31-bit int
     
    608570    stars[Nstars].measure[3].psfChisq   = pStar[i];
    609571    stars[Nstars].measure[3].extNsigma  = pGalaxy[i];
    610     stars[Nstars].measure[3].M          = hHallMag[i];
    611     stars[Nstars].measure[3].dM         = hHallMagErr[i];
    612     stars[Nstars].measure[3].Map        = hAperMag3[i];
    613     stars[Nstars].measure[3].dMap       = hAperMag3Err[i];
    614     stars[Nstars].measure[3].Mkron      = hAperMag4[i];
    615     stars[Nstars].measure[3].dMkron     = hAperMag4Err[i];
    616     stars[Nstars].measure[3].posangle   = hPA[i]; // XXX units
    617     stars[Nstars].measure[3].psfQF      = hClass[i];
    618     stars[Nstars].measure[3].photFlags  = hppErrBits[i];
     572    stars[Nstars].measure[3].M          = k2AperMag1[i];
     573    stars[Nstars].measure[3].dM         = k2AperMag1Err[i];
     574    stars[Nstars].measure[3].Map        = k2AperMag3[i];
     575    stars[Nstars].measure[3].dMap       = k2AperMag3Err[i];
     576    stars[Nstars].measure[3].Mkron      = k2AperMag4[i];
     577    stars[Nstars].measure[3].dMkron     = k2AperMag4Err[i];
     578    stars[Nstars].measure[3].posangle   = k2PA[i]; // XXX units
     579    stars[Nstars].measure[3].psfQF      = k2Class[i];
     580    stars[Nstars].measure[3].photFlags  = k2ppErrBits[i];
    619581    stars[Nstars].measure[3].photFlags2 = photFlags2;
    620     stars[Nstars].measure[3].detID      = hSeqNum[i];
    621     stars[Nstars].measure[3].photcode   = codeH;
    622 
    623     // K1 measure
     582    stars[Nstars].measure[3].detID      = k2SeqNum[i];
     583    stars[Nstars].measure[3].photcode   = codeK;
     584
     585    // H2 measure
    624586    stars[Nstars].measure[4].extID      = sourceID[i];
    625587    stars[Nstars].measure[4].imageID    = frameSetID[i]; // XXX check for frameSetID > 31-bit int
     
    628590    stars[Nstars].measure[4].psfChisq   = pStar[i];
    629591    stars[Nstars].measure[4].extNsigma  = pGalaxy[i];
    630     stars[Nstars].measure[4].M          = k1HallMag[i];
    631     stars[Nstars].measure[4].dM         = k1HallMagErr[i];
    632     stars[Nstars].measure[4].Map        = k1AperMag3[i];
    633     stars[Nstars].measure[4].dMap       = k1AperMag3Err[i];
    634     stars[Nstars].measure[4].Mkron      = k1AperMag4[i];
    635     stars[Nstars].measure[4].dMkron     = k1AperMag4Err[i];
    636     stars[Nstars].measure[4].posangle   = k1PA[i]; // XXX units
    637     stars[Nstars].measure[4].psfQF      = k1Class[i];
    638     stars[Nstars].measure[4].photFlags  = k1ppErrBits[i];
     592    stars[Nstars].measure[4].M          = h2AperMag1[i];
     593    stars[Nstars].measure[4].dM         = h2AperMag1Err[i];
     594    stars[Nstars].measure[4].Map        = h2AperMag3[i];
     595    stars[Nstars].measure[4].dMap       = h2AperMag3Err[i];
     596    stars[Nstars].measure[4].Mkron      = h2AperMag4[i];
     597    stars[Nstars].measure[4].dMkron     = h2AperMag4Err[i];
     598    stars[Nstars].measure[4].posangle   = h2PA[i]; // XXX units
     599    stars[Nstars].measure[4].psfQF      = h2Class[i];
     600    stars[Nstars].measure[4].photFlags  = h2ppErrBits[i];
    639601    stars[Nstars].measure[4].photFlags2 = photFlags2;
    640     stars[Nstars].measure[4].detID      = k1SeqNum[i];
    641     stars[Nstars].measure[4].photcode   = codeK1;
    642 
    643     // K1 measure
    644     stars[Nstars].measure[5].extID      = sourceID[i];
    645     stars[Nstars].measure[5].imageID    = frameSetID[i]; // XXX check for frameSetID > 31-bit int
    646     stars[Nstars].measure[5].R          = ra[i];
    647     stars[Nstars].measure[5].D          = dec[i];
    648     stars[Nstars].measure[5].psfChisq   = pStar[i];
    649     stars[Nstars].measure[5].extNsigma  = pGalaxy[i];
    650     stars[Nstars].measure[5].M          = k2HallMag[i];
    651     stars[Nstars].measure[5].dM         = k2HallMagErr[i];
    652     stars[Nstars].measure[5].Map        = k2AperMag3[i];
    653     stars[Nstars].measure[5].dMap       = k2AperMag3Err[i];
    654     stars[Nstars].measure[5].Mkron      = k2AperMag4[i];
    655     stars[Nstars].measure[5].dMkron     = k2AperMag4Err[i];
    656     stars[Nstars].measure[5].posangle   = k2PA[i]; // XXX units
    657     stars[Nstars].measure[5].psfQF      = k2Class[i];
    658     stars[Nstars].measure[5].photFlags  = k2ppErrBits[i];
    659     stars[Nstars].measure[5].photFlags2 = photFlags2;
    660     stars[Nstars].measure[5].detID      = k2SeqNum[i];
    661     stars[Nstars].measure[5].photcode   = codeK2;
     602    stars[Nstars].measure[4].detID      = h2SeqNum[i];
     603    stars[Nstars].measure[4].photcode   = codeH;
    662604
    663605    stars[Nstars].average.Nmeasure = UKIRT_NFILTER;
     
    667609      NSTARS += 10000;
    668610      REALLOCATE (stars, UKIRT_Stars, NSTARS);
    669       for (int j = Nstars; j < NSTARS; j++) {
    670         ALLOCATE (stars[j].measure, Measure, UKIRT_NFILTER);
    671       }
    672611    }
    673612  }
     
    677616  FREE (ra);
    678617  FREE (dec);
     618  FREE (epoch);
    679619  FREE (priOrSec);
    680620  FREE (mergedClass);
     
    682622  FREE (pGalaxy);
    683623
    684   FREE (zHallMag);
    685   FREE (zHallMagErr);
    686   FREE (zAperMag3);
    687   FREE (zAperMag3Err);
    688   FREE (zAperMag4);
    689   FREE (zAperMag4Err);
    690   FREE (zPA);
    691   FREE (zClass);
    692   FREE (zppErrBits);
    693   FREE (zSeqNum);
    694 
    695   FREE (yHallMag);
    696   FREE (yHallMagErr);
    697   FREE (yAperMag3);
    698   FREE (yAperMag3Err);
    699   FREE (yAperMag4);
    700   FREE (yAperMag4Err);
    701   FREE (yPA);
    702   FREE (yClass);
    703   FREE (yppErrBits);
    704   FREE (ySeqNum);
    705 
    706   FREE (jHallMag);
    707   FREE (jHallMagErr);
     624  FREE (jAperMag1);
     625  FREE (jAperMag1Err);
    708626  FREE (jAperMag3);
    709627  FREE (jAperMag3Err);
     
    715633  FREE (jSeqNum);
    716634
    717   FREE (hHallMag);
    718   FREE (hHallMagErr);
     635  FREE (hAperMag1);
     636  FREE (hAperMag1Err);
    719637  FREE (hAperMag3);
    720638  FREE (hAperMag3Err);
     
    726644  FREE (hSeqNum);
    727645
    728   FREE (k1HallMag);
    729   FREE (k1HallMagErr);
     646  FREE (k1AperMag1);
     647  FREE (k1AperMag1Err);
    730648  FREE (k1AperMag3);
    731649  FREE (k1AperMag3Err);
     
    737655  FREE (k1SeqNum);
    738656
    739   FREE (k2HallMag);
    740   FREE (k2HallMagErr);
     657  FREE (k2AperMag1);
     658  FREE (k2AperMag1Err);
    741659  FREE (k2AperMag3);
    742660  FREE (k2AperMag3Err);
     
    748666  FREE (k2SeqNum);
    749667
     668  FREE (h2AperMag1);
     669  FREE (h2AperMag1Err);
     670  FREE (h2AperMag3);
     671  FREE (h2AperMag3Err);
     672  FREE (h2AperMag4);
     673  FREE (h2AperMag4Err);
     674  FREE (h2PA);
     675  FREE (h2Class);
     676  FREE (h2ppErrBits);
     677  FREE (h2SeqNum);
     678
    750679  *nstars = Nstars;
    751680  *nstart = Nstart;
    752681  return (stars);
    753682}
    754 
    755  36
    756  37
    757  38
    758  39
    759  40
    760  41
    761  42
    762  43
    763  44
    764  45
    765  46
    766  47
    767  48
    768  49
    769  50
    770  51
    771  52
    772  53
    773  54
    774  55
    775  56
    776  57
    777  58
    778  59
    779  60
    780  61
    781  62
    782  63
    783  64
    784  65
    785  66
    786  67
    787  68
    788  69
    789  70
    790  71
    791  72
    792  73
    793  74
    794  75
    795  76
    796  77
    797  78
    798  79
    799  80
    800  81
    801  82
    802  83
    803  84
    804  85
    805  86
    806  87
    807  88
    808  89
    809  90
    810  91
    811  92
    812  93
    813  94
    814  95
    815  96
    816  97
    817  98
    818  99
    819 100
    820 101
    821 102
    822 103
    823 104
    824 105
    825 106
    826 107
    827 108
    828 109
    829 110
    830 111
    831 112
    832 113
    833 114
    834 115
    835 116
    836 117
    837 118
    838 119
    839 120
    840 121
    841 122
    842 123
    843 124
    844 125
    845 126
    846 127
    847 128
    848 129
    849 130
    850 131
    851 132
    852 133
    853 134
    854 135
    855 136
    856 137
    857 138
    858 139
    859 140
    860 141
    861 142
    862 143
    863 144
    864 145
    865 146
    866 147
    867 148
    868 149
    869 150
    870 151
    871 152
    872 153
    873 154
    874 155
    875 156
    876 157
    877 158
    878 159
    879 160
    880 161
    881 162
    882 163
    883 164
    884 165
    885 166
    886 167
    887 168
    888 169
    889 170
    890 171
    891 172
    892 173
    893 174
    894 175
    895 176
    896 177
  • branches/eam_branches/ohana.20190329/src/addstar/src/loadukirt_uhs_readstars_uhs.c

    r40886 r40902  
    248248
    249249  ALLOCATE_PTR (stars, UKIRT_Stars, NSTARS);
    250   for (int i = 0; i < NSTARS; i++) {
    251     ALLOCATE (stars[i].measure, Measure, UKIRT_NFILTER);
    252   }
    253250
    254251  for (int i = 0; i < NstarsIn; i++) {
     
    258255    Dmin = MIN (Dmin, dec[i]);
    259256    Dmax = MAX (Dmax, dec[i]);
     257
     258    // only allocate the measures for stars as we define them
     259    ALLOCATE (stars[Nstars].measure, Measure, UKIRT_NFILTER);
    260260
    261261    // we have one UKIRT UHS (J-band) measurement per object
     
    310310      NSTARS += 10000;
    311311      REALLOCATE (stars, UKIRT_Stars, NSTARS);
    312       for (int j = Nstars; j < NSTARS; j++) {
    313         ALLOCATE (stars[j].measure, Measure, UKIRT_NFILTER);
    314       }
    315312    }
    316313  }
  • branches/eam_branches/ohana.20190329/src/addstar/src/loadukirt_uhs_readstars_ulas.c

    r40888 r40902  
    5151 41 eBV                       :
    5252 42 aY                        :
    53  43 yHallMag                  : M
    54  44 yHallMagErr               : dM
    55  45 yPetroMag                 :
    56  46 yPetroMagErr              :
    57  47 yAperMag3                 : Map
    58  48 yAperMag3Err              : dMap
    59  49 yAperMag4                 : Mkron
    60  50 yAperMag4Err              : dMron
    61  51 yAperMag6                 :
    62  52 yAperMag6Err              :
    63  53 yGausig                   :
    64  54 yEll                      :
    65  55 yPA                       : posangle
    66  56 yErrBits                  :
    67  57 yDeblend                  :
    68  58 yClass                    : psfQF
    69  59 yClassStat                :
    70  60 yppErrBits                : photFlags
    71  61 ySeqNum                   : detID
    72  62 yObjID                    :
    73  63 yXi                       :
    74  64 yEta                      :
    75  65 aJ
    76  66 j_1HallMag                : M
    77  67 j_1HallMagErr             : dM
    78  68 j_1PetroMag               :
    79  69 j_1PetroMagErr            :
    80  70 j_1AperMag3               : Map
    81  71 j_1AperMag3Err            : dMap
    82  72 j_1AperMag4               : Mkron
    83  73 j_1AperMag4Err            : dMron
    84  74 j_1AperMag6               :
    85  75 j_1AperMag6Err            :
    86  76 j_1Gausig                 :
    87  77 j_1Ell                    :
    88  78 j_1PA                     : posangle
    89  79 j_1ErrBits                :
    90  80 j_1Deblend                :
    91  81 j_1Class                  : psfQF
    92  82 j_1ClassStat              :
    93  83 j_1ppErrBits              : photFlags
    94  84 j_1SeqNum                 : detID
    95  85 j_1ObjID                  :
    96  86 j_1Xi                     :
    97  87 j_1Eta                    :
    98  88 j_2HallMag                : M
    99  89 j_2HallMagErr             : dM
    100  90 j_2PetroMag               :
    101  91 j_2PetroMagErr            :
    102  92 j_2AperMag3               : Map
    103  93 j_2AperMag3Err            : dMap
    104  94 j_2AperMag4               : Mkron
    105  95 j_2AperMag4Err            : dMron
    106  96 j_2AperMag6               :
    107  97 j_2AperMag6Err            :
    108  98 j_2Gausig                 :
    109  99 j_2Ell                    :
    110 100 j_2PA                     : posangle
    111 101 j_2ErrBits                :
    112 102 j_2Deblend                :
    113 103 j_2Class                  : psfQF
    114 104 j_2ClassStat              :
    115 105 j_2ppErrBits              : photFlags
    116 106 j_2SeqNum                 : detID
    117 107 j_2ObjID                  :
    118 108 j_2Xi                     :
    119 109 j_2Eta                    :
    120 110 aH
    121 111 hHallMag                  : M
    122 112 hHallMagErr               : dM
    123 113 hPetroMag                 :
    124 114 hPetroMagErr              :
    125 115 hAperMag3                 : Map
    126 116 hAperMag3Err              : dMap
    127 117 hAperMag4                 : Mkron
    128 118 hAperMag4Err              : dMron
    129 119 hAperMag6                 :
    130 120 hAperMag6Err              :
    131 121 hGausig                   :
    132 122 hEll                      :
    133 123 hPA                       : posangle
    134 124 hErrBits                  :
    135 125 hDeblend                  :
    136 126 hClass                    : psfQF
    137 127 hClassStat                :
    138 128 hppErrBits                : photFlags
    139 129 hSeqNum                   : detID
    140 130 hObjID                    :
    141 131 hXi                       :
    142 132 hEta                      :
    143 133 aK
     53 43 aJ
     54 44 aH
     55 45 aK
     56 46 yHallMag                  : M
     57 47 yHallMagErr               : dM
     58 48 yPetroMag                 :
     59 49 yPetroMagErr              :
     60 50 yAperMag3                 : Map
     61 51 yAperMag3Err              : dMap
     62 52 yAperMag4                 : Mkron
     63 53 yAperMag4Err              : dMron
     64 54 yAperMag6                 :
     65 55 yAperMag6Err              :
     66 56 yGausig                   :
     67 57 yEll                      :
     68 58 yPA                       : posangle
     69 59 yErrBits                  :
     70 60 yDeblend                  :
     71 61 yClass                    : psfQF
     72 62 yClassStat                :
     73 63 yppErrBits                : photFlags
     74 64 ySeqNum                   : detID
     75 65 yObjID                    :
     76 66 yXi                       :
     77 67 yEta                      :
     78 68 j_1HallMag                : M
     79 69 j_1HallMagErr             : dM
     80 70 j_1PetroMag               :
     81 71 j_1PetroMagErr            :
     82 72 j_1AperMag3               : Map
     83 73 j_1AperMag3Err            : dMap
     84 74 j_1AperMag4               : Mkron
     85 75 j_1AperMag4Err            : dMron
     86 76 j_1AperMag6               :
     87 77 j_1AperMag6Err            :
     88 78 j_1Gausig                 :
     89 79 j_1Ell                    :
     90 80 j_1PA                     : posangle
     91 81 j_1ErrBits                :
     92 82 j_1Deblend                :
     93 83 j_1Class                  : psfQF
     94 84 j_1ClassStat              :
     95 85 j_1ppErrBits              : photFlags
     96 86 j_1SeqNum                 : detID
     97 87 j_1ObjID                  :
     98 88 j_1Xi                     :
     99 89 j_1Eta                    :
     100 90 j_2HallMag                : M
     101 91 j_2HallMagErr             : dM
     102 92 j_2PetroMag               :
     103 93 j_2PetroMagErr            :
     104 94 j_2AperMag3               : Map
     105 95 j_2AperMag3Err            : dMap
     106 96 j_2AperMag4               : Mkron
     107 97 j_2AperMag4Err            : dMron
     108 98 j_2AperMag6               :
     109 99 j_2AperMag6Err            :
     110100 j_2Gausig                 :
     111101 j_2Ell                    :
     112102 j_2PA                     : posangle
     113103 j_2ErrBits                :
     114104 j_2Deblend                :
     115105 j_2Class                  : psfQF
     116106 j_2ClassStat              :
     117107 j_2ppErrBits              : photFlags
     118108 j_2SeqNum                 : detID
     119109 j_2ObjID                  :
     120110 j_2Xi                     :
     121111 j_2Eta                    :
     122112 hHallMag                  : M
     123113 hHallMagErr               : dM
     124114 hPetroMag                 :
     125115 hPetroMagErr              :
     126116 hAperMag3                 : Map
     127117 hAperMag3Err              : dMap
     128118 hAperMag4                 : Mkron
     129119 hAperMag4Err              : dMron
     130120 hAperMag6                 :
     131121 hAperMag6Err              :
     132122 hGausig                   :
     133123 hEll                      :
     134124 hPA                       : posangle
     135125 hErrBits                  :
     136126 hDeblend                  :
     137127 hClass                    : psfQF
     138128 hClassStat                :
     139129 hppErrBits                : photFlags
     140130 hSeqNum                   : detID
     141131 hObjID                    :
     142132 hXi                       :
     143133 hEta                      :
    144144134 kHallMag                  : M
    145 135 kHallMagErr       : dM
     145135 kHallMagErr               : dM
    146146136 kPetroMag                 :
    147147137 kPetroMagErr              :
     
    154154144 kGausig                   :
    155155145 kEll                      :
    156 146 kPA               : posangle
     156146 kPA                       : posangle
    157157147 kErrBits                  :
    158158148 kDeblend                  :
    159 159 kClass                    : psfQF
    160 150 kClassStat        :
    161 151 kppErrBits        : photFlags
    162 152 kSeqNum                 : detID
     159149 kClass                    : psfQF
     160150 kClassStat                :
     161151 kppErrBits                : photFlags
     162152 kSeqNum                   : detID
    163163153 kObjID                    :
    164164154 kXi                       :
     
    193193UKIRT_Stars *loadukirt_uhs_readstars_ulas (FILE *f, char *buffer, int *nstart, AddstarClientOptions *options, int *nstars) {
    194194
    195   int codeY  = GetPhotcodeCodebyName ("UKIRT_Y");  if (!codeY )  Shutdown ("missing photcode UKIRT_Y");
    196   int codeJ1 = GetPhotcodeCodebyName ("UKIRT_J1"); if (!codeJ1 ) Shutdown ("missing photcode UKIRT_J1");
    197   int codeJ2 = GetPhotcodeCodebyName ("UKIRT_J2"); if (!codeJ2 ) Shutdown ("missing photcode UKIRT_J2");
    198   int codeH  = GetPhotcodeCodebyName ("UKIRT_H");  if (!codeH )  Shutdown ("missing photcode UKIRT_H");
    199   int codeK  = GetPhotcodeCodebyName ("UKIRT_K");  if (!codeK)   Shutdown ("missing photcode UKIRT_K");
     195  int codeY = GetPhotcodeCodebyName ("UKIRT_Y"); if (!codeY) Shutdown ("missing photcode UKIRT_Y");
     196  int codeJ = GetPhotcodeCodebyName ("UKIRT_J"); if (!codeJ) Shutdown ("missing photcode UKIRT_J");
     197  int codeH = GetPhotcodeCodebyName ("UKIRT_H"); if (!codeH) Shutdown ("missing photcode UKIRT_H");
     198  int codeK = GetPhotcodeCodebyName ("UKIRT_K"); if (!codeK) Shutdown ("missing photcode UKIRT_K");
    200199
    201200  // XXX I need a UKIRT UHS Mean Epoch
     
    353352      dPARSE ( 37,  36, pStar,         "pStar");
    354353      dPARSE ( 38,  37, pGalaxy,       "pGalaxy");
    355       dPARSE ( 43,  38, yHallMag,      "yHallMag");
    356       dPARSE ( 44,  43, yHallMagErr,   "yHallMagErr");
    357       dPARSE ( 47,  44, yAperMag3,     "yAperMag3");
    358       dPARSE ( 48,  47, yAperMag3Err,  "yAperMag3Err");
    359       dPARSE ( 49,  48, yAperMag4,     "yAperMag4");
    360       dPARSE ( 50,  49, yAperMag4Err,  "yAperMag4Err");
    361       dPARSE ( 55,  50, yPA,           "yPA");
    362       iPARSE ( 58,  55, yClass,        "yClass");
    363       iPARSE ( 60,  58, yppErrBits,    "yppErrBits");
    364       iPARSE ( 61,  60, ySeqNum,       "ySeqNum");
    365       dPARSE ( 66,  61, j1HallMag,     "j1HallMag");
    366       dPARSE ( 67,  66, j1HallMagErr,  "j1HallMagErr");
    367       dPARSE ( 70,  67, j1AperMag3,    "j1AperMag3");
    368       dPARSE ( 71,  70, j1AperMag3Err, "j1AperMag3Err");
    369       dPARSE ( 72,  71, j1AperMag4,    "j1AperMag4");
    370       dPARSE ( 73,  72, j1AperMag4Err, "j1AperMag4Err");
    371       dPARSE ( 78,  73, j1PA,          "j1PA");
    372       iPARSE ( 81,  78, j1Class,       "j1Class");
    373       iPARSE ( 83,  81, j1ppErrBits,   "j1ppErrBits");
    374       iPARSE ( 84,  83, j1SeqNum,      "j1SeqNum");
    375       dPARSE ( 88,  84, j2HallMag,     "j2HallMag");
    376       dPARSE ( 89,  88, j2HallMagErr,  "j2HallMagErr");
    377       dPARSE ( 92,  89, j2AperMag3,    "j2AperMag3");
    378       dPARSE ( 93,  92, j2AperMag3Err, "j2AperMag3Err");
    379       dPARSE ( 94,  93, j2AperMag4,    "j2AperMag4");
    380       dPARSE ( 95,  94, j2AperMag4Err, "j2AperMag4Err");
    381       dPARSE (100,  95, j2PA,          "j2PA");
    382       iPARSE (103, 100, j2Class,       "j2Class");
    383       iPARSE (105, 103, j2ppErrBits,   "j2ppErrBits");
    384       iPARSE (106, 105, j2SeqNum,      "j2SeqNum");
    385       dPARSE (111, 106, hHallMag,      "hHallMag");
    386       dPARSE (112, 111, hHallMagErr,   "hHallMagErr");
    387       dPARSE (115, 112, hAperMag3,     "hAperMag3");
    388       dPARSE (116, 115, hAperMag3Err,  "hAperMag3Err");
    389       dPARSE (117, 116, hAperMag4,     "hAperMag4");
    390       dPARSE (118, 117, hAperMag4Err,  "hAperMag4Err");
    391       dPARSE (123, 118, hPA,           "hPA");
    392       iPARSE (126, 123, hClass,        "hClass");
    393       iPARSE (128, 126, hppErrBits,    "hppErrBits");
    394       iPARSE (129, 128, hSeqNum,       "hSeqNum");
    395       dPARSE (134, 129, kHallMag,      "kHallMag");
     354      dPARSE ( 46,  38, yHallMag,      "yHallMag");
     355      dPARSE ( 47,  46, yHallMagErr,   "yHallMagErr");
     356      dPARSE ( 50,  47, yAperMag3,     "yAperMag3");
     357      dPARSE ( 51,  50, yAperMag3Err,  "yAperMag3Err");
     358      dPARSE ( 52,  51, yAperMag4,     "yAperMag4");
     359      dPARSE ( 53,  52, yAperMag4Err,  "yAperMag4Err");
     360      dPARSE ( 58,  53, yPA,           "yPA");
     361      iPARSE ( 61,  58, yClass,        "yClass");
     362      iPARSE ( 63,  61, yppErrBits,    "yppErrBits");
     363      iPARSE ( 64,  63, ySeqNum,       "ySeqNum");
     364      dPARSE ( 68,  64, j1HallMag,     "j1HallMag");
     365      dPARSE ( 69,  68, j1HallMagErr,  "j1HallMagErr");
     366      dPARSE ( 72,  69, j1AperMag3,    "j1AperMag3");
     367      dPARSE ( 73,  72, j1AperMag3Err, "j1AperMag3Err");
     368      dPARSE ( 74,  73, j1AperMag4,    "j1AperMag4");
     369      dPARSE ( 75,  74, j1AperMag4Err, "j1AperMag4Err");
     370      dPARSE ( 80,  75, j1PA,          "j1PA");
     371      iPARSE ( 83,  80, j1Class,       "j1Class");
     372      iPARSE ( 85,  83, j1ppErrBits,   "j1ppErrBits");
     373      iPARSE ( 86,  85, j1SeqNum,      "j1SeqNum");
     374      dPARSE ( 90,  86, j2HallMag,     "j2HallMag");
     375      dPARSE ( 91,  90, j2HallMagErr,  "j2HallMagErr");
     376      dPARSE ( 94,  91, j2AperMag3,    "j2AperMag3");
     377      dPARSE ( 95,  94, j2AperMag3Err, "j2AperMag3Err");
     378      dPARSE ( 96,  95, j2AperMag4,    "j2AperMag4");
     379      dPARSE ( 97,  96, j2AperMag4Err, "j2AperMag4Err");
     380      dPARSE (102,  97, j2PA,          "j2PA");
     381      iPARSE (105, 102, j2Class,       "j2Class");
     382      iPARSE (107, 105, j2ppErrBits,   "j2ppErrBits");
     383      iPARSE (108, 107, j2SeqNum,      "j2SeqNum");
     384      dPARSE (112, 108, hHallMag,      "hHallMag");
     385      dPARSE (113, 112, hHallMagErr,   "hHallMagErr");
     386      dPARSE (116, 113, hAperMag3,     "hAperMag3");
     387      dPARSE (117, 116, hAperMag3Err,  "hAperMag3Err");
     388      dPARSE (118, 117, hAperMag4,     "hAperMag4");
     389      dPARSE (119, 118, hAperMag4Err,  "hAperMag4Err");
     390      dPARSE (124, 119, hPA,           "hPA");
     391      iPARSE (127, 124, hClass,        "hClass");
     392      iPARSE (129, 127, hppErrBits,    "hppErrBits");
     393      iPARSE (130, 129, hSeqNum,       "hSeqNum");
     394      dPARSE (134, 130, kHallMag,      "kHallMag");
    396395      dPARSE (135, 134, kHallMagErr,   "kHallMagErr");
    397396      dPARSE (138, 135, kAperMag3,     "kAperMag3");
     
    400399      dPARSE (141, 140, kAperMag4Err,  "kAperMag4Err");
    401400      dPARSE (146, 141, kPA,           "kPA");
    402       iPARSE (159, 146, kClass,        "kClass");
    403       iPARSE (151, 159, kppErrBits,    "kppErrBits");
     401      iPARSE (149, 146, kClass,        "kClass");
     402      iPARSE (151, 149, kppErrBits,    "kppErrBits");
    404403      iPARSE (152, 151, kSeqNum,       "kSeqNum");
    405404
     
    494493
    495494  ALLOCATE_PTR (stars, UKIRT_Stars, NSTARS);
    496   for (int i = 0; i < NSTARS; i++) {
    497     ALLOCATE (stars[i].measure, Measure, UKIRT_NFILTER);
    498   }
    499495
    500496  for (int i = 0; i < NstarsIn; i++) {
     
    504500    Dmin = MIN (Dmin, dec[i]);
    505501    Dmax = MAX (Dmax, dec[i]);
     502
     503    // only allocate the measures for stars as we define them
     504    ALLOCATE (stars[Nstars].measure, Measure, UKIRT_NFILTER);
    506505
    507506    // we have NFILTER (== 6) UKIRT measurements per object
     
    569568    stars[Nstars].measure[1].photFlags2 = photFlags2;
    570569    stars[Nstars].measure[1].detID      = j1SeqNum[i];
    571     stars[Nstars].measure[1].photcode   = codeJ1;
     570    stars[Nstars].measure[1].photcode   = codeJ;
    572571
    573572    // J measure
     
    589588    stars[Nstars].measure[2].photFlags2 = photFlags2;
    590589    stars[Nstars].measure[2].detID      = j2SeqNum[i];
    591     stars[Nstars].measure[2].photcode   = codeJ2;
     590    stars[Nstars].measure[2].photcode   = codeJ;
    592591
    593592    // H measure
     
    637636      NSTARS += 10000;
    638637      REALLOCATE (stars, UKIRT_Stars, NSTARS);
    639       for (int j = Nstars; j < NSTARS; j++) {
    640         ALLOCATE (stars[j].measure, Measure, UKIRT_NFILTER);
    641       }
    642638    }
    643639  }
     
    647643  FREE (ra);
    648644  FREE (dec);
     645  FREE (epoch);
    649646  FREE (priOrSec);
    650647  FREE (mergedClass);
     
    711708  return (stars);
    712709}
     710
     711
     712
     713
     714
     715
     716
     717
     718
     719
     720
     721
     722
     723
     724
     725
     726
     727
     728
     729
     730
     731
     732
     733
     734
     735
     736
     737
     738
     739
     740
     741
     742
     743
     744
     745
     746
     747
     748
     749
     750
     751
     752
     753
     754
     755
     756
     757
     758
     759
     760
     761
     762
     763
     764
     765
     766
     767
     768
     769
     770
     771
     772
     773
     774
     775
     776
     777
     778
     779
     780
     781
     782
     783
     784
     785
     786
     787
     788
     789
     790
     791
     792
     793
     794
     795
     796
     797
     798
     799
     800
     801
     802
     803
     804
     805
     806
     807
     808
     809
     810
     811
     812
     813
     814
     815
     816
     817
     818
     819
     820
     821
     822
  • branches/eam_branches/ohana.20190329/src/addstar/src/loadukirt_uhs_table.c

    r40886 r40902  
    2828      fclose (f);
    2929      free (buffer);
     30      free (stars);
    3031      return TRUE; // end of file reached
    3132    }
     
    6566      // loadukirt_uhs_catalog (Nmeasure agnostic)
    6667      loadukirt_uhs_catalog (subset, Nsubset, region, skylist[0].filename[0], options);
    67      
    68       // for (int j = 0; j < Nsubset; j++) {
    69       //        free (subset[j].measure);
    70       // }
    7168      free (subset);
    72 
    7369      SkyListFree (skylist);
     70    }
     71    for (int i = 0; i < Nstars; i++) {
     72      free (stars[i].measure);
    7473    }
    7574    free (stars);
Note: See TracChangeset for help on using the changeset viewer.