IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 16, 2009, 11:33:52 AM (17 years ago)
Author:
eugene
Message:

merge changes from eam_branch_20090208: add PS1_V1 formats; rename average.code to flags, image.code to flags; some opihi function name clarification; drop Stars as autocode struct; rework addstar to isolate input -> Measure conversions

Location:
trunk/Ohana/src/relphot
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/relphot/include/relphot.h

    r21153 r21508  
    2323  short Xm;
    2424  float secz;
    25   char code;
     25  char flags;
    2626  Coords coords;
    2727} Mosaic;
  • trunk/Ohana/src/relphot/src/GridOps.c

    r20936 r21508  
    369369
    370370      // skip stars marked as BAD
    371       if (catalog[c].average[n].code & STAR_BAD) {
     371      if (catalog[c].average[n].flags & STAR_BAD) {
    372372        Nrel ++;
    373373        continue;
  • trunk/Ohana/src/relphot/src/ImageOps.c

    r20936 r21508  
    244244  if (i == -1) return (NAN);
    245245
    246   if (image[i].code & IMAGE_BAD) return (NAN); 
     246  if (image[i].flags & IMAGE_BAD) return (NAN); 
    247247  value = image[i].Mcal;
    248248  return (value);
     
    285285    /* on PoorImages run, skip good images */
    286286    if (PoorImages) {
    287       bad = image[i].code & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);
     287      bad = image[i].flags & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);
    288288      if (!bad) continue;
    289289    }     
     
    331331      mark = (N < IMAGE_TOOFEW) || (N < IMAGE_GOOD_FRACTION*Nlist[i]);
    332332      if (mark) {
    333         image[i].code |= ID_IMAGE_FEW;
     333        image[i].flags |= ID_IMAGE_FEW;
    334334        Nfew ++;
    335335      } else {
    336         image[i].code &= ~ID_IMAGE_FEW;
     336        image[i].flags &= ~ID_IMAGE_FEW;
    337337      }     
    338338    }
     
    373373
    374374  for (i = N = 0; i < Nimage; i++) {
    375     if (image[i].code & IMAGE_BAD) continue;
     375    if (image[i].flags & IMAGE_BAD) continue;
    376376    mlist[N] = fabs (image[i].Mcal);
    377377    slist[N] = image[i].dMcal;
     
    390390  for (i = 0; i < Nimage; i++) {
    391391    mark = FALSE;
    392     image[i].code &= ~ID_IMAGE_POOR;
     392    image[i].flags &= ~ID_IMAGE_POOR;
    393393    mark = (image[i].dMcal > MaxScatter) || (fabs(image[i].Mcal - MedOffset) > MaxOffset);
    394394    if (mark) {
    395395      Nmark ++;
    396       image[i].code |= ID_IMAGE_POOR;
     396      image[i].flags |= ID_IMAGE_POOR;
    397397    } else {
    398       image[i].code &= ~ID_IMAGE_POOR;
     398      image[i].flags &= ~ID_IMAGE_POOR;
    399399    }
    400400  }
     
    470470  n = 0;
    471471  for (i = 0; i < Nimage; i++) {
    472     if (image[i].code & IMAGE_BAD)  continue;
     472    if (image[i].flags & IMAGE_BAD)  continue;
    473473
    474474    N = 0;
     
    512512  for (i = 0; i < Nimage; i++) {
    513513
    514     if (image[i].code & IMAGE_BAD)  continue;
     514    if (image[i].flags & IMAGE_BAD)  continue;
    515515
    516516    list[n] = pow (10.0, 0.01*image[i].Xm);
     
    540540  for (i = 0; i < Nimage; i++) {
    541541
    542     if (image[i].code & IMAGE_BAD)  continue;
     542    if (image[i].flags & IMAGE_BAD)  continue;
    543543
    544544    list[n] = image[i].Mcal;
     
    568568  for (i = 0; i < Nimage; i++) {
    569569
    570     if (image[i].code & IMAGE_BAD)  continue;
     570    if (image[i].flags & IMAGE_BAD)  continue;
    571571
    572572    list[n] = image[i].dMcal;
  • trunk/Ohana/src/relphot/src/MosaicOps.c

    r20323 r21508  
    6868    mosaic[Nmosaic].dMcal = 0.0;
    6969    mosaic[Nmosaic].Xm    = 0.0;
    70     mosaic[Nmosaic].code  = image[i].code;
     70    mosaic[Nmosaic].flags  = image[i].flags;
    7171    mosaic[Nmosaic].secz  = image[i].secz;
    7272
     
    183183      image[im].dMcal = mosaic[i].dMcal;
    184184      image[im].Xm = mosaic[i].Xm;
    185       image[im].code |= (mosaic[i].code & ID_IMAGE_FEW);
    186       image[im].code |= (mosaic[i].code & ID_IMAGE_POOR);
     185      image[im].flags |= (mosaic[i].flags & ID_IMAGE_FEW);
     186      image[im].flags |= (mosaic[i].flags & ID_IMAGE_POOR);
    187187    }
    188188  }     
     
    306306  if (i == -1) return (NAN);
    307307
    308   if (mosaic[i].code & IMAGE_BAD) return (NAN); 
     308  if (mosaic[i].flags & IMAGE_BAD) return (NAN); 
    309309  value = mosaic[i].Mcal;
    310310  return (value);
     
    343343    /* on PoorImages run, skip good images */
    344344    if (PoorImages) {
    345       bad = mosaic[i].code & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);
     345      bad = mosaic[i].flags & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);
    346346      if (!bad) continue;
    347347    }     
     
    393393      if (mark) {
    394394        fprintf (stderr, "marked image %s (%d), (%d < %d) || (%d < %f*%d)\n", image[imlist[i][0]].name, i, N, IMAGE_TOOFEW, N, IMAGE_GOOD_FRACTION, Nlist[i]);
    395         mosaic[i].code |= ID_IMAGE_FEW;
     395        mosaic[i].flags |= ID_IMAGE_FEW;
    396396        Nfew ++;
    397397      } else {
    398         mosaic[i].code &= ~ID_IMAGE_FEW;
     398        mosaic[i].flags &= ~ID_IMAGE_FEW;
    399399      }
    400400    }
     
    434434  n = 0;
    435435  for (i = 0; i < Nmosaic; i++) {
    436     if (mosaic[i].code & IMAGE_BAD) continue;
     436    if (mosaic[i].flags & IMAGE_BAD) continue;
    437437    list[n] = mosaic[i].Mcal;
    438438    dlist[n] = 1;
     
    462462  for (i = 0; i < Nmosaic; i++) {
    463463
    464     if (mosaic[i].code & IMAGE_BAD) continue;
     464    if (mosaic[i].flags & IMAGE_BAD) continue;
    465465    list[n] = mosaic[i].dMcal;
    466466    dlist[n] = 1;
     
    490490  n = 0;
    491491  for (i = 0; i < Nmosaic; i++) {
    492     if (mosaic[i].code & IMAGE_BAD)  continue;
     492    if (mosaic[i].flags & IMAGE_BAD)  continue;
    493493
    494494    N = 0;
     
    534534  for (i = 0; i < Nmosaic; i++) {
    535535
    536     if (mosaic[i].code & IMAGE_BAD) continue;
     536    if (mosaic[i].flags & IMAGE_BAD) continue;
    537537    list[n] = pow(10.0, 0.01*mosaic[i].Xm);
    538538    dlist[n] = 1;
     
    564564
    565565  for (i = N = 0; i < Nmosaic; i++) {
    566     if (mosaic[i].code & IMAGE_BAD) continue;
     566    if (mosaic[i].flags & IMAGE_BAD) continue;
    567567    mlist[N] = mosaic[i].Mcal;
    568568    slist[N] = mosaic[i].dMcal;
     
    584584    if (mark) {
    585585      Nmark ++;
    586       mosaic[i].code |= ID_IMAGE_POOR;
     586      mosaic[i].flags |= ID_IMAGE_POOR;
    587587    } else {
    588       mosaic[i].code &= ~ID_IMAGE_POOR;
     588      mosaic[i].flags &= ~ID_IMAGE_POOR;
    589589    }
    590590  }
  • trunk/Ohana/src/relphot/src/StarOps.c

    r21153 r21508  
    2626
    2727  ave = catalog[cat].measure[meas].averef;
    28   if (catalog[cat].average[ave].code & STAR_BAD) return (NAN); 
     28  if (catalog[cat].average[ave].flags & STAR_BAD) return (NAN); 
    2929 
    3030  value = catalog[cat].secfilt[PhotNsec*ave+PhotSec].M;
     
    4444
    4545      /* calculate the average value for a single star */
    46       if (catalog[i].average[j].code & STAR_BAD) continue; 
     46      if (catalog[i].average[j].flags & STAR_BAD) continue; 
    4747      m = catalog[i].average[j].measureOffset;
    4848
     
    8989
    9090      if (N <= STAR_TOOFEW) { /* too few measurements */
    91         catalog[i].average[j].code |= ID_STAR_FEW;
     91        catalog[i].average[j].flags |= ID_STAR_FEW;
    9292        Nfew ++;
    9393      } else {
    94         catalog[i].average[j].code &= ~ID_STAR_FEW;
     94        catalog[i].average[j].flags &= ~ID_STAR_FEW;
    9595      }
    9696
     
    208208
    209209          // XXX this is a hack for the 2MASS search; better to save an average value?
    210           if (catalog[i].measure[m].qPSF < 0.85) continue;
     210          if (catalog[i].measure[m].psfQual < 0.85) continue;
    211211
    212212          list[N] = Msys - catalog[i].measure[m].Mcal;
     
    280280  for (i = Ntot = 0; i < Ncatalog; i++) {
    281281    for (j = 0; j < catalog[i].Naverage; j++) {
    282       if (catalog[i].average[j].code & STAR_BAD) continue;
     282      if (catalog[i].average[j].flags & STAR_BAD) continue;
    283283      Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
    284284      if (Xm == -1) continue;
     
    306306      mark = (dM > MaxScatter) || (Xm == NAN_S_SHORT) || (Chisq > MaxChisq);
    307307      if (mark) {
    308         catalog[i].average[j].code |= ID_STAR_POOR;
     308        catalog[i].average[j].flags |= ID_STAR_POOR;
    309309        Ndel ++;
    310310      } else {
    311         catalog[i].average[j].code &= ~ID_STAR_POOR;
     311        catalog[i].average[j].flags &= ~ID_STAR_POOR;
    312312      }
    313313      Nave ++;
     
    351351
    352352      /* skip bad stars to prevent them from becoming good (on inner sample) */
    353       if (catalog[i].average[j].code & STAR_BAD) continue; 
     353      if (catalog[i].average[j].flags & STAR_BAD) continue; 
    354354
    355355      /* on final processing, skip stars already measured */
     
    448448
    449449      /* calculate the average value for a single star */
    450       if (catalog[i].average[j].code & STAR_BAD) continue; 
     450      if (catalog[i].average[j].flags & STAR_BAD) continue; 
    451451      m = catalog[i].average[j].measureOffset;
    452452
     
    493493
    494494      /* calculate the average value for a single star */
    495       if (catalog[i].average[j].code & STAR_BAD) continue; 
     495      if (catalog[i].average[j].flags & STAR_BAD) continue; 
    496496
    497497      Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
     
    529529
    530530      /* calculate the average value for a single star */
    531       if (catalog[i].average[j].code & STAR_BAD) continue; 
     531      if (catalog[i].average[j].flags & STAR_BAD) continue; 
    532532
    533533      dM = catalog[i].secfilt[PhotNsec*j+PhotSec].dM;
     
    559559  for (i = 0; i < Ncatalog; i++) {
    560560    for (j = 0; j < catalog[i].Naverage; j++) {
    561       if (catalog[i].average[j].code & STAR_BAD) continue; 
     561      if (catalog[i].average[j].flags & STAR_BAD) continue; 
    562562      dMrel = catalog[i].secfilt[PhotNsec*j+PhotSec].dM;
    563563      bin = dMrel / 0.00025;
     
    590590  for (i = 0; i < Ncatalog; i++) {
    591591    for (j = 0; j < catalog[i].Naverage; j++) {
    592       if (catalog[i].average[j].code & STAR_BAD) continue;
     592      if (catalog[i].average[j].flags & STAR_BAD) continue;
    593593      xlist[N] = catalog[i].secfilt[PhotNsec*j+PhotSec].M;
    594594      value    = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm;
  • trunk/Ohana/src/relphot/src/bcatalog.c

    r20323 r21508  
    3434      subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].M  = NAN;
    3535      subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].dM = NAN;
    36       subcatalog[0].average[Naverage].code &= ~ID_STAR_FEW;
    37       subcatalog[0].average[Naverage].code &= ~ID_STAR_POOR;
     36      subcatalog[0].average[Naverage].flags &= ~ID_STAR_FEW;
     37      subcatalog[0].average[Naverage].flags &= ~ID_STAR_POOR;
    3838    }
    3939
     
    5555      /* select measurements by quality */
    5656      // XXX ignore this criterion for REF measurements?
    57       if (DophotSelect && (catalog[0].measure[offset].dophot != DophotValue)) continue;
     57      // XXX chnage this to select by bitflags
     58      if (DophotSelect && ((catalog[0].measure[offset].photFlags >> 16) != DophotValue)) continue;
    5859
    5960      /* select measurements by mag limit */
  • trunk/Ohana/src/relphot/src/plot_scatter.c

    r20193 r21508  
    2323
    2424      /* calculate the average value for a single star */
    25       if (catalog[i].average[j].code & STAR_BAD) continue; 
     25      if (catalog[i].average[j].flags & STAR_BAD) continue; 
    2626      m = catalog[i].average[j].measureOffset;
    2727
  • trunk/Ohana/src/relphot/src/relphot_objects.c

    r21153 r21508  
    4242      Nsecfilt = catalog.Nsecfilt;
    4343      for (j = 0; j < catalog.Naverage; j++) {
    44         catalog.average[j].code = 0;
     44        catalog.average[j].flags = 0;
    4545        for (k = 0; k < Nsecfilt; k++) {
    46           catalog.secfilt[j*Nsecfilt + k].M  = NAN;
    47           catalog.secfilt[j*Nsecfilt + k].dM = NAN;
    48           catalog.secfilt[j*Nsecfilt + k].Xm = NAN_S_SHORT;
     46          catalog.secfilt[j*Nsecfilt + k].M     = NAN;
     47          catalog.secfilt[j*Nsecfilt + k].M_20  = NAN_S_SHORT;
     48          catalog.secfilt[j*Nsecfilt + k].M_80  = NAN_S_SHORT;
     49          catalog.secfilt[j*Nsecfilt + k].dM    = NAN;
     50          catalog.secfilt[j*Nsecfilt + k].Xm    = NAN_S_SHORT;
    4951          catalog.secfilt[j*Nsecfilt + k].Ncode = 0;
    5052          catalog.secfilt[j*Nsecfilt + k].Nused = 0;
    51           catalog.secfilt[j*Nsecfilt + k].dummy = 0;
    5253        }
    5354        m = catalog.average[j].measureOffset;
  • trunk/Ohana/src/relphot/src/select_images.c

    r15509 r21508  
    133133      image[nimage] = timage[i];
    134134      /* always allow 'few' images to succeed, if possible */
    135       if (image[nimage].code & ID_IMAGE_FEW) {
    136         image[nimage].code &= ~(ID_IMAGE_FEW | ID_IMAGE_POOR);
     135      if (image[nimage].flags & ID_IMAGE_FEW) {
     136        image[nimage].flags &= ~(ID_IMAGE_FEW | ID_IMAGE_POOR);
    137137      }
    138138      if (RESET) {
    139139        assignMcal (&image[nimage], (double *) NULL, -1);
    140140        image[nimage].dMcal = NAN;
    141         image[nimage].code &= ~ID_IMAGE_POOR;
     141        image[nimage].flags &= ~ID_IMAGE_POOR;
    142142      }
    143143      line_number[nimage] = i;
  • trunk/Ohana/src/relphot/src/setMrelFinal.c

    r17201 r21508  
    5454  /* clear ID_STAR_POOR, ID_STAR_FEW, ID_MEAS_NOCAL values before writing ??? */
    5555  for (i = 0; i < catalog[0].Naverage; i++) {
    56     catalog[0].average[i].code &= ~ID_STAR_FEW;
    57     catalog[0].average[i].code &= ~ID_STAR_POOR;
     56    catalog[0].average[i].flags &= ~ID_STAR_FEW;
     57    catalog[0].average[i].flags &= ~ID_STAR_POOR;
    5858    m = catalog[0].average[i].measureOffset;
    5959    for (j = 0; j < catalog[0].average[i].Nmeasure; j++, m++) {
     
    102102
    103103      /* skip measurements with sat. dophot values */
    104       if ((pass < 4) && (catalog[0].measure[m].dophot == 10)) goto skip;
     104      // XXX we need to fix this: use the photFlags to ID saturation...
     105      // if ((pass < 4) && (catalog[0].measure[m].dophot == 10)) goto skip;
    105106
    106107      /* skip measurements from BAD images and mosaics */
     
    116117      }
    117118
    118       d1 = (catalog[0].measure[m].dophot == 1);
    119       d2 = (catalog[0].measure[m].dophot == 2);
     119      // d1 = (catalog[0].measure[m].dophot == 1);
     120      // d2 = (catalog[0].measure[m].dophot == 2);
     121      fprintf (stderr, "fix the dophot / type selections!");
     122      abort ();
    120123
    121124      /* skip measurements by measurement error */
Note: See TracChangeset for help on using the changeset viewer.