IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 33106


Ignore:
Timestamp:
Jan 16, 2012, 12:07:00 PM (15 years ago)
Author:
eugene
Message:

updates to wise assignments

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/loadwise_star_full.c

    r33105 r33106  
    1515  ptr = line;
    1616
     17  // I can assign dRA and dDEC to dX and dY if I can consistently set posangle and pltscale
     18  star[0][0].measure.posangle = 0.0;
     19  star[0][0].measure.pltscale = 1.0;
     20
    1721  ptr = skipNbounds (ptr, '|', 3, Nmax); // skip: desig, ra, dec,
    18   star[0][0].measure.FWx = ToShortPixels(strtod (ptr, NULL)); // sig_ra
     22  star[0][0].measure.dXccd = ToShortPixels(strtod (ptr, NULL)); // sig_ra
    1923  ptr = nextWISEfield (ptr);
    20   star[0][0].measure.FWy = ToShortPixels(strtod (ptr, NULL)); // sig_dec
     24  star[0][0].measure.dYccd = ToShortPixels(strtod (ptr, NULL)); // sig_dec
    2125  ptr = nextWISEfield (ptr);
    22   star[0][0].measure.theta = ToShortPixels(strtod (ptr, NULL)); // sig_radec
    23 
    24   star[1][0].measure.FWx   = star[0][0].measure.FWx;
    25   star[1][0].measure.FWy   = star[0][0].measure.FWy;
    26   star[1][0].measure.theta = star[0][0].measure.theta;
    27   star[2][0].measure.FWx   = star[0][0].measure.FWx;
    28   star[2][0].measure.FWy   = star[0][0].measure.FWy;
    29   star[2][0].measure.theta = star[0][0].measure.theta;
    30   star[3][0].measure.FWx   = star[0][0].measure.FWx;
    31   star[3][0].measure.FWy   = star[0][0].measure.FWy;
    32   star[3][0].measure.theta = star[0][0].measure.theta;
    33 
    34   ptr = skipNbounds (ptr, '|', 11, Nmax); // skip: sig_radec, glon, glat, elon, elat, wx, wy, cntr, source_id, coadd_id, src
     26
     27  // we only know a single set of values for all 4 bands
     28  for (i = 1; i < 4; i++) {
     29      star[i][0].measure.dXccd    = star[0][0].measure.dXccd;
     30      star[i][0].measure.dYccd    = star[0][0].measure.dYccd;
     31      star[i][0].measure.posangle = star[0][0].measure.posangle;
     32      star[i][0].measure.pltscale = star[0][0].measure.pltscale;
     33  }
     34  ptr = skipNbounds (ptr, '|', 5, Nmax); // skip: sig_radec, glon, glat, elon, elat
     35
     36  star[0][0].measure.Xccd = strtod (ptr, NULL); // wx
     37  ptr = nextWISEfield (ptr); // skip wx
     38  star[0][0].measure.Yccd = strtod (ptr, NULL); // wy
     39  ptr = nextWISEfield (ptr); // skip wy
     40
     41  for (i = 1; i < 4; i++) {
     42      star[i][0].measure.Xccd    = star[0][0].measure.Xccd;
     43      star[i][0].measure.Yccd    = star[0][0].measure.Yccd;
     44  }
     45  ptr = skipNbounds (ptr, '|', 4, Nmax); // skip: cntr, source_id, coadd_id, src
    3546
    3647  // W1
    37   star[0][0].measure.M  = strtod (ptr, NULL); // w1mpro
    38   ptr = nextWISEfield (ptr);
    39   star[0][0].measure.dM = strtod (ptr, NULL); // w1sigmpro
    40   ptr = skipNbounds (ptr, '|', 3, Nmax); // skip: w1sigmpro, w1snr, w1rchi2
    41 
    42   // W2
    43   star[1][0].measure.M  = strtod (ptr, NULL); // w1mpro
    44   ptr = nextWISEfield (ptr);
    45   star[1][0].measure.dM = strtod (ptr, NULL); // w1sigmpro
    46   ptr = skipNbounds (ptr, '|', 3, Nmax); // skip: w2sigmpro, w2snr, w2rchi2
    47 
    48   // W3
    49   star[2][0].measure.M  = strtod (ptr, NULL); // w1mpro
    50   ptr = nextWISEfield (ptr);
    51   star[2][0].measure.dM = strtod (ptr, NULL); // w1sigmpro
    52   ptr = skipNbounds (ptr, '|', 3, Nmax); // skip: w3sigmpro, w3snr, w3rchi2
    53 
    54   // W4
    55   star[3][0].measure.M  = strtod (ptr, NULL); // w1mpro
    56   ptr = nextWISEfield (ptr);
    57   star[3][0].measure.dM = strtod (ptr, NULL); // w1sigmpro
    58   ptr = skipNbounds (ptr, '|', 3, Nmax); // skip: w4sigmpro, w4snr, w4rchi2
    59 
    60   star[0][0].measure.photFlags = 0;
    61   star[1][0].measure.photFlags = 0;
    62   star[2][0].measure.photFlags = 0;
    63   star[3][0].measure.photFlags = 0;
    64   ptr = nextWISEfield (ptr); // skip: rchi2, nb, na
     48  for (i = 0; i < 4; i++) {
     49      star[0][0].measure.M  = strtod (ptr, NULL); // w?mpro
     50      ptr = nextWISEfield (ptr);
     51      star[0][0].measure.dM = strtod (ptr, NULL); // w?sigmpro
     52      ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: w?sigmpro, w?snr
     53      star[0][0].measure.psfChisq = strtod (ptr, NULL); // w?rchi2
     54      ptr = nextWISEfield (ptr); // skip : w1rchi2
     55
     56      // init the photFlags field
     57      star[i][0].measure.photFlags = 0;
     58  }
     59
     60  ptr = nextWISEfield (ptr); // skip: rchi2
    6561
    6662  // set blend flags for all 4 measures
    67   setWISE_blend_flag (star[0], ptr); // nb & na both used here
     63  setWISE_blend_flag (star, ptr); // nb & na both used here
    6864  ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: nb, na
    6965
    70   setWISE_sat_flag (star[0], ptr); // w1sat
    71   ptr = nextWISEfield (ptr);
    72 
    73   setWISE_sat_flag (star[1], ptr); // w2sat
    74   ptr = nextWISEfield (ptr);
    75 
    76   setWISE_sat_flag (star[2], ptr); // w3sat
    77   ptr = nextWISEfield (ptr);
    78 
    79   setWISE_sat_flag (star[3], ptr); // w4sat
    80   ptr = nextWISEfield (ptr);
     66  for (i = 0; i < 4; i++) {
     67      setWISE_sat_flag (star[i], ptr); // w1sat
     68      ptr = nextWISEfield (ptr);
     69  }
    8170  ptr = nextWISEfield (ptr); // skip satnum
    8271
    83   setWISE_cc_flag (star[0], ptr[0]); // cc_flg
    84   setWISE_cc_flag (star[1], ptr[1]); // cc_flg
    85   setWISE_cc_flag (star[2], ptr[2]); // cc_flg
    86   setWISE_cc_flag (star[3], ptr[3]); // cc_flg
     72  for (i = 0; i < 4; i++) {
     73      setWISE_cc_flag (star[i], ptr[i]); // cc_flg
     74  }
    8775  ptr = nextWISEfield (ptr); // skip cc_flags
    8876
     
    9179  ptr = nextWISEfield (ptr); // skip ext_flags
    9280
    93   setWISE_var_flag (star[0], ptr[0]); // var_flg
    94   setWISE_var_flag (star[1], ptr[1]); // var_flg
    95   setWISE_var_flag (star[2], ptr[2]); // var_flg
    96   setWISE_var_flag (star[3], ptr[3]); // var_flg
     81  for (i = 0; i < 4; i++) {
     82      setWISE_var_flag (star[i], ptr[i]); // var_flg
     83  }
    9784  ptr = nextWISEfield (ptr); // skip var_flags
    9885
    99   setWISE_ph_qual (star[0], ptr[0]); // ph_qual
    100   setWISE_ph_qual (star[1], ptr[1]); // ph_qual
    101   setWISE_ph_qual (star[2], ptr[2]); // ph_qual
    102   setWISE_ph_qual (star[3], ptr[3]); // ph_qual
    103 
    104   // setWISE_rd_flag (star[0], ptr[0]);
    105   // setWISE_bl_flag (star[0], ptr[0]);
    106   // setWISE_gal_flag (star[0], ptr[0]);
    107   // setWISE_mp_flag (star[0], ptr[0]);
     86  for (i = 0; i < 4; i++) {
     87      setWISE_ph_qual (star[i], ptr[i]); // ph_qual
     88  }
     89
    10890
    10991  // ptr = nextWISEfield (ptr); // x_scan
     
    182164  if (*p == 0) return (NULL);
    183165  return (p);
     166}
     167
     168int setWISE_blend_flag (Stars **star, char *ptr) {
     169
     170    int nb = atoi (ptr);
     171    if (nb == 1) return TRUE;
     172
     173    ptr = nextWISEfield (ptr); // skip to na
     174    int na = atoi (ptr);
     175
     176    if (na == 0) {
     177        star[0][0].measure.photFlags |= 0x00100000;
     178        star[1][0].measure.photFlags |= 0x00100000;
     179        star[2][0].measure.photFlags |= 0x00100000;
     180        star[3][0].measure.photFlags |= 0x00100000;
     181    } else {
     182        star[0][0].measure.photFlags |= 0x00200000;
     183        star[1][0].measure.photFlags |= 0x00200000;
     184        star[2][0].measure.photFlags |= 0x00200000;
     185        star[3][0].measure.photFlags |= 0x00200000;
     186    }
     187    return TRUE;
     188}
     189
     190int setWISE_ext_flag (Stars **star, char *ptr) {
     191
     192    int ext = atoi (ptr);
     193    if (ext == 1) {
     194        star[0][0].measure.photFlags |= 0x01000000;
     195        star[1][0].measure.photFlags |= 0x01000000;
     196        star[2][0].measure.photFlags |= 0x01000000;
     197        star[3][0].measure.photFlags |= 0x01000000;
     198    }
     199    return TRUE;
     200}
     201
     202int setWISE_sat_flag (Stars *star, char *ptr) {
     203
     204    float sat = strtod (ptr, NULL);
     205    if (sat > 0.0) {
     206        star[0].measure.photFlags |= 0x00000100;
     207    }
     208    return TRUE;
     209}
     210
     211int setWISE_var_flag (Stars *star, char qual) {
     212
     213    int value = qual = '0';
     214    assert (value >= 0);
     215    assert (value <= 9);
     216    if (value == 0) return TRUE;
     217    if (value < 5) {
     218        star[0].measure.photFlags |= 0x10000000;
     219        return TRUE;
     220    }
     221    if (value < 8) {
     222        star[0].measure.photFlags |= 0x20000000;
     223        return TRUE;
     224    }
     225    star[0].measure.photFlags |= 0x40000000;
     226    return TRUE;
    184227}
    185228
Note: See TracChangeset for help on using the changeset viewer.