IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 30, 2008, 7:45:21 AM (18 years ago)
Author:
eugene
Message:

modify functions to use both int and flt vectors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbExtractMeasures.c

    r18221 r20857  
    7070
    7171/* return measure.field based on the selection */
    72 double dbExtractMeasures (Average *average, SecFilt *secfilt, Measure *measure, dbField *field) {
     72dbValue dbExtractMeasures (Average *average, SecFilt *secfilt, Measure *measure, dbField *field) {
    7373
    7474  int Nsec;
    75   double value;
     75  dbValue value;
    7676  double ra, dec, x, y, dT;
    7777
     
    7979  PhotCode *equiv;
    8080
    81   value = NAN;
     81  value.Flt = NAN;
     82  value.Int =   0;
    8283
    8384  switch (field->ID) {
     
    9697      switch (field->magMode) {
    9798        case MAG_INST:
    98           value = PhotInst (measure); 
     99          value.Flt = PhotInst (measure); 
    99100          break;
    100101        case MAG_CAT:
    101           value = PhotCat  (measure);
     102          value.Flt = PhotCat  (measure);
    102103          break;
    103104        case MAG_SYS:
    104           value = PhotSys  (measure, average, secfilt);
     105          value.Flt = PhotSys  (measure, average, secfilt);
    105106          break;
    106107        case MAG_REL:
    107           value = PhotRel  (measure, average, secfilt);
     108          value.Flt = PhotRel  (measure, average, secfilt);
    108109          break;
    109110        case MAG_CAL:
    110           value = PhotCal  (measure, average, secfilt, measure, equiv);
     111          value.Flt = PhotCal  (measure, average, secfilt, measure, equiv);
    111112          break;
    112113        case MAG_AVE:
    113           value = PhotAve  (equiv, average, secfilt);
     114          value.Flt = PhotAve  (equiv, average, secfilt);
    114115          break;
    115116        case MAG_REF:
    116           value = PhotRef  (equiv, average, secfilt, measure);
     117          value.Flt = PhotRef  (equiv, average, secfilt, measure);
    117118          break;
    118119        case MAG_ERR:
    119120          if (field->photcode->type == PHOT_SEC) {
    120             value = PhotdM  (equiv, average, secfilt);
     121            value.Flt = PhotdM  (equiv, average, secfilt);
    121122          } else {
    122             value = measure[0].dM;
     123            value.Flt = measure[0].dM;
    123124          }
    124125          break;
    125126        case MAG_CHISQ:
    126           value = PhotXm  (equiv, average, secfilt);
     127          value.Flt = PhotXm  (equiv, average, secfilt);
    127128          break;
    128129        case MAG_NCODE:
    129130          if (equiv == NULL) {
    130             value = NAN;
     131            value.Int = 0;
    131132            break;
    132133          }
    133134          Nsec = GetPhotcodeNsec (equiv->code);
    134135          if (Nsec == -1) break;
    135           value = secfilt[Nsec].Ncode;
     136          value.Int = secfilt[Nsec].Ncode;
    136137          break;
    137138        case MAG_NPHOT:
    138139          if (equiv == NULL) {
    139             value = NAN;
     140            value.Int = NAN;
    140141            break;
    141142          }
    142143          Nsec = GetPhotcodeNsec (equiv->code);
    143144          if (Nsec == -1) break;
    144           value = secfilt[Nsec].Nused;
     145          value.Int = secfilt[Nsec].Nused;
    145146          break;
    146147      }
    147148      break;
    148149    case MEAS_RA: /* OK */
    149       value = average[0].R - measure[0].dR / 3600.0;
     150      value.Flt = average[0].R - measure[0].dR / 3600.0;
    150151      break;
    151152    case MEAS_DEC: /* OK */
    152       value = average[0].D - measure[0].dD / 3600.0;
     153      value.Flt = average[0].D - measure[0].dD / 3600.0;
    153154      break;
    154155    case MEAS_RA_AVE: /* OK */
    155       value = average[0].R;
     156      value.Flt = average[0].R;
    156157      break;
    157158    case MEAS_DEC_AVE: /* OK */
    158       value = average[0].D;
     159      value.Flt = average[0].D;
    159160      break;
    160161
     
    164165        haveGalacticMeas = TRUE;
    165166      }
    166       value = GLON_MEAS;
     167      value.Flt = GLON_MEAS;
    167168      break;
    168169    case MEAS_GLAT:
     
    171172        haveGalacticMeas = TRUE;
    172173      }
    173       value = GLAT_MEAS;
     174      value.Flt = GLAT_MEAS;
    174175      break;
    175176    case MEAS_ELON:
     
    178179        haveEclipticMeas = TRUE;
    179180      }
    180       value = ELON_MEAS;
     181      value.Flt = ELON_MEAS;
    181182      break;
    182183    case MEAS_ELAT:
     
    185186        haveEclipticMeas = TRUE;
    186187      }
    187       value = ELAT_MEAS;
     188      value.Flt = ELAT_MEAS;
    188189      break;
    189190
     
    193194        haveGalacticAve = TRUE;
    194195      }
    195       value = GLON_AVE;
     196      value.Flt = GLON_AVE;
    196197      break;
    197198    case MEAS_GLAT_AVE:
     
    200201        haveGalacticAve = TRUE;
    201202      }
    202       value = GLAT_AVE;
     203      value.Flt = GLAT_AVE;
    203204      break;
    204205    case MEAS_ELON_AVE:
     
    207208        haveEclipticAve = TRUE;
    208209      }
    209       value = ELON_AVE;
     210      value.Flt = ELON_AVE;
    210211      break;
    211212    case MEAS_ELAT_AVE:
     
    214215        haveEclipticAve = TRUE;
    215216      }
    216       value = ELAT_AVE;
     217      value.Flt = ELAT_AVE;
    217218      break;
    218219
    219220    case MEAS_RA_AVE_ERR: /* OK */
    220       value = average[0].dR;
     221      value.Flt = average[0].dR;
    221222      break;
    222223    case MEAS_DEC_AVE_ERR: /* OK */
    223       value = average[0].dD;
     224      value.Flt = average[0].dD;
    224225      break;
    225226    case MEAS_U_RA: /* OK */
    226       value = average[0].uR;
     227      value.Flt = average[0].uR;
    227228      break;
    228229    case MEAS_U_DEC: /* OK */
    229       value = average[0].uD;
     230      value.Flt = average[0].uD;
    230231      break;
    231232    case MEAS_U_RA_ERR: /* OK */
    232       value = average[0].duR;
     233      value.Flt = average[0].duR;
    233234      break;
    234235    case MEAS_U_DEC_ERR: /* OK */
    235       value = average[0].duD;
     236      value.Flt = average[0].duD;
    236237      break;
    237238    case MEAS_PAR: /* OK */
    238       value = average[0].R;
     239      value.Flt = average[0].R;
    239240      break;
    240241    case MEAS_PAR_ERR: /* OK */
    241       value = average[0].D;
     242      value.Flt = average[0].D;
    242243      break;
    243244    case MEAS_XP: /* OK */
    244       value = average[0].Xp;
     245      value.Flt = average[0].Xp;
    245246      break;
    246247    case MEAS_NMEAS: /* OK */
    247       value = average[0].Nmeasure;
     248      value.Int = average[0].Nmeasure;
    248249      break;
    249250    case MEAS_NMISS: /* OK */
    250       value = average[0].Nmissing;
     251      value.Int = average[0].Nmissing;
    251252      break;
    252253    case MEAS_OBJFLAGS: /* OK */
    253       value = average[0].code;
     254      value.Int = average[0].code;
    254255      break;
    255256    // note that these represent the ra displacement relative to the average, not
    256257    // the error.
    257258    case MEAS_RA_OFFSET: /* OK */
    258       value = measure[0].dR;
     259      value.Flt = measure[0].dR;
    259260      break;
    260261    case MEAS_DEC_OFFSET: /* OK */
    261       value = measure[0].dD;
     262      value.Flt = measure[0].dD;
    262263      break;
    263264    case MEAS_RA_FIT_OFFSET: /* OK */
    264265      dT = (measure[0].t - TimeRefPM) / (86400*365.25);
    265       value = average[0].uR * dT + measure[0].dR;
     266      value.Flt = average[0].uR * dT + measure[0].dR;
    266267      break;
    267268    case MEAS_DEC_FIT_OFFSET: /* OK */
    268269      dT = (measure[0].t - TimeRefPM) / (86400*365.25);
    269       value = average[0].uD * dT + measure[0].dD;
     270      value.Flt = average[0].uD * dT + measure[0].dD;
    270271      break;
    271272    case MEAS_RA_OFFSET_ERR: /* OK */
    272       value = NAN;
     273      value.Flt = NAN;
    273274      break;
    274275    case MEAS_DEC_OFFSET_ERR: /* OK */
    275       value = NAN;
     276      value.Flt = NAN;
    276277      break;
    277278    case MEAS_AIRMASS: /* OK */
    278       value = measure[0].airmass;
     279      value.Flt = measure[0].airmass;
    279280      break;
    280281    case MEAS_AZ: /* OK */
    281       value = measure[0].az;
     282      value.Flt = measure[0].az;
    282283      break;
    283284    case MEAS_EXPTIME: /* OK */
    284       value = pow (10.0, measure[0].dt * 0.4);
     285      value.Flt = pow (10.0, measure[0].dt * 0.4);
    285286      break;
    286287    case MEAS_PHOTCODE: /* OK */
    287       value = measure[0].photcode;
     288      value.Int = measure[0].photcode;
    288289      break;
    289290    case MEAS_TIME: /* OK */
    290       value = TimeValue (measure[0].t, TimeReference, TimeFormat);
     291      value.Flt = TimeValue (measure[0].t, TimeReference, TimeFormat);
    291292      break;
    292293    case MEAS_FWHM: /* OK */
    293       value = 0.01*(measure[0].FWx + measure[0].FWy) / 2.0;
     294      value.Flt = 0.01*(measure[0].FWx + measure[0].FWy) / 2.0;
    294295      break;
    295296    case MEAS_FWHM_MAJ: /* OK */
    296       value = 0.01*measure[0].FWx;
     297      value.Flt = 0.01*measure[0].FWx;
    297298      break;
    298299    case MEAS_FWHM_MIN: /* OK */
    299       value = 0.01*measure[0].FWy;
     300      value.Flt = 0.01*measure[0].FWy;
    300301      break;
    301302    case MEAS_THETA: /* OK */
    302       value = measure[0].theta;
     303      value.Flt = measure[0].theta;
    303304      break;
    304305    case MEAS_DOPHOT: /* OK */
    305       value = measure[0].dophot;
     306      value.Flt = measure[0].dophot;
    306307      break;
    307308    case MEAS_DB_FLAGS: /* ? */
    308       value = measure[0].dbFlags;
     309      value.Int = measure[0].dbFlags;
    309310      break;
    310311    case MEAS_PHOT_FLAGS: /* ? */
    311       value = measure[0].photFlags;
     312      value.Int = measure[0].photFlags;
    312313      break;
    313314    case MEAS_XCCD: /* OK */
    314315/* I need to perform this conversion for ELIXIR and LONEOS formats on load */     
    315316# if 1
    316       value = measure[0].Xccd;
     317      value.Flt = measure[0].Xccd;
    317318# else
    318319      {
     
    323324        if (image == NULL) break;
    324325        RD_to_XY (&x, &y, ra, dec, &image[0].coords);
    325         value = x;
     326        value.Flt = x;
    326327      }
    327328# endif
     
    330331/* I need to perform this conversion for ELIXIR and LONEOS formats on load */     
    331332# if 1
    332       value = measure[0].Yccd;
     333      value.Flt = measure[0].Yccd;
    333334# else
    334335      {
     
    339340        if (image == NULL) break;
    340341        RD_to_XY (&x, &y, ra, dec, &image[0].coords);
    341         value = y;
     342        value.Flt = y;
    342343      }
    343344# endif
     
    349350      if (mosaic == NULL) break;
    350351      RD_to_XY (&x, &y, ra, dec, mosaic);
    351       value = x;
     352      value.Flt = x;
    352353      break;
    353354    case MEAS_YMOSAIC: /* OK */
     
    357358      if (mosaic == NULL) break;
    358359      RD_to_XY (&x, &y, ra, dec, mosaic);
    359       value = y;
     360      value.Flt = y;
    360361      break;
    361362
    362363    case MEAS_SKY: /* OK */
    363       value = measure[0].Sky;
     364      value.Flt = measure[0].Sky;
    364365      break;
    365366    case MEAS_dSKY: /* OK */
    366       value = measure[0].dSky;
     367      value.Flt = measure[0].dSky;
    367368      break;
    368369    case MEAS_DET_ID: /* OK */
    369       value = measure[0].detID;
     370      value.Int = measure[0].detID;
    370371      break;
    371372    case MEAS_OBJ_ID: /* OK */
    372       value = measure[0].averef;
     373      value.Int = measure[0].averef;
    373374      break;
    374375    case MEAS_IMAGE_ID: /* OK */
    375       value = measure[0].imageID;
     376      value.Int = measure[0].imageID;
    376377      break;
    377378    case MEAS_PSF_QF: /* OK */
    378       value = measure[0].qPSF;
     379      value.Flt = measure[0].qPSF;
    379380      break;
    380381    case MEAS_PSF_CHISQ: /* OK */
    381       value = measure[0].psfChisq;
     382      value.Flt = measure[0].psfChisq;
    382383      break;
    383384    case MEAS_CR_NSIGMA: /* OK */
    384       value = measure[0].crNsigma;
     385      value.Flt = measure[0].crNsigma;
    385386      break;
    386387    case MEAS_EXT_NSIGMA: /* OK */
    387       value = measure[0].extNsigma;
     388      value.Flt = measure[0].extNsigma;
    388389      break;
    389390    case MEAS_STARGAL: /* OK */
    390       value = measure[0].stargal;
    391       break;
     391      value.Flt = measure[0].stargal;
     392      break;
     393
     394      // add the star/galaxy sep --
    392395  }
    393396  return (value);
Note: See TracChangeset for help on using the changeset viewer.