- Timestamp:
- Nov 30, 2008, 7:45:21 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbExtractMeasures.c
r18221 r20857 70 70 71 71 /* return measure.field based on the selection */ 72 d ouble dbExtractMeasures (Average *average, SecFilt *secfilt, Measure *measure, dbField *field) {72 dbValue dbExtractMeasures (Average *average, SecFilt *secfilt, Measure *measure, dbField *field) { 73 73 74 74 int Nsec; 75 d ouble value;75 dbValue value; 76 76 double ra, dec, x, y, dT; 77 77 … … 79 79 PhotCode *equiv; 80 80 81 value = NAN; 81 value.Flt = NAN; 82 value.Int = 0; 82 83 83 84 switch (field->ID) { … … 96 97 switch (field->magMode) { 97 98 case MAG_INST: 98 value = PhotInst (measure);99 value.Flt = PhotInst (measure); 99 100 break; 100 101 case MAG_CAT: 101 value = PhotCat (measure);102 value.Flt = PhotCat (measure); 102 103 break; 103 104 case MAG_SYS: 104 value = PhotSys (measure, average, secfilt);105 value.Flt = PhotSys (measure, average, secfilt); 105 106 break; 106 107 case MAG_REL: 107 value = PhotRel (measure, average, secfilt);108 value.Flt = PhotRel (measure, average, secfilt); 108 109 break; 109 110 case MAG_CAL: 110 value = PhotCal (measure, average, secfilt, measure, equiv);111 value.Flt = PhotCal (measure, average, secfilt, measure, equiv); 111 112 break; 112 113 case MAG_AVE: 113 value = PhotAve (equiv, average, secfilt);114 value.Flt = PhotAve (equiv, average, secfilt); 114 115 break; 115 116 case MAG_REF: 116 value = PhotRef (equiv, average, secfilt, measure);117 value.Flt = PhotRef (equiv, average, secfilt, measure); 117 118 break; 118 119 case MAG_ERR: 119 120 if (field->photcode->type == PHOT_SEC) { 120 value = PhotdM (equiv, average, secfilt);121 value.Flt = PhotdM (equiv, average, secfilt); 121 122 } else { 122 value = measure[0].dM;123 value.Flt = measure[0].dM; 123 124 } 124 125 break; 125 126 case MAG_CHISQ: 126 value = PhotXm (equiv, average, secfilt);127 value.Flt = PhotXm (equiv, average, secfilt); 127 128 break; 128 129 case MAG_NCODE: 129 130 if (equiv == NULL) { 130 value = NAN;131 value.Int = 0; 131 132 break; 132 133 } 133 134 Nsec = GetPhotcodeNsec (equiv->code); 134 135 if (Nsec == -1) break; 135 value = secfilt[Nsec].Ncode;136 value.Int = secfilt[Nsec].Ncode; 136 137 break; 137 138 case MAG_NPHOT: 138 139 if (equiv == NULL) { 139 value = NAN;140 value.Int = NAN; 140 141 break; 141 142 } 142 143 Nsec = GetPhotcodeNsec (equiv->code); 143 144 if (Nsec == -1) break; 144 value = secfilt[Nsec].Nused;145 value.Int = secfilt[Nsec].Nused; 145 146 break; 146 147 } 147 148 break; 148 149 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; 150 151 break; 151 152 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; 153 154 break; 154 155 case MEAS_RA_AVE: /* OK */ 155 value = average[0].R;156 value.Flt = average[0].R; 156 157 break; 157 158 case MEAS_DEC_AVE: /* OK */ 158 value = average[0].D;159 value.Flt = average[0].D; 159 160 break; 160 161 … … 164 165 haveGalacticMeas = TRUE; 165 166 } 166 value = GLON_MEAS;167 value.Flt = GLON_MEAS; 167 168 break; 168 169 case MEAS_GLAT: … … 171 172 haveGalacticMeas = TRUE; 172 173 } 173 value = GLAT_MEAS;174 value.Flt = GLAT_MEAS; 174 175 break; 175 176 case MEAS_ELON: … … 178 179 haveEclipticMeas = TRUE; 179 180 } 180 value = ELON_MEAS;181 value.Flt = ELON_MEAS; 181 182 break; 182 183 case MEAS_ELAT: … … 185 186 haveEclipticMeas = TRUE; 186 187 } 187 value = ELAT_MEAS;188 value.Flt = ELAT_MEAS; 188 189 break; 189 190 … … 193 194 haveGalacticAve = TRUE; 194 195 } 195 value = GLON_AVE;196 value.Flt = GLON_AVE; 196 197 break; 197 198 case MEAS_GLAT_AVE: … … 200 201 haveGalacticAve = TRUE; 201 202 } 202 value = GLAT_AVE;203 value.Flt = GLAT_AVE; 203 204 break; 204 205 case MEAS_ELON_AVE: … … 207 208 haveEclipticAve = TRUE; 208 209 } 209 value = ELON_AVE;210 value.Flt = ELON_AVE; 210 211 break; 211 212 case MEAS_ELAT_AVE: … … 214 215 haveEclipticAve = TRUE; 215 216 } 216 value = ELAT_AVE;217 value.Flt = ELAT_AVE; 217 218 break; 218 219 219 220 case MEAS_RA_AVE_ERR: /* OK */ 220 value = average[0].dR;221 value.Flt = average[0].dR; 221 222 break; 222 223 case MEAS_DEC_AVE_ERR: /* OK */ 223 value = average[0].dD;224 value.Flt = average[0].dD; 224 225 break; 225 226 case MEAS_U_RA: /* OK */ 226 value = average[0].uR;227 value.Flt = average[0].uR; 227 228 break; 228 229 case MEAS_U_DEC: /* OK */ 229 value = average[0].uD;230 value.Flt = average[0].uD; 230 231 break; 231 232 case MEAS_U_RA_ERR: /* OK */ 232 value = average[0].duR;233 value.Flt = average[0].duR; 233 234 break; 234 235 case MEAS_U_DEC_ERR: /* OK */ 235 value = average[0].duD;236 value.Flt = average[0].duD; 236 237 break; 237 238 case MEAS_PAR: /* OK */ 238 value = average[0].R;239 value.Flt = average[0].R; 239 240 break; 240 241 case MEAS_PAR_ERR: /* OK */ 241 value = average[0].D;242 value.Flt = average[0].D; 242 243 break; 243 244 case MEAS_XP: /* OK */ 244 value = average[0].Xp;245 value.Flt = average[0].Xp; 245 246 break; 246 247 case MEAS_NMEAS: /* OK */ 247 value = average[0].Nmeasure;248 value.Int = average[0].Nmeasure; 248 249 break; 249 250 case MEAS_NMISS: /* OK */ 250 value = average[0].Nmissing;251 value.Int = average[0].Nmissing; 251 252 break; 252 253 case MEAS_OBJFLAGS: /* OK */ 253 value = average[0].code;254 value.Int = average[0].code; 254 255 break; 255 256 // note that these represent the ra displacement relative to the average, not 256 257 // the error. 257 258 case MEAS_RA_OFFSET: /* OK */ 258 value = measure[0].dR;259 value.Flt = measure[0].dR; 259 260 break; 260 261 case MEAS_DEC_OFFSET: /* OK */ 261 value = measure[0].dD;262 value.Flt = measure[0].dD; 262 263 break; 263 264 case MEAS_RA_FIT_OFFSET: /* OK */ 264 265 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; 266 267 break; 267 268 case MEAS_DEC_FIT_OFFSET: /* OK */ 268 269 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; 270 271 break; 271 272 case MEAS_RA_OFFSET_ERR: /* OK */ 272 value = NAN;273 value.Flt = NAN; 273 274 break; 274 275 case MEAS_DEC_OFFSET_ERR: /* OK */ 275 value = NAN;276 value.Flt = NAN; 276 277 break; 277 278 case MEAS_AIRMASS: /* OK */ 278 value = measure[0].airmass;279 value.Flt = measure[0].airmass; 279 280 break; 280 281 case MEAS_AZ: /* OK */ 281 value = measure[0].az;282 value.Flt = measure[0].az; 282 283 break; 283 284 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); 285 286 break; 286 287 case MEAS_PHOTCODE: /* OK */ 287 value = measure[0].photcode;288 value.Int = measure[0].photcode; 288 289 break; 289 290 case MEAS_TIME: /* OK */ 290 value = TimeValue (measure[0].t, TimeReference, TimeFormat);291 value.Flt = TimeValue (measure[0].t, TimeReference, TimeFormat); 291 292 break; 292 293 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; 294 295 break; 295 296 case MEAS_FWHM_MAJ: /* OK */ 296 value = 0.01*measure[0].FWx;297 value.Flt = 0.01*measure[0].FWx; 297 298 break; 298 299 case MEAS_FWHM_MIN: /* OK */ 299 value = 0.01*measure[0].FWy;300 value.Flt = 0.01*measure[0].FWy; 300 301 break; 301 302 case MEAS_THETA: /* OK */ 302 value = measure[0].theta;303 value.Flt = measure[0].theta; 303 304 break; 304 305 case MEAS_DOPHOT: /* OK */ 305 value = measure[0].dophot;306 value.Flt = measure[0].dophot; 306 307 break; 307 308 case MEAS_DB_FLAGS: /* ? */ 308 value = measure[0].dbFlags;309 value.Int = measure[0].dbFlags; 309 310 break; 310 311 case MEAS_PHOT_FLAGS: /* ? */ 311 value = measure[0].photFlags;312 value.Int = measure[0].photFlags; 312 313 break; 313 314 case MEAS_XCCD: /* OK */ 314 315 /* I need to perform this conversion for ELIXIR and LONEOS formats on load */ 315 316 # if 1 316 value = measure[0].Xccd;317 value.Flt = measure[0].Xccd; 317 318 # else 318 319 { … … 323 324 if (image == NULL) break; 324 325 RD_to_XY (&x, &y, ra, dec, &image[0].coords); 325 value = x;326 value.Flt = x; 326 327 } 327 328 # endif … … 330 331 /* I need to perform this conversion for ELIXIR and LONEOS formats on load */ 331 332 # if 1 332 value = measure[0].Yccd;333 value.Flt = measure[0].Yccd; 333 334 # else 334 335 { … … 339 340 if (image == NULL) break; 340 341 RD_to_XY (&x, &y, ra, dec, &image[0].coords); 341 value = y;342 value.Flt = y; 342 343 } 343 344 # endif … … 349 350 if (mosaic == NULL) break; 350 351 RD_to_XY (&x, &y, ra, dec, mosaic); 351 value = x;352 value.Flt = x; 352 353 break; 353 354 case MEAS_YMOSAIC: /* OK */ … … 357 358 if (mosaic == NULL) break; 358 359 RD_to_XY (&x, &y, ra, dec, mosaic); 359 value = y;360 value.Flt = y; 360 361 break; 361 362 362 363 case MEAS_SKY: /* OK */ 363 value = measure[0].Sky;364 value.Flt = measure[0].Sky; 364 365 break; 365 366 case MEAS_dSKY: /* OK */ 366 value = measure[0].dSky;367 value.Flt = measure[0].dSky; 367 368 break; 368 369 case MEAS_DET_ID: /* OK */ 369 value = measure[0].detID;370 value.Int = measure[0].detID; 370 371 break; 371 372 case MEAS_OBJ_ID: /* OK */ 372 value = measure[0].averef;373 value.Int = measure[0].averef; 373 374 break; 374 375 case MEAS_IMAGE_ID: /* OK */ 375 value = measure[0].imageID;376 value.Int = measure[0].imageID; 376 377 break; 377 378 case MEAS_PSF_QF: /* OK */ 378 value = measure[0].qPSF;379 value.Flt = measure[0].qPSF; 379 380 break; 380 381 case MEAS_PSF_CHISQ: /* OK */ 381 value = measure[0].psfChisq;382 value.Flt = measure[0].psfChisq; 382 383 break; 383 384 case MEAS_CR_NSIGMA: /* OK */ 384 value = measure[0].crNsigma;385 value.Flt = measure[0].crNsigma; 385 386 break; 386 387 case MEAS_EXT_NSIGMA: /* OK */ 387 value = measure[0].extNsigma;388 value.Flt = measure[0].extNsigma; 388 389 break; 389 390 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 -- 392 395 } 393 396 return (value);
Note:
See TracChangeset
for help on using the changeset viewer.
