IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 37848


Ignore:
Timestamp:
Jan 17, 2015, 5:51:44 AM (12 years ago)
Author:
eugene
Message:

add options to extract joined measures in avextract

Location:
branches/eam_branches/ipp-20150112/Ohana/src/libdvo
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20150112/Ohana/src/libdvo/include/dvodb.h

    r37807 r37848  
    236236      MEAS_RA_GALMODEL,      // model pm prediction
    237237      MEAS_DEC_GALMODEL,     // model pm prediction
    238 };
     238} dvoMeasureType;
    239239
    240240/* average fields */
     
    288288      AVE_RA_GALMODEL,      // model pm prediction
    289289      AVE_DEC_GALMODEL,     // model pm prediction
    290 };
     290} dvoAverageType;
    291291
    292292//       AVE_NPHOT,
     
    364364      IMAGE_REF_COLOR_BLUE,
    365365      IMAGE_REF_COLOR_RED
    366 };
     366} dvoImageType;
    367367
    368368enum {DVO_TABLE_AVERAGE, DVO_TABLE_MEASURE, DVO_TABLE_IMAGE};
     
    382382  int extract;
    383383  int table;
    384   int ID;
     384  int ID; // may be either dvoMeasureType or dvoAverageType
    385385
    386386  dvoMagSourceType magSource; // chip, (forced) warp, stack [only relevant for averages]
  • branches/eam_branches/ipp-20150112/Ohana/src/libdvo/src/dbExtractAverages.c

    r37807 r37848  
    5353
    5454  // off_t i;
     55  int n;
    5556  dbValue value;
    5657
     
    186187    case AVE_PHOT:
    187188      // if we request mag:ave, use equiv for photcode (ie a given measure, say GPC1.g.XY01, will return g for mag:ave)
    188       if  (field->photcode->type == PHOT_MAG) {
    189         // this is an error
    190         break;
    191       }
    192 
    193       // if we ask for 2MASS_K, etc (REF values), return NAN unless measure->code matches
    194       if (field->photcode->type == PHOT_REF) {
    195         // need to ensure measure exists.
    196         break;
    197       }
    198 
    199       // if we ask for GPC1.g.XY03:rel, etc (DEP values), return NAN unless measure->code matches
    200       if (field->photcode->type == PHOT_DEP) {
    201         // again.
    202         break;
    203       }
    204 
    205       /* in some cases below we need a measurement which matches the requested photcode.
    206          here is some sample code to find this.
    207 
    208           for (i = 0; i < average[0].Nmeasure; i++) {
    209             if (field->photcode->code != measure[i].photcode) continue;
    210             value.Flt = measure[i].M;
    211             break;
    212           }
    213       */
     189
     190      // this is an error (no exposed photcodes should be of type PHOT_MAG)
     191      if  (field->photcode->type == PHOT_MAG) break;
    214192
    215193      switch (field->magOption) {
     
    220198              break;
    221199            case MAG_LEVEL_REF:
    222               // which measure is needed here?
    223               // PhotRef  (field->photcode, average, secfilt, measure, field->magClass, field->magSource);
    224200              break;
    225201            case MAG_LEVEL_INST:
     202              // find an appropriate measure (if one exists)
     203              for (n = 0; n < average->Nmeasure; n++) {
     204                if (field->photcode->code != measure[n].photcode) continue;
     205                value.Flt = PhotInst (&measure[n], field->magClass);
     206                break;
     207              }
     208              break;
    226209            case MAG_LEVEL_CAT:
     210              // find an appropriate measure (if one exists)
     211              for (n = 0; n < average->Nmeasure; n++) {
     212                if (field->photcode->code != measure[n].photcode) continue;
     213                value.Flt = PhotCat (&measure[n], field->magClass);
     214                break;
     215              }
     216              break;
    227217            case MAG_LEVEL_SYS:
     218              // find an appropriate measure (if one exists)
     219              for (n = 0; n < average->Nmeasure; n++) {
     220                if (field->photcode->code != measure[n].photcode) continue;
     221                value.Flt = PhotSys  (&measure[n], average, secfilt, field->magClass);
     222                break;
     223              }
     224              break;
    228225            case MAG_LEVEL_REL:
     226              // find an appropriate measure (if one exists)
     227              for (n = 0; n < average->Nmeasure; n++) {
     228                if (field->photcode->code != measure[n].photcode) continue;
     229                value.Flt = PhotRel (&measure[n], average, secfilt, field->magClass);
     230                break;
     231              }
     232              break;
    229233            case MAG_LEVEL_CAL:
    230234            case MAG_LEVEL_NONE:
     
    243247            case MAG_LEVEL_SYS:
    244248            case MAG_LEVEL_REL:
     249              // find an appropriate measure (if one exists)
     250              for (n = 0; n < average->Nmeasure; n++) {
     251                if (field->photcode->code != measure[n].photcode) continue;
     252                value.Flt = PhotErr (&measure[n], field->magClass);
     253                break;
     254              }
     255              break;
    245256            case MAG_LEVEL_CAL:
    246257            case MAG_LEVEL_NONE:
     
    259270              break;
    260271            case MAG_LEVEL_INST:
     272              // find an appropriate measure (if one exists)
     273              for (n = 0; n < average->Nmeasure; n++) {
     274                if (field->photcode->code != measure[n].photcode) continue;
     275                value.Flt = PhotFluxInst (&measure[n], field->magClass);
     276                break;
     277              }
     278              break;
    261279            case MAG_LEVEL_CAT:
     280              // find an appropriate measure (if one exists)
     281              for (n = 0; n < average->Nmeasure; n++) {
     282                if (field->photcode->code != measure[n].photcode) continue;
     283                value.Flt = PhotFluxCat (&measure[n], field->magClass);
     284                break;
     285              }
     286              break;
    262287            case MAG_LEVEL_SYS:
     288              // find an appropriate measure (if one exists)
     289              for (n = 0; n < average->Nmeasure; n++) {
     290                if (field->photcode->code != measure[n].photcode) continue;
     291                value.Flt = PhotFluxSys (&measure[n], average, secfilt, field->magClass);
     292                break;
     293              }
     294              break;
    263295            case MAG_LEVEL_REL:
     296              // find an appropriate measure (if one exists)
     297              for (n = 0; n < average->Nmeasure; n++) {
     298                if (field->photcode->code != measure[n].photcode) continue;
     299                value.Flt = PhotFluxRel (&measure[n], average, secfilt, field->magClass);
     300                break;
     301              }
     302              break;
    264303            case MAG_LEVEL_CAL:
    265304            case MAG_LEVEL_NONE:
     
    278317            case MAG_LEVEL_SYS:
    279318            case MAG_LEVEL_REL:
     319              // find an appropriate measure (if one exists)
     320              for (n = 0; n < average->Nmeasure; n++) {
     321                if (field->photcode->code != measure[n].photcode) continue;
     322                value.Flt = PhotFluxInstErr (&measure[n], field->magClass);
     323                break;
     324              }
     325              break;
    280326            case MAG_LEVEL_CAL:
    281327            case MAG_LEVEL_NONE:
Note: See TracChangeset for help on using the changeset viewer.