IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 10, 2022, 6:27:35 AM (4 years ago)
Author:
eugene
Message:

adding WISE and UKIRT ingest code

Location:
branches/eam_branches/ipp-20220316/Ohana/src/addstar
Files:
4 added
5 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20220316/Ohana/src/addstar/include/WISE.h

    r42166 r42189  
    3838int loadwise_star_allsky  (Measure *measure, char *line, int Nmax);
    3939int loadwise_star_allwise (Measure *measure, char *line, int Nmax);
    40 int loadwise_star_catwise (Measure *measure, char *line, int Nmax, double Rs, double Ds);
     40int loadwise_star_catwise (Average *average, Measure *measure, char *line, int Nmax, WISE_Stars *tstars);
    4141
    4242char *nextWISEfield (char *line);
  • branches/eam_branches/ipp-20220316/Ohana/src/addstar/src/args_loadwise.c

    r42166 r42189  
    5050  if ((N = get_argument (*argc, argv, "-v"))) {
    5151    VERBOSE = TRUE;
     52    remove_argument (N, argc, argv);
     53  }
     54
     55  /* accept proper-motion data from reference */
     56  ACCEPT_MOTION = FALSE;
     57  if ((N = get_argument (*argc, argv, "-accept-motion"))) {
     58    ACCEPT_MOTION = TRUE;
    5259    remove_argument (N, argc, argv);
    5360  }
  • branches/eam_branches/ipp-20220316/Ohana/src/addstar/src/loadwise_ops.c

    r42166 r42189  
    1919  if (MODE == MODE_CATWISE) {
    2020      // copy the string ranges and then use strtod (not necessary?)
    21       *R = strtod (&ptr[47], NULL); // safe to use the strtod on the line because it is white-space separated
     21      *R = strtod (&ptr[47], NULL); // safe to use strtod on the line because it is white-space separated
    2222      *D = strtod (&ptr[59], NULL);
    2323  } else {
  • branches/eam_branches/ipp-20220316/Ohana/src/addstar/src/loadwise_rawdata.c

    r42166 r42189  
    7171        if (*p == '\\') goto skip_header;
    7272        if (*p == '|') goto skip_header;
    73       }
    74       if (skipHeader && (MODE == MODE_CATWISE)) {
    75         // once we get past the header, do not skip any more
    76         skipHeader = FALSE;
     73        skipHeader = FALSE; // once we get past the header, do not skip any more
    7774      }
    7875
     
    9491
    9592      /* start of the next line */
    96       p = q + 1;
     93      p = q + 1; // q is always RETURN char on this line
    9794      offset = p - buffer; // offset within this scan
    9895      if (offset == Nbyte) {
     
    104101      q = memchr (p, '\n', Nbyte - offset);
    105102      if (q == NULL) {
    106         // last, incomplete line in buffer
     103        // we are on the last, incomplete line in buffer
    107104        Nextra = Nbyte - offset;
    108105        break;
     
    183180            break;
    184181          case MODE_CATWISE:
    185             loadwise_star_catwise (&newcat->measure[Nmeas], &buffer[offset], Nbyte - offset, tstars[j].R, tstars[j].D);
     182            loadwise_star_catwise (&newcat->average[Nave], &newcat->measure[Nmeas], &buffer[offset], Nbyte - offset, &tstars[j]);
    186183            break;
    187184          default:
  • branches/eam_branches/ipp-20220316/Ohana/src/addstar/src/loadwise_star_full.c

    r42166 r42189  
    88int setWISE_blend_flag (Measure *measure, char *ptr);
    99
     10int setCatWISE_ab_flag (Measure *measure, char qual);
     11
    1012// fill in the data for a CatWISE double star.  takes a pointer to the start of the line the
    1113// RA and DEC have already been set
    12 int loadwise_star_catwise (Measure *measure, char *line, int Nmax, double Rs, double Ds) {
     14int loadwise_star_catwise (Average *average, Measure *measure, char *line, int Nmax, WISE_Stars *tstars) {
    1315
    1416  if (line == NULL) Shutdown ("format error in WISE");
     
    2224  // already been extracted.
    2325
    24   measure[0].R    = Rs;
    25   measure[0].D    = Ds;
    26   measure[1].R    = Rs;
    27   measure[1].D    = Ds;
     26  measure[0].R    = tstars->R;
     27  measure[0].D    = tstars->D;
     28  measure[1].R    = tstars->R;
     29  measure[1].D    = tstars->D;
     30
     31  // P.M. values go on average:
     32  average[0].uR  = getDoubleNAN (line, 1194, 1203); // PMRA
     33  average[0].uD  = getDoubleNAN (line, 1204, 1213); // PMDec
     34  average[0].duR = getDoubleNAN (line, 1214, 1222); // sigPMRA
     35  average[0].duD = getDoubleNAN (line, 1223, 1231); // sigPMDec
    2836
    2937  // I can assign dRA and dDEC to dX and dY if I can consistently set posangle and pltscale
    30   measure[0].dXccd = ToShortPixels(getDoubleRAW (line, 71, 79) + 0.005); // sig_ra -- add 5/1000 to avoid truncation
    31   measure[0].dYccd = ToShortPixels(getDoubleRAW (line, 80, 88) + 0.005); // sig_dec
     38  measure[0].dXccd = ToShortPixels(getDoubleNAN (line, 71, 79) + 0.005); // sig_ra -- add 5/1000 to avoid truncation
     39  measure[0].dYccd = ToShortPixels(getDoubleNAN (line, 80, 88) + 0.005); // sig_dec
    3240  measure[0].posangle = 0.0;
    3341  measure[0].pltscale = 1.0;
     
    3947  measure[1].pltscale = measure[0].pltscale;
    4048
    41   measure[0].Xccd = getDoubleRAW (line,  98, 106); // wx
    42   measure[0].Yccd = getDoubleRAW (line, 107, 115); // wy
     49  measure[0].Xccd = getDoubleNAN (line,  98, 106); // wx
     50  measure[0].Yccd = getDoubleNAN (line, 107, 115); // wy
    4351  measure[1].Xccd = measure[0].Xccd;
    4452  measure[1].Yccd = measure[0].Yccd;
     
    4755  measure[0].M         = getDoubleNAN (line, 248, 254); // w1mpro
    4856  measure[0].dM        = getDoubleNAN (line, 255, 264); // w1sigmpro
    49   measure[0].psfChisq  = getDoubleRAW (line, 265, 275); // w1rchi2
    50   measure[0].psfQF     = measure[0].psfChisq;
     57  measure[0].psfChisq  = getDoubleNAN (line, 265, 275); // w1rchi2
    5158  measure[0].photFlags = 0;
     59
     60  measure[0].Mkron     = getDoubleNAN (line, 563, 572); // w1mag_4
     61  measure[0].dMkron    = getDoubleNAN (line, 573, 582); // w1sigm_4
     62  measure[0].Map       = getDoubleNAN (line, 339, 345); // w1mag
     63  measure[0].dMap      = getDoubleNAN (line, 346, 352); // w1sigm
     64
     65  measure[0].Xfix      = getDoubleNAN (line, 880, 891); // w1k
     66  measure[0].Yfix      = getDoubleNAN (line, 989, 903); // w1mLQ
    5267
    5368  // W2
    5469  measure[1].M         = getDoubleNAN (line, 276, 282); // w2mpro
    5570  measure[1].dM        = getDoubleNAN (line, 283, 292); // w2sigmpro
    56   measure[1].psfChisq  = getDoubleRAW (line, 293, 303); // w2rchi2
    57   measure[1].psfQF     = measure[1].psfChisq;
     71  measure[1].psfChisq  = getDoubleNAN (line, 293, 303); // w2rchi2
    5872  measure[1].photFlags = 0;
    5973
    60   setCatWISE_blend_flag (measure, line); // w1sat
     74  measure[1].Mkron     = getDoubleNAN (line, 591, 600); // w2mag_4
     75  measure[1].dMkron    = getDoubleNAN (line, 601, 610); // w2sigm_4
     76  measure[1].Map       = getDoubleNAN (line, 367, 373); // w2mag
     77  measure[1].dMap      = getDoubleNAN (line, 374, 380); // w2sigm
     78
     79  measure[1].Xfix      = getDoubleNAN (line, 995,  1006); // w2k
     80  measure[1].Yfix      = getDoubleNAN (line, 1013, 1018); // w2mLQ
     81
     82  measure[0].psfQF     = getDoubleNAN (line, 304, 314); // rchi2
     83  measure[1].psfQF     = measure[0].psfQF;
     84
     85  setCatWISE_blend_flag (measure, line); // na & nb
    6186
    6287  setCatWISE_sat_flag (&measure[0], line, 323, 330); // w1sat
    6388  setCatWISE_sat_flag (&measure[1], line, 331, 338); // w2sat
    6489
    65   // cc_flags? 1642 - 1657
    66   // setWISE_cc_flag (&measure[0], ptr[i]); // cc_flags
    67 
    68   // set ext flags for all 4 measures
    69   // setCatWISE_ext_flag_allsky (measure, ptr[0]); // ext_flg
    70 
    71   // setWISE_var_flag_allsky (&measure[0], ptr[i]); // var_flg
    72 
    73   // setWISE_ph_qual (&measure[i], ptr[i]); // ph_qual
    74 
    75   double mjdmean = getDoubleRAW (line, 1126, 1138); // MeanObsMJD
     90  // cc_flags is a field which takes 15 chars, but only 4 are used
     91  // bytes 1653 - 1656 are the allWise cc_flag entries for W1, W2, W3, W4
     92  // skip lines for which the 4 chars have the value 'null'
     93  if (strncmp(&line[1653], "null", 4)) {
     94      setWISE_cc_flag (&measure[0], line[1653]); // W1 cc_flag
     95      setWISE_cc_flag (&measure[1], line[1654]); // W2 cc_flag
     96  }
     97
     98  // cc_flags is a field which takes 8 chars, but only 2 are used
     99  // bytes 1735 & 1736 are the ab_flag entries for W1 & W2
     100  // they use the same values as cc_flags
     101  setCatWISE_ab_flag (&measure[0], line[1735]); // W1 ab_flag
     102  setCatWISE_ab_flag (&measure[1], line[1736]); // W2 ab_flag
     103
     104  double mjdmean = getDoubleNAN (line, 1126, 1138); // MeanObsMJD
    76105 
    77106  // the release is based on data taken in the period 14 January 2010 to 29 April 2010
     
    575604  }
    576605  return TRUE;
     606}
     607
     608int setCatWISE_ab_flag (Measure *measure, char qual) {
     609
     610  switch (qual) {
     611    case 'P': measure[0].photFlags2 |= FLAG_CC_PERSIST | FLAG_CC_SPURIOUS; break;
     612    case 'H': measure[0].photFlags2 |= FLAG_CC_HALO    | FLAG_CC_SPURIOUS; break;
     613    case 'D': measure[0].photFlags2 |= FLAG_CC_SPIKE   | FLAG_CC_SPURIOUS; break;
     614    case 'O': measure[0].photFlags2 |= FLAG_CC_GHOST   | FLAG_CC_SPURIOUS; break;
     615
     616    case '0': break;
     617    default:
     618      fprintf (stderr, "error in ab_flag: %c\n", qual);
     619  }     
     620  return (TRUE);
    577621}
    578622
Note: See TracChangeset for help on using the changeset viewer.