IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 11, 2012, 10:22:14 AM (14 years ago)
Author:
eugene
Message:

calculate mean psfQF, psfQFperf, stargal

Location:
branches/eam_branches/ipp-20120905/Ohana/src/relphot/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20120905/Ohana/src/relphot/src/StarOps.c

    r34424 r34427  
    1111  int Nmos;
    1212  int Ngrid;
    13   double *list;
    14   double *dlist;
    15   double *wlist;
    16   double *aplist;
    17   double *kronlist;
    18   double *dkronlist;
     13
     14  // NOTE: the following arrays are (possibly) pre-allocated and carried down to each
     15  // thread.  The first 3 (list, dlist, wlist) are used in all relphot analyses; the
     16  // others are only used on the final output steps.
     17
     18  double *list;               // list of measure.mag values for a given star
     19  double *dlist;              // mag errors for a star
     20  double *wlist;              // weights to use for mean mags
     21  double *aplist;             // ap mags for a star
     22  double *kronlist;           // kron mags for a star
     23  double *dkronlist;          // kron mag errors
     24
     25  double *psfqf_list;         // psfqf for all filters
     26  double *psfqfperf_list;     // psfqfperf for all filters
     27  double *stargal_list;       // stargal for all filters
    1928} SetMrelInfo;
    2029
     
    168177  ALLOCATE (results.dkronlist, double, Nmax);
    169178
     179  ALLOCATE (results.psfqf_list, double, Nmax);
     180  ALLOCATE (results.psfqfperf_list, double, Nmax);
     181  ALLOCATE (results.stargal_list, double, Nmax);
     182
    170183  for (i = 0; i < Ncatalog; i++) {
    171184    setMrel_catalog  (catalog, i, pass, flatcorr, &results, Nsecfilt); // XXX add arguments as needed for options
     
    178191  free (results.kronlist);
    179192  free (results.dkronlist);
     193
     194  free (results.psfqf_list);
     195  free (results.psfqfperf_list);
     196  free (results.stargal_list);
    180197  return (TRUE);
    181198}
     
    315332  liststats_setmode (&kronstats, STATMODE);
    316333
     334  // StatType psfstats;
     335  // liststats_setmode (&psfstats, "MEAN");
     336
    317337  double *list      = results->list;
    318338  double *dlist     = results->dlist;
     
    322342  double *dkronlist = results->dkronlist;
    323343
     344  double *psfqf_list     = results->psfqf_list;
     345  double *psfqfperf_list = results->psfqfperf_list;
     346  double *stargal_list   = results->stargal_list;
     347
    324348  SetMrelInfoInit (results, FALSE); // do not allocate list,dlist,wlist arrays
    325349
     
    350374    int NextPS1 = 0;
    351375    int NpsfPS1 = 0;
     376
     377    int Nmeas = 0; // number of meas used for psfqf, psfqfperf, and stargal
    352378
    353379    int Ns;
     
    425451
    426452        if (isSetMrelFinal) {
     453          // Map (aplist) and Mkron (kronlist,dkronlist) are used to calculate mean mags per filter
    427454          float Map = PhotAper (&catalog[Nc].measure[m]);
    428455          aplist[N] = Map - Mcal - Mmos - Mgrid;
     
    431458          kronlist[N] = Mkron - Mcal - Mmos - Mgrid;
    432459          dkronlist[N] = catalog[Nc].measure[m].dMkron;
     460
     461          // mean psfQF, psfQFperf, and stargal values are calculated per object (all filters)
     462          psfqf_list[Nmeas]     = catalog[Nc].measure[m].psfQF;
     463          psfqfperf_list[Nmeas] = catalog[Nc].measure[m].psfQF;
     464          stargal_list[Nmeas]   = catalog[Nc].measure[m].extNsigma;
    433465
    434466          // special options for PS1 data
     
    554586        }
    555587        N++;
     588        Nmeas++;
    556589      }
    557590
     
    720753        catalog[Nc].average[j].flags |= ID_OBJ_GOOD_ALT;
    721754      }
     755
     756      // use NAN values for catalog[Nc].average[j].psfQF as signal
     757      if (!isfinite(catalog[Nc].average[j].psfQF)) {
     758        // do something here
     759        float psfQFmax     = 0.0;
     760        float psfQFperfmax = 0.0;
     761        float stargalmax   = 0.0;
     762        int seq;
     763        for (seq = 0; seq < Nmeas; seq++) {
     764          if (isfinite(psfqf_list[seq])) {
     765            psfQFmax     = MAX (psfqf_list[seq], psfQFmax);
     766          }
     767          if (isfinite(psfqfperf_list[seq])) {
     768            psfQFperfmax = MAX (psfqfperf_list[seq], psfQFperfmax);
     769          }
     770          if (isfinite(stargal_list[seq])) {
     771            stargalmax   = MAX (stargal_list[seq], stargalmax);
     772          }
     773        }
     774
     775        catalog[Nc].average[j].psfQF     = psfQFmax;
     776        catalog[Nc].average[j].psfQFperf = psfQFperfmax;
     777        catalog[Nc].average[j].stargal   = stargalmax;
     778      }
    722779    }
    723780  }
  • branches/eam_branches/ipp-20120905/Ohana/src/relphot/src/liststats.c

    r33963 r34427  
    3838    dsortthree (value, dvalue, weight, N);
    3939  } else {
    40     dsortpair (value, dvalue, N);
     40    if (dvalue) {
     41      dsortpair (value, dvalue, N);
     42    } else {
     43      dsort (value, N);
     44    }
    4145  }
    4246
  • branches/eam_branches/ipp-20120905/Ohana/src/relphot/src/relphot_objects.c

    r34423 r34427  
    8585      for (j = 0; j < catalog.Naverage; j++) {
    8686        catalog.average[j].flags &= astromBits; // reset all except astrometry bits
     87        catalog.average[j].psfQF     = NAN;     // reset (will be re-calculated here)
     88        catalog.average[j].psfQFperf = NAN;     // reset (will be re-calculated here)
     89        catalog.average[j].stargal   = NAN;     // reset (will be re-calculated here)
    8790        for (k = 0; k < Nsecfilt; k++) {
    88           catalog.secfilt[j*Nsecfilt + k].M      = NAN;
    89           catalog.secfilt[j*Nsecfilt + k].Map    = NAN;
    90           catalog.secfilt[j*Nsecfilt + k].dM     = NAN;
    91           catalog.secfilt[j*Nsecfilt + k].Mstdev = NAN_S_SHORT;
    92           catalog.secfilt[j*Nsecfilt + k].Xm     = NAN;
    93           catalog.secfilt[j*Nsecfilt + k].M_20   = NAN_S_SHORT;
    94           catalog.secfilt[j*Nsecfilt + k].M_80   = NAN_S_SHORT;
    95           catalog.secfilt[j*Nsecfilt + k].Ncode  = 0;
    96           catalog.secfilt[j*Nsecfilt + k].Nused  = 0;
     91          dvo_secfilt_init (&catalog.secfilt[j*Nsecfilt + k]);
    9792          catalog.secfilt[j*Nsecfilt + k].flags &= ~secfiltBits; // XXX: only reset photom bits:
    98           catalog.secfilt[j*Nsecfilt + k].flags  = 0;            // XXX: reset all secfilt flag bits:
    99           catalog.secfilt[j*Nsecfilt + k].ubercalDist = 1000;
    10093        }
    10194      }
  • branches/eam_branches/ipp-20120905/Ohana/src/relphot/src/setMrelFinal.c

    r34405 r34427  
    9494  }
    9595
     96  for (i = 0; i < catalog[0].Naverage; i++) {
     97    catalog[0].average[i].psfQF     = NAN;      // force recalculation below
     98    catalog[0].average[i].psfQFperf = NAN;      // force recalculation below
     99    catalog[0].average[i].stargal   = NAN;      // force recalculation below
     100  }
     101
    96102  // XXX make this optional? (do not clean for -averages?)
    97103  if (!simpleAverage) clean_measures (catalog, 1, TRUE, flatcorr);    /* mark outliers ID_MEAS_POOR_PHOTOM */
Note: See TracChangeset for help on using the changeset viewer.