IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 33107


Ignore:
Timestamp:
Jan 16, 2012, 2:56:58 PM (15 years ago)
Author:
eugene
Message:

finish up the loadwise coding

Location:
branches/eam_branches/ipp-20111122/Ohana/src/addstar
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20111122/Ohana/src/addstar/Makefile

    r32994 r33107  
    3030
    3131all: addstar sedstar load2mass skycells mkcmf loadwise loadsupercos
     32
     33INSTALL = addstar sedstar load2mass skycells mkcmf loadwise loadsupercos
    3234
    3335# I need to fix the client/server version of addstar now that I have dropped Stars
     
    294296$(BIN)/mkcmf.$(ARCH)       : $(MKCMF)
    295297
    296 INSTALL = addstar sedstar load2mass skycells mkcmf
    297 
    298298# I need to fix the client/server version of addstar now that I have dropped Stars
    299299# as an autocode type and have converted to carrying average and measure
  • branches/eam_branches/ipp-20111122/Ohana/src/addstar/src/loadwise_star_full.c

    r33106 r33107  
    22# include "WISE.h"
    33
    4 // XXX check to see if desired output format is PS1_V1 or later?  (use 16bit version if not?)
     4int setWISE_ph_qual (Stars *star, char qual);
     5int setWISE_var_flag (Stars *star, char qual);
     6int setWISE_ext_flag (Stars **star, char *ptr);
     7int setWISE_cc_flag (Stars *star, char qual);
     8int setWISE_sat_flag (Stars *star, char *ptr);
     9int setWISE_blend_flag (Stars **star, char *ptr);
    510
    611// fill in the data for a WISE quad star.  takes a pointer to the start of the line the
     
    813int loadwise_star_full (Stars **star, char *line, int Nmax) {
    914
     15  int i;
    1016  char *ptr;
    11   double jd;
    1217
    1318  if (line == NULL) Shutdown ("format error in WISE");
     
    8893  }
    8994
    90 
    91   // ptr = nextWISEfield (ptr); // x_scan
    92   // star[0][0].measure.Xccd = strtod (ptr, NULL);
    93   // star[2][0].measure.Xccd = star[1][0].measure.Xccd = star[0][0].measure.Xccd;
    94   // ptr = nextWISEfield (ptr); // jdate (julian date)
    95 
    96   jd = 2455263.0; // NOTE : WISE prelim release does not contain per-detection time info.
     95  double jd = 2455263.0; // NOTE : WISE prelim release does not contain per-detection time info.
    9796  // the release is based on data taken in the period 14 January 2010 to 29 April 2010
    9897  star[0][0].measure.t = ohana_jd_to_sec (jd);
     
    10099  star[2][0].measure.t = star[0][0].measure.t;
    101100  star[3][0].measure.t = star[0][0].measure.t;
    102 
    103   // ptr = nextWISEfield (ptr); // j_psfchi
    104   // star[0][0].measure.psfChisq = strtod (ptr, NULL);
    105   // ptr = nextWISEfield (ptr); // h_psfchi
    106   // star[1][0].measure.psfChisq = strtod (ptr, NULL);
    107   // ptr = nextWISEfield (ptr); // k_psfchi
    108   // star[2][0].measure.psfChisq = strtod (ptr, NULL);
    109   //
    110   // ptr = nextWISEfield (ptr); // j_m_stdap
    111   // star[0][0].measure.Map = strtod (ptr, NULL);
    112   // ptr = nextWISEfield (ptr); // j_msig_stdap (skip?)
    113   //
    114   // ptr = nextWISEfield (ptr); // h_m_stdap
    115   // star[1][0].measure.Map = strtod (ptr, NULL);
    116   // ptr = nextWISEfield (ptr); // h_msig_stdap (skip?)
    117   //
    118   // ptr = nextWISEfield (ptr); // k_m_stdap
    119   // star[2][0].measure.Map = strtod (ptr, NULL);
    120   // ptr = nextWISEfield (ptr); // k_msig_stdap (skip?)
    121   //
    122   // ptr = nextWISEfield (ptr); // dist_edge_ns (skip)
    123   // ptr = nextWISEfield (ptr); // dist_edge_ew (skip)
    124   // ptr = nextWISEfield (ptr); // dist_edge_flg (skip)
    125   //
    126   // ptr = nextWISEfield (ptr); // dup_src (one flag for all filters)
    127   // setWISE_dup_flag (star[0], ptr[0]);
    128   // setWISE_dup_flag (star[1], ptr[0]);
    129   // setWISE_dup_flag (star[2], ptr[0]);
    130   //
    131   // ptr = nextWISEfield (ptr); // use_src (one flag for all filters)
    132   // setWISE_use_flag (star[0], ptr[0]);
    133   // setWISE_use_flag (star[1], ptr[0]);
    134   // setWISE_use_flag (star[2], ptr[0]);
    135101
    136102  star[0][0].measure.photcode  = WISE_W1;
     
    166132}
    167133
     134# define FLAG_PH_A            0x00000001 // quality flag 'A'
     135# define FLAG_PH_B            0x00000002 // quality flag 'B'
     136# define FLAG_PH_C            0x00000004 // quality flag 'C'
     137# define FLAG_PH_U            0x00000008 // quality flag 'U'
     138# define FLAG_PH_X            0x00000010 // quality flag 'X'
     139
     140# define FLAG_SATURATED_PIX   0x00000100 // sat > 0.0
     141
     142# define FLAG_CC_PERSIST      0x00010000 // 'p' or 'P'
     143# define FLAG_CC_HALO         0x00020000 // 'h' or 'H'
     144# define FLAG_CC_GHOST        0x00020000 // 'o' or 'O' (note overloading)
     145# define FLAG_CC_SPIKE        0x00040000 // 'd' or 'D'
     146# define FLAG_CC_SPURIOUS     0x00080000 // Upper Case letters
     147
     148# define FLAG_BLEND_ACTIVE    0x00100000 // nb > 1, na == 0
     149# define FLAG_BLEND_PASSIVE   0x00200000 // nb > 1, na == 1
     150
     151# define FLAG_EXTENDED        0x01000000 // ext == 1
     152
     153# define FLAG_VARIABLE_LEVEL1 0x10000000 // var_flg == 1 to 4
     154# define FLAG_VARIABLE_LEVEL2 0x20000000 // var_flg == 5 to 7
     155# define FLAG_VARIABLE_LEVEL3 0x40000000 // var_flg == 8 or 9
     156
    168157int setWISE_blend_flag (Stars **star, char *ptr) {
    169158
     
    175164
    176165    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;
     166        star[0][0].measure.photFlags |= FLAG_BLEND_ACTIVE;
     167        star[1][0].measure.photFlags |= FLAG_BLEND_ACTIVE;
     168        star[2][0].measure.photFlags |= FLAG_BLEND_ACTIVE;
     169        star[3][0].measure.photFlags |= FLAG_BLEND_ACTIVE;
    181170    } 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 
    190 int 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;
     171        star[0][0].measure.photFlags |= FLAG_BLEND_PASSIVE;
     172        star[1][0].measure.photFlags |= FLAG_BLEND_PASSIVE;
     173        star[2][0].measure.photFlags |= FLAG_BLEND_PASSIVE;
     174        star[3][0].measure.photFlags |= FLAG_BLEND_PASSIVE;
    198175    }
    199176    return TRUE;
     
    204181    float sat = strtod (ptr, NULL);
    205182    if (sat > 0.0) {
    206         star[0].measure.photFlags |= 0x00000100;
    207     }
    208     return TRUE;
    209 }
    210 
    211 int 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;
     183        star[0].measure.photFlags |= FLAG_SATURATED_PIX;
     184    }
    226185    return TRUE;
    227186}
     
    230189
    231190  switch (qual) {
    232     case 'p': star[0].measure.photFlags |= 0x00010000; break;
    233     case 'P': star[0].measure.photFlags |= 0x00010000; break;
    234     case 'h': star[0].measure.photFlags |= 0x00020000; break;
    235     case 'H': star[0].measure.photFlags |= 0x00020000; break;
    236     case 'd': star[0].measure.photFlags |= 0x00040000; break;
    237     case 'D': star[0].measure.photFlags |= 0x00040000; break;
    238     case 'o': star[0].measure.photFlags |= 0x00020000; break;
    239     case 'O': star[0].measure.photFlags |= 0x00020000; break;
     191    case 'p': star[0].measure.photFlags |= FLAG_CC_PERSIST; break;
     192    case 'h': star[0].measure.photFlags |= FLAG_CC_HALO;    break;
     193    case 'd': star[0].measure.photFlags |= FLAG_CC_SPIKE;   break;
     194    case 'o': star[0].measure.photFlags |= FLAG_CC_GHOST;   break;
     195
     196    case 'P': star[0].measure.photFlags |= FLAG_CC_PERSIST | FLAG_CC_SPURIOUS; break;
     197    case 'H': star[0].measure.photFlags |= FLAG_CC_HALO    | FLAG_CC_SPURIOUS; break;
     198    case 'D': star[0].measure.photFlags |= FLAG_CC_SPIKE   | FLAG_CC_SPURIOUS; break;
     199    case 'O': star[0].measure.photFlags |= FLAG_CC_GHOST   | FLAG_CC_SPURIOUS; break;
     200
    240201    case '0': break;
    241202    default:
     
    246207}
    247208
     209int setWISE_ext_flag (Stars **star, char *ptr) {
     210
     211    int ext = atoi (ptr);
     212    if (ext == 1) {
     213        star[0][0].measure.photFlags |= FLAG_EXTENDED;
     214        star[1][0].measure.photFlags |= FLAG_EXTENDED;
     215        star[2][0].measure.photFlags |= FLAG_EXTENDED;
     216        star[3][0].measure.photFlags |= FLAG_EXTENDED;
     217    }
     218    return TRUE;
     219}
     220
     221int setWISE_var_flag (Stars *star, char qual) {
     222
     223    int value = qual - '0';
     224    assert (value >= 0);
     225    assert (value <= 9);
     226    if (value == 0) return TRUE;
     227    if (value < 5) {
     228        star[0].measure.photFlags |= FLAG_VARIABLE_LEVEL1;
     229        return TRUE;
     230    }
     231    if (value < 8) {
     232        star[0].measure.photFlags |= FLAG_VARIABLE_LEVEL2;
     233        return TRUE;
     234    }
     235    star[0].measure.photFlags |= FLAG_VARIABLE_LEVEL3;
     236    return TRUE;
     237}
     238
    248239int setWISE_ph_qual (Stars *star, char qual) {
    249240
    250241  switch (qual) {
    251     case 'A': star[0].measure.photFlags |= 0x00000001; break; // was: 0x0004
    252     case 'B': star[0].measure.photFlags |= 0x00000002; break; // was: 0x0005
    253     case 'C': star[0].measure.photFlags |= 0x00000004; break; // was: 0x0006
    254     case 'U': star[0].measure.photFlags |= 0x00000040; break; // was: 0x0001
    255     case 'X': star[0].measure.photFlags |= 0x00000080; break; // was: 0x0000
     242    case 'A': star[0].measure.photFlags |= FLAG_PH_A; break;
     243    case 'B': star[0].measure.photFlags |= FLAG_PH_B; break;
     244    case 'C': star[0].measure.photFlags |= FLAG_PH_C; break;
     245    case 'U': star[0].measure.photFlags |= FLAG_PH_U; break;
     246    case 'X': star[0].measure.photFlags |= FLAG_PH_X; break;
    256247    default:
    257248      fprintf (stderr, "error!\n");
     
    261252}
    262253
    263 int setWISE_rd_flag (Stars *star, char qual) {
    264 
    265   switch (qual) {
    266     case '0': star[0].measure.photFlags |= 0x00000100; break; // was: 0x0000
    267     case '1': star[0].measure.photFlags |= 0x00000200; break; // was: 0x0010
    268     case '2': star[0].measure.photFlags |= 0x00000400; break; // was: 0x0020
    269     case '3': star[0].measure.photFlags |= 0x00000800; break; // was: 0x0030
    270     case '4': star[0].measure.photFlags |= 0x00001000; break; // was: 0x0040
    271     case '6': star[0].measure.photFlags |= 0x00002000; break; // was: 0x0050
    272     case '9': star[0].measure.photFlags |= 0x00004000; break; // was: 0x0060
    273     default:
    274       fprintf (stderr, "error!\n");
    275       exit (2);
    276   }     
    277   return (TRUE);
    278 }
    279 
    280 int setWISE_bl_flag (Stars *star, char qual) {
    281 
    282   switch (qual) {
    283     case '0': star[0].measure.photFlags &= ~0x00300000; break; // was: ~0x0008
    284     case '1': star[0].measure.photFlags |=  0x00100000; break; // was: ~0x0008
    285     default:  star[0].measure.photFlags |=  0x00200000; break; // was:  0x0008
    286   }     
    287   return (TRUE);
    288 }
    289 
    290 int setWISE_gal_flag (Stars *star, char qual) {
    291 
    292   switch (qual) {
    293     case '0': star[0].measure.photFlags &= ~0x00c00000; break; // was: ~0x0080
    294     case '1': star[0].measure.photFlags |=  0x00400000; break; // was: ~0x0080
    295     default:  star[0].measure.photFlags |=  0x00800000;        // was:  0x0080
    296       star[0].measure.extNsigma = 100.0;
    297       break;
    298   }     
    299   return (TRUE);
    300 }
    301 
    302 int setWISE_mp_flag (Stars *star, char qual) {
    303 
    304   switch (qual) {
    305     case '0': star[0].measure.photFlags &= ~0x03000000; break; // was: ~0x0800
    306     case '1': star[0].measure.photFlags |=  0x01000000; break; // was: ~0x0800
    307     default:  star[0].measure.photFlags |=  0x02000000; break; // was:  0x0800
    308   }     
    309   return (TRUE);
    310 }
    311 
    312 int setWISE_dup_flag (Stars *star, char qual) {
    313 
    314   switch (qual) {
    315     case '0': star[0].measure.photFlags &= ~0x0c000000; break; // was: ~0x1000
    316     case '1': star[0].measure.photFlags |=  0x04000000; break; // was: ~0x1000
    317     default:  star[0].measure.photFlags |=  0x08000000; break; // was:  0x1000
    318   }     
    319   return (TRUE);
    320 }
    321 
    322 int setWISE_use_flag (Stars *star, char qual) {
    323 
    324   switch (qual) {
    325     case '0': star[0].measure.photFlags &= ~0x10000000; break; // was: ~0x2000
    326     case '1': star[0].measure.photFlags |=  0x10000000; break; // was:  0x2000
    327     default:  abort();
    328   }     
    329   return (TRUE);
    330 }
    331 
    332 // unused photFlags:
    333 // 0x0000.8000
    334 // 0x0004.0000
    335 // 0x0008.0000
    336 // 0x2000.0000
    337 // 0x4000.0000
    338 // 0x8000.0000
     254/* unused photFlag bits:
     255
     2560x0000.0020
     2570x0000.0040
     2580x0000.0080
     259
     2600x0000.0200
     2610x0000.0400
     2620x0000.0800
     263
     2640x0000.1000
     2650x0000.2000
     2660x0000.4000
     2670x0000.8000
     268
     2690x0040.0000
     2700x0080.0000
     271
     2720x0200.0000
     2730x0400.0000
     2740x0800.0000
     275
     2760x8000.0000
     277
     278*/
Note: See TracChangeset for help on using the changeset viewer.