IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 29, 2015, 6:52:41 AM (11 years ago)
Author:
eugene
Message:

merge changes from ipp-20150112

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/Ohana

    • Property svn:mergeinfo deleted
  • trunk/Ohana/src/addstar/include/WISE.h

    r37807 r38062  
    3535int getWISE_sortStars (WISE_Stars *tstars, int Ntstars);
    3636
     37int loadwise_star_prelim (Stars **star, char *line, int Nmax);
    3738int loadwise_star_allsky (Stars **star, char *line, int Nmax);
    38 int loadwise_star_prelim (Stars **star, char *line, int Nmax);
     39int loadwise_star_allwise (Stars **star, char *line, int Nmax);
    3940
    4041
  • trunk/Ohana/src/addstar/src/args_loadwise.c

    r37807 r38062  
    5353  }
    5454
    55 enum {MODE_NONE, MODE_ALLWISE, MODE_ALLSKY, MODE_PRELIM};
    56 int MODE;
    57 
    5855  /* load the prelim data dump */
    5956  MODE = MODE_ALLWISE;
  • trunk/Ohana/src/addstar/src/loadwise_rawdata.c

    r37807 r38062  
    77
    88/* read in chunks of ~64MB */
    9 # define NBYTE 0x4000000
     9# define NBYTE 0x40000000
    1010# define DEBUG 0
    1111
     
    167167            break;
    168168          case MODE_ALLWISE:
     169            loadwise_star_allwise (&stars[Nstars], &buffer[offset], Nbyte - offset);
     170            break;
    169171          default:
    170             // loadwise_star_allwise (&stars[Nstars], &buffer[offset], Nbyte - offset);
    171172            break;
    172173        }
  • trunk/Ohana/src/addstar/src/loadwise_star_full.c

    r37818 r38062  
    1414// RA and DEC have already been set
    1515int loadwise_star_allwise (Stars **star, char *line, int Nmax) {
     16
     17  int i;
     18  char *ptr;
     19
     20  if (line == NULL) Shutdown ("format error in WISE");
     21
     22  ptr = line;
     23
     24  // I can assign dRA and dDEC to dX and dY if I can consistently set posangle and pltscale
     25  star[0][0].measure.posangle = 0.0;
     26  star[0][0].measure.pltscale = 1.0;
     27
     28  ptr = skipNbounds (ptr, '|', 3, Nmax); // skip: desig, ra, dec,
     29  star[0][0].measure.dXccd = ToShortPixels((strtod (ptr, NULL) + 0.005)); // sig_ra -- add 5/1000 to avoid truncation
     30  ptr = nextWISEfield (ptr);
     31  star[0][0].measure.dYccd = ToShortPixels((strtod (ptr, NULL) + 0.005)); // sig_dec
     32  ptr = nextWISEfield (ptr);
     33
     34  // we only know a single set of values for all 4 bands
     35  for (i = 1; i < 4; i++) {
     36      star[i][0].measure.dXccd    = star[0][0].measure.dXccd;
     37      star[i][0].measure.dYccd    = star[0][0].measure.dYccd;
     38      star[i][0].measure.posangle = star[0][0].measure.posangle;
     39      star[i][0].measure.pltscale = star[0][0].measure.pltscale;
     40  }
     41  ptr = skipNbounds (ptr, '|', 5, Nmax); // skip: sig_radec, glon, glat, elon, elat
     42
     43  star[0][0].measure.Xccd = strtod (ptr, NULL); // wx
     44  ptr = nextWISEfield (ptr); // skip wx
     45  star[0][0].measure.Yccd = strtod (ptr, NULL); // wy
     46  ptr = nextWISEfield (ptr); // skip wy
     47
     48  for (i = 1; i < 4; i++) {
     49      star[i][0].measure.Xccd    = star[0][0].measure.Xccd;
     50      star[i][0].measure.Yccd    = star[0][0].measure.Yccd;
     51  }
     52  ptr = skipNbounds (ptr, '|', 4, Nmax); // skip: cntr, source_id, coadd_id, src
     53
     54  // W1
     55  for (i = 0; i < 4; i++) {
     56    char *endpoint;
     57      star[i][0].measure.M  = strtod (ptr, &endpoint); // w?mpro
     58      if (endpoint == ptr) {
     59        star[i][0].measure.M  = NAN;
     60      }
     61      ptr = nextWISEfield (ptr);
     62      star[i][0].measure.dM = strtod (ptr, &endpoint); // w?sigmpro
     63      if (endpoint == ptr) {
     64        star[i][0].measure.dM  = NAN;
     65      }
     66      ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: w?sigmpro, w?snr
     67      star[i][0].measure.psfChisq = strtod (ptr, NULL); // w?rchi2
     68      star[i][0].measure.psfQF = strtod (ptr, NULL); // w?rchi2
     69      ptr = nextWISEfield (ptr); // skip : w1rchi2
     70
     71      // init the photFlags field
     72      star[i][0].measure.photFlags = 0;
     73  }
     74
     75  ptr = nextWISEfield (ptr); // skip: rchi2
     76
     77  // set blend flags for all 4 measures
     78  setWISE_blend_flag (star, ptr); // nb & na both used here
     79  ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: nb, na
     80
     81  for (i = 0; i < 4; i++) {
     82      setWISE_sat_flag (star[i], ptr); // w1sat
     83      ptr = nextWISEfield (ptr);
     84  }
     85  ptr = nextWISEfield (ptr); // skip satnum
     86
     87  ptr = skipNbounds (ptr, '|', 15, Nmax); // skip pm info
     88
     89  for (i = 0; i < 4; i++) {
     90      setWISE_cc_flag (star[i], ptr[i]); // cc_flags
     91  }
     92  ptr = nextWISEfield (ptr); // skip cc_flags
     93  ptr = nextWISEfield (ptr); // skip rel
     94
     95  // set ext flags for all 4 measures
     96  setWISE_ext_flag_allsky (star, ptr[0]); // ext_flg
     97  ptr = nextWISEfield (ptr); // skip ext_flags
     98
     99  for (i = 0; i < 4; i++) {
     100      setWISE_var_flag_allsky (star[i], ptr[i]); // var_flg
     101  }
     102  ptr = nextWISEfield (ptr); // skip var_flags
     103
     104  for (i = 0; i < 4; i++) {
     105      setWISE_ph_qual (star[i], ptr[i]); // ph_qual
     106  }
     107
     108  ptr = skipNbounds (ptr, '|', 157, Nmax); // skip: det_bit, moon_lev, w?nm, w?m, w?cov, etc, etc.
     109  // w?frtr dropped, (-4), use_src, best_use_cntr, ngrp added (+3), w?dmag dropped, w?k added,
     110
     111  for (i = 0; i < 4; i++) {
     112    ptr = skipNbounds (ptr, '|', 8, Nmax); // skip: w?magp, w?sigp1,2, w?dmag, w?ndf, w?m1q, w?mjdmin, w?mjdmax
     113    // w?magp is at 217, ph_qual is at 60
     114    // double mjdmin = strtod (ptr, NULL); // mjd min
     115    // ptr = nextWISEfield (ptr); // skip
     116    // double mjdmax = strtod (ptr, NULL); // mjd max
     117    // ptr = nextWISEfield (ptr); // skip mjd max
     118    double mjdmean = strtod (ptr, NULL); // mjd mean
     119    ptr = nextWISEfield (ptr); // skip mjd mean
     120
     121    // fprintf (stderr, "w%d mjd: %f\n", i, mjdmean);
     122
     123    // the release is based on data taken in the period 14 January 2010 to 29 April 2010
     124    if (mjdmean == 0.0) {
     125      star[i][0].measure.t = 0;
     126    } else {
     127      star[i][0].measure.t = ohana_mjd_to_sec (mjdmean);
     128    }
     129  }
     130
     131  star[0][0].measure.photcode  = WISE_W1;
     132  star[0][0].measure.detID   = 0;
     133  star[0][0].measure.imageID = 0;
     134
     135  star[1][0].measure.photcode  = WISE_W2;
     136  star[1][0].measure.detID   = 0;
     137  star[1][0].measure.imageID = 0;
     138
     139  star[2][0].measure.photcode  = WISE_W3;
     140  star[2][0].measure.detID   = 0;
     141  star[2][0].measure.imageID = 0;
     142
     143  star[3][0].measure.photcode  = WISE_W4;
     144  star[3][0].measure.detID   = 0;
     145  star[3][0].measure.imageID = 0;
     146
     147  return TRUE;
     148}
     149
     150// there are slight format differences between the prelim data dump and the allsky data dump:
     151// * after ph_qual & det_bit : new field moon_lev
     152// * for each filter, after w?sigp2 : new fields w?dmag, w?ndf, w?mlq, w?mjdmin, w?mjdmax, w?mjdmean
     153// * after w4mdjmean : new fields rho12, rho23, rho34, q12, q23, q34
     154// * after k_msig_2mass : new fields best_use_cntr, ngrp
     155
     156// fill in the data for a WISE quad star.  takes a pointer to the start of the line the
     157// RA and DEC have already been set
     158int loadwise_star_allsky (Stars **star, char *line, int Nmax) {
    16159
    17160  int i;
     
    84227  ptr = nextWISEfield (ptr); // skip satnum
    85228
    86   ptr = skipNbounds (ptr, '|', 15, Nmax); // skip pm info
    87 
    88   for (i = 0; i < 4; i++) {
    89       setWISE_cc_flag (star[i], ptr[i]); // cc_flags
     229  for (i = 0; i < 4; i++) {
     230      setWISE_cc_flag (star[i], ptr[i]); // cc_flg
    90231  }
    91232  ptr = nextWISEfield (ptr); // skip cc_flags
    92   ptr = nextWISEfield (ptr); // skip rel
    93233
    94234  // set ext flags for all 4 measures
     
    105245  }
    106246
    107   ptr = skipNbounds (ptr, '|', 158, Nmax); // skip: det_bit, moon_lev, w?nm, w?m, w?cov, etc, etc.
    108   // w?frtr dropped, (-4), use_src, best_use_cntr, ngrp added (+3), w?dmag dropped, w?k added,
    109 
    110   for (i = 0; i < 4; i++) {
    111     ptr = skipNbounds (ptr, '|', 8, Nmax); // skip: w?magp, w?sigp1,2, w?dmag, w?ndf, w?m1q, w?mjdmin, w?mjdmax
     247  ptr = skipNbounds (ptr, '|', 159, Nmax); // skip: det_bit, moon_lev, w?nm, w?m, w?cov, etc, etc.
     248
     249  for (i = 0; i < 4; i++) {
     250    ptr = skipNbounds (ptr, '|', 8, Nmax); // skip: det_bit, moon_lev, w?nm, w?m, w?cov, etc, etc.
    112251
    113252    // double mjdmin = strtod (ptr, NULL); // mjd min
     
    147286}
    148287
    149 // there are slight format differences between the prelim data dump and the allsky data dump:
    150 // * after ph_qual & det_bit : new field moon_lev
    151 // * for each filter, after w?sigp2 : new fields w?dmag, w?ndf, w?mlq, w?mjdmin, w?mjdmax, w?mjdmean
    152 // * after w4mdjmean : new fields rho12, rho23, rho34, q12, q23, q34
    153 // * after k_msig_2mass : new fields best_use_cntr, ngrp
    154 
    155288// fill in the data for a WISE quad star.  takes a pointer to the start of the line the
    156289// RA and DEC have already been set
    157 int loadwise_star_allsky (Stars **star, char *line, int Nmax) {
     290int loadwise_star_prelim (Stars **star, char *line, int Nmax) {
    158291
    159292  int i;
     
    196329  // W1
    197330  for (i = 0; i < 4; i++) {
    198     char *endpoint;
    199       star[i][0].measure.M  = strtod (ptr, &endpoint); // w?mpro
    200       if (endpoint == ptr) {
    201         star[i][0].measure.M  = NAN;
    202       }
    203       ptr = nextWISEfield (ptr);
    204       star[i][0].measure.dM = strtod (ptr, &endpoint); // w?sigmpro
    205       if (endpoint == ptr) {
    206         star[i][0].measure.dM  = NAN;
    207       }
    208       ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: w?sigmpro, w?snr
    209       star[i][0].measure.psfChisq = strtod (ptr, NULL); // w?rchi2
    210       ptr = nextWISEfield (ptr); // skip : w1rchi2
    211 
    212       // init the photFlags field
    213       star[i][0].measure.photFlags = 0;
    214   }
    215 
    216   ptr = nextWISEfield (ptr); // skip: rchi2
    217 
    218   // set blend flags for all 4 measures
    219   setWISE_blend_flag (star, ptr); // nb & na both used here
    220   ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: nb, na
    221 
    222   for (i = 0; i < 4; i++) {
    223       setWISE_sat_flag (star[i], ptr); // w1sat
    224       ptr = nextWISEfield (ptr);
    225   }
    226   ptr = nextWISEfield (ptr); // skip satnum
    227 
    228   for (i = 0; i < 4; i++) {
    229       setWISE_cc_flag (star[i], ptr[i]); // cc_flg
    230   }
    231   ptr = nextWISEfield (ptr); // skip cc_flags
    232 
    233   // set ext flags for all 4 measures
    234   setWISE_ext_flag_allsky (star, ptr[0]); // ext_flg
    235   ptr = nextWISEfield (ptr); // skip ext_flags
    236 
    237   for (i = 0; i < 4; i++) {
    238       setWISE_var_flag_allsky (star[i], ptr[i]); // var_flg
    239   }
    240   ptr = nextWISEfield (ptr); // skip var_flags
    241 
    242   for (i = 0; i < 4; i++) {
    243       setWISE_ph_qual (star[i], ptr[i]); // ph_qual
    244   }
    245 
    246   ptr = skipNbounds (ptr, '|', 159, Nmax); // skip: det_bit, moon_lev, w?nm, w?m, w?cov, etc, etc.
    247 
    248   for (i = 0; i < 4; i++) {
    249     ptr = skipNbounds (ptr, '|', 8, Nmax); // skip: det_bit, moon_lev, w?nm, w?m, w?cov, etc, etc.
    250 
    251     // double mjdmin = strtod (ptr, NULL); // mjd min
    252     // ptr = nextWISEfield (ptr); // skip
    253     // double mjdmax = strtod (ptr, NULL); // mjd max
    254     // ptr = nextWISEfield (ptr); // skip mjd max
    255     double mjdmean = strtod (ptr, NULL); // mjd mean
    256     ptr = nextWISEfield (ptr); // skip mjd mean
    257 
    258     // fprintf (stderr, "w%d mjd: %f\n", i, mjdmean);
    259 
    260     // the release is based on data taken in the period 14 January 2010 to 29 April 2010
    261     if (mjdmean == 0.0) {
    262       star[i][0].measure.t = 0;
    263     } else {
    264       star[i][0].measure.t = ohana_mjd_to_sec (mjdmean);
    265     }
    266   }
    267 
    268   star[0][0].measure.photcode  = WISE_W1;
    269   star[0][0].measure.detID   = 0;
    270   star[0][0].measure.imageID = 0;
    271 
    272   star[1][0].measure.photcode  = WISE_W2;
    273   star[1][0].measure.detID   = 0;
    274   star[1][0].measure.imageID = 0;
    275 
    276   star[2][0].measure.photcode  = WISE_W3;
    277   star[2][0].measure.detID   = 0;
    278   star[2][0].measure.imageID = 0;
    279 
    280   star[3][0].measure.photcode  = WISE_W4;
    281   star[3][0].measure.detID   = 0;
    282   star[3][0].measure.imageID = 0;
    283 
    284   return TRUE;
    285 }
    286 
    287 // fill in the data for a WISE quad star.  takes a pointer to the start of the line the
    288 // RA and DEC have already been set
    289 int loadwise_star_prelim (Stars **star, char *line, int Nmax) {
    290 
    291   int i;
    292   char *ptr;
    293 
    294   if (line == NULL) Shutdown ("format error in WISE");
    295 
    296   ptr = line;
    297 
    298   // I can assign dRA and dDEC to dX and dY if I can consistently set posangle and pltscale
    299   star[0][0].measure.posangle = 0.0;
    300   star[0][0].measure.pltscale = 1.0;
    301 
    302   ptr = skipNbounds (ptr, '|', 3, Nmax); // skip: desig, ra, dec,
    303   star[0][0].measure.dXccd = ToShortPixels(strtod (ptr, NULL)); // sig_ra
    304   ptr = nextWISEfield (ptr);
    305   star[0][0].measure.dYccd = ToShortPixels(strtod (ptr, NULL)); // sig_dec
    306   ptr = nextWISEfield (ptr);
    307 
    308   // we only know a single set of values for all 4 bands
    309   for (i = 1; i < 4; i++) {
    310       star[i][0].measure.dXccd    = star[0][0].measure.dXccd;
    311       star[i][0].measure.dYccd    = star[0][0].measure.dYccd;
    312       star[i][0].measure.posangle = star[0][0].measure.posangle;
    313       star[i][0].measure.pltscale = star[0][0].measure.pltscale;
    314   }
    315   ptr = skipNbounds (ptr, '|', 5, Nmax); // skip: sig_radec, glon, glat, elon, elat
    316 
    317   star[0][0].measure.Xccd = strtod (ptr, NULL); // wx
    318   ptr = nextWISEfield (ptr); // skip wx
    319   star[0][0].measure.Yccd = strtod (ptr, NULL); // wy
    320   ptr = nextWISEfield (ptr); // skip wy
    321 
    322   for (i = 1; i < 4; i++) {
    323       star[i][0].measure.Xccd    = star[0][0].measure.Xccd;
    324       star[i][0].measure.Yccd    = star[0][0].measure.Yccd;
    325   }
    326   ptr = skipNbounds (ptr, '|', 4, Nmax); // skip: cntr, source_id, coadd_id, src
    327 
    328   // W1
    329   for (i = 0; i < 4; i++) {
    330331      star[i][0].measure.M  = strtod (ptr, NULL); // w?mpro
    331332      ptr = nextWISEfield (ptr);
     
    413414# define FLAG_PH_U            0x00000008 // quality flag 'U'
    414415# define FLAG_PH_X            0x00000010 // quality flag 'X'
     416# define FLAG_PH_Z            0x00000020 // quality flag 'Z'
    415417
    416418# define FLAG_SATURATED_PIX   0x00000100 // sat > 0.0
     
    429431# define FLAG_EXT_BY_XSC      0x04000000 // ext == 1
    430432
    431 # define FLAG_VARIABLE_LEVEL1 0x10000000 // var_flg == 1 to 4
    432 # define FLAG_VARIABLE_LEVEL2 0x20000000 // var_flg == 5 to 7
     433// note prelim version had 1 -> 1-4, 2 -> 5-6
     434# define FLAG_VARIABLE_LEVEL1 0x10000000 // var_flg == 0 to 5
     435# define FLAG_VARIABLE_LEVEL2 0x20000000 // var_flg == 6 or 7
    433436# define FLAG_VARIABLE_LEVEL3 0x40000000 // var_flg == 8 or 9
    434437
     
    606609    case 'U': star[0].measure.photFlags |= FLAG_PH_U; break;
    607610    case 'X': star[0].measure.photFlags |= FLAG_PH_X; break;
     611    case 'Z': star[0].measure.photFlags |= FLAG_PH_Z; break;
    608612    default:
    609613      fprintf (stderr, "error in ph_flag: %c\n", qual);
Note: See TracChangeset for help on using the changeset viewer.