IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 37818 for trunk/Ohana


Ignore:
Timestamp:
Jan 12, 2015, 12:09:58 PM (12 years ago)
Author:
eugene
Message:

add allwise import code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/addstar/src/loadwise_star_full.c

    r33963 r37818  
    1010int setWISE_sat_flag (Stars *star, char *ptr);
    1111int setWISE_blend_flag (Stars **star, char *ptr);
     12
     13// fill in the data for a WISE quad star.  takes a pointer to the start of the line the
     14// RA and DEC have already been set
     15int 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)); // sig_ra
     30  ptr = nextWISEfield (ptr);
     31  star[0][0].measure.dYccd = ToShortPixels(strtod (ptr, NULL)); // 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      ptr = nextWISEfield (ptr); // skip : w1rchi2
     69
     70      // init the photFlags field
     71      star[i][0].measure.photFlags = 0;
     72  }
     73
     74  ptr = nextWISEfield (ptr); // skip: rchi2
     75
     76  // set blend flags for all 4 measures
     77  setWISE_blend_flag (star, ptr); // nb & na both used here
     78  ptr = skipNbounds (ptr, '|', 2, Nmax); // skip: nb, na
     79
     80  for (i = 0; i < 4; i++) {
     81      setWISE_sat_flag (star[i], ptr); // w1sat
     82      ptr = nextWISEfield (ptr);
     83  }
     84  ptr = nextWISEfield (ptr); // skip satnum
     85
     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
     90  }
     91  ptr = nextWISEfield (ptr); // skip cc_flags
     92  ptr = nextWISEfield (ptr); // skip rel
     93
     94  // set ext flags for all 4 measures
     95  setWISE_ext_flag_allsky (star, ptr[0]); // ext_flg
     96  ptr = nextWISEfield (ptr); // skip ext_flags
     97
     98  for (i = 0; i < 4; i++) {
     99      setWISE_var_flag_allsky (star[i], ptr[i]); // var_flg
     100  }
     101  ptr = nextWISEfield (ptr); // skip var_flags
     102
     103  for (i = 0; i < 4; i++) {
     104      setWISE_ph_qual (star[i], ptr[i]); // ph_qual
     105  }
     106
     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
     112
     113    // double mjdmin = strtod (ptr, NULL); // mjd min
     114    // ptr = nextWISEfield (ptr); // skip
     115    // double mjdmax = strtod (ptr, NULL); // mjd max
     116    // ptr = nextWISEfield (ptr); // skip mjd max
     117    double mjdmean = strtod (ptr, NULL); // mjd mean
     118    ptr = nextWISEfield (ptr); // skip mjd mean
     119
     120    // fprintf (stderr, "w%d mjd: %f\n", i, mjdmean);
     121
     122    // the release is based on data taken in the period 14 January 2010 to 29 April 2010
     123    if (mjdmean == 0.0) {
     124      star[i][0].measure.t = 0;
     125    } else {
     126      star[i][0].measure.t = ohana_mjd_to_sec (mjdmean);
     127    }
     128  }
     129
     130  star[0][0].measure.photcode  = WISE_W1;
     131  star[0][0].measure.detID   = 0;
     132  star[0][0].measure.imageID = 0;
     133
     134  star[1][0].measure.photcode  = WISE_W2;
     135  star[1][0].measure.detID   = 0;
     136  star[1][0].measure.imageID = 0;
     137
     138  star[2][0].measure.photcode  = WISE_W3;
     139  star[2][0].measure.detID   = 0;
     140  star[2][0].measure.imageID = 0;
     141
     142  star[3][0].measure.photcode  = WISE_W4;
     143  star[3][0].measure.detID   = 0;
     144  star[3][0].measure.imageID = 0;
     145
     146  return TRUE;
     147}
    12148
    13149// there are slight format differences between the prelim data dump and the allsky data dump:
Note: See TracChangeset for help on using the changeset viewer.