Changeset 28759 for trunk/ippToPsps/src
- Timestamp:
- Jul 28, 2010, 4:22:32 PM (16 years ago)
- Location:
- trunk/ippToPsps/src
- Files:
-
- 2 edited
-
ippToPspsBatchTest.c (modified) (9 diffs)
-
ippToPspsTestEnums.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippToPsps/src/ippToPspsBatchTest.c
r28662 r28759 13 13 #include "fitsio.h" 14 14 15 // Gets flux from magnitude 16 static __inline bool ippToPsps_getFlux(const float zeroPoint, const float exposureTime, const float magnitude, float* flux) { 17 18 // use uncalibrated instrumental flux 15 // Gets uncalibrated instrumental flux from magnitude 16 static __inline bool ippToPsps_getFlux(const float exposureTime, const float magnitude, float* flux, const float magnitudeErr, float* fluxErr) { 17 19 18 *flux = powf(10.0, -0.4*magnitude) / exposureTime; 20 21 // use calibrated flux in Janskys, where 3631 Jy is the zero point flux for the filter: constant over all filters because we're using AB magnitudes 22 //float flux = 3631 * powf(10.0, -0.4*(magnitude + zeroPoint)) / exposureTime; 23 24 // printf("mag=%f\texpTime=%f\tzeroPoint=%f\tflux=%f\n", magnitude, exposureTime, zeroPoint, flux); 25 return (!isfinite(*flux) || *flux < 0.000001) ? false : true; 19 if (!isfinite(*flux) || *flux < 0.000001) return false; 20 if (fluxErr) *fluxErr = fabsf((magnitudeErr * *flux)/1.085736); 21 // if (fluxErr) printf("Mag = %03.03f, Flux = %03.03f, Mag err = %03.03f, Flux Err = %03.03f\n", magnitude, *flux, magnitudeErr, *fluxErr); 22 23 return true; 26 24 } 27 25 … … 29 27 \brief test data for checking PSPS values correspond with IPP 30 28 31 */29 */ 32 30 int ippToPsps_batchTest(IppToPsps *this) { 33 31 … … 53 51 status=0; fits_read_key(fitsIn, TFLOAT, "EXPREQ", &exposureTime, NULL, &status); 54 52 status=0; fits_read_key(fitsIn, TSTRING, "FILTERID", filterType, NULL, &status); 55 56 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "FrameMeta", true);53 54 // ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "FrameMeta", true); 57 55 58 56 // FrameMeta values 59 fits_write_col(this->fitsOut, TLONG, FRAMEMETA_FRAMEID, 1, 1, 1, &this->expId, &status);57 // fits_write_col(this->fitsOut, TLONG, FRAMEMETA_FRAMEID, 1, 1, 1, &this->expId, &status); 60 58 61 59 int8_t filterID = -1; 62 60 ippToPspsConfig_getFilterId(this->config, filterType, &filterID); 63 fits_write_col(this->fitsOut, TBYTE, FRAMEMETA_FILTERID, 1, 1, 1, &filterID, &status);61 // fits_write_col(this->fitsOut, TBYTE, FRAMEMETA_FILTERID, 1, 1, 1, &filterID, &status); 64 62 65 63 // stuff to keep from psf.hdr header … … 140 138 long removeList[MAXDETECT]; 141 139 long thisObjId; 142 bool firstTimeIn = true ;140 bool firstTimeIn = true, peakFluxOk, instFluxOk; 143 141 int ippIDetNum, instMagNum, instMagErrNum, peakMagNum; 144 142 … … 198 196 199 197 // create ImageMeta 200 ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "ImageMeta", true);198 // ippToPspsConfig_writeTable(this->config, fitsIn, this->fitsOut, 1, "ImageMeta", true); 201 199 psfFwhm = (fwhmMaj+fwhmMin)/2; 202 200 momentFwhm = (momentMaj+momentMin)/2; 203 201 imageFlags = (uint64_t)pImage->flags; 204 fits_write_col(this->fitsOut, TLONG, IMAGEMETA_PHOTOCALID, 1, 1, 1, &pImage->photcode, &status);205 fits_write_col(this->fitsOut, TBYTE, IMAGEMETA_FILTERID, 1, 1, 1, &filterID, &status);206 fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PHOTOSCAT, 1, 1, 1, &zptObs, &status);207 fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PSFFWHM, 1, 1, 1, &psfFwhm, &status);208 fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PHOTOZERO, 1, 1, 1, &zptObs, &status);209 fits_write_col(this->fitsOut, TLONGLONG, IMAGEMETA_QAFLAGS, 1, 1, 1, &imageFlags, &status);202 // fits_write_col(this->fitsOut, TLONG, IMAGEMETA_PHOTOCALID, 1, 1, 1, &pImage->photcode, &status); 203 // fits_write_col(this->fitsOut, TBYTE, IMAGEMETA_FILTERID, 1, 1, 1, &filterID, &status); 204 // fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PHOTOSCAT, 1, 1, 1, &zptObs, &status); 205 // fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PSFFWHM, 1, 1, 1, &psfFwhm, &status); 206 // fits_write_col(this->fitsOut, TFLOAT, IMAGEMETA_PHOTOZERO, 1, 1, 1, &zptObs, &status); 207 // fits_write_col(this->fitsOut, TLONGLONG, IMAGEMETA_QAFLAGS, 1, 1, 1, &imageFlags, &status); 210 208 211 209 // now move BACK to detections table in smf … … 287 285 obsTimes[s] = obsTime; 288 286 289 ippToPsps_getFlux(zeroPoint, exposureTime, instMagErr[s], &instFluxErr[s]); 287 peakFluxOk = ippToPsps_getFlux(exposureTime, peakMag[s], &peakFlux[s], 0.0, NULL); 288 instFluxOk = ippToPsps_getFlux(exposureTime, instMag[s], &instFlux[s], instMagErr[s], &instFluxErr[s]); 290 289 291 290 // check for invalid flux values (if not already labelled as a duplicate) 292 if ((!ippToPsps_getFlux(zeroPoint, exposureTime, peakMag[s], &peakFlux[s]) || 293 !ippToPsps_getFlux(zeroPoint, exposureTime, instMag[s], &instFlux[s])) && !isDuplicate) { 291 if ( (!peakFluxOk || !instFluxOk) && !isDuplicate) { 294 292 removeList[numOfDuplicates+numInvalidFlux] = s+1; 295 293 numInvalidFlux++; … … 314 312 // write number of rows (detections) to ImageMeta 315 313 numDetectionsOut = totalDetections - numOfDuplicates - numInvalidFlux; 316 fits_write_col(this->fitsOut, TLONG, IMAGEMETA_NDETECT, 1, 1, 1, &numDetectionsOut, &status);314 // fits_write_col(this->fitsOut, TLONG, IMAGEMETA_NDETECT, 1, 1, 1, &numDetectionsOut, &status); 317 315 318 316 // detections … … 323 321 fits_write_col(this->fitsOut, TLONGLONG, DETECTION_IPPDETECTID, 1, 1, nDet, ippDetectID, &status); 324 322 fits_write_col(this->fitsOut, TBYTE, DETECTION_FILTERID, 1, 1, nDet, filterIDs, &status); 323 fits_write_col(this->fitsOut, TLONGLONG, DETECTION_IMAGEID, 1, 1, nDet, imageID, &status); 325 324 fits_write_col(this->fitsOut, TFLOAT, DETECTION_INSTFLUX, 1, 1, nDet, instFlux, &status); 326 fits_write_col(this->fitsOut, TFLOAT, DETECTION_INSTFLUXERR, 1, 1, nDet, instFluxErr, &status);327 fits_write_col(this->fitsOut, TFLOAT, DETECTION_PEAKADU, 1, 1, nDet, peakFlux, &status);325 //fits_write_col(this->fitsOut, TFLOAT, DETECTION_INSTFLUXERR, 1, 1, nDet, instFluxErr, &status); 326 //fits_write_col(this->fitsOut, TFLOAT, DETECTION_PEAKADU, 1, 1, nDet, peakFlux, &status); 328 327 fits_write_col(this->fitsOut, TLONGLONG, DETECTION_INFOFLAG, 1, 1, nDet, flags, &status); 329 328 if (numOfDuplicates||numInvalidFlux) fits_delete_rowlist(this->fitsOut, removeList, numOfDuplicates+numInvalidFlux, &status); … … 346 345 // write number of images we have found into FrameMeta table 347 346 status=0; 348 if (fits_movnam_hdu(this->fitsOut, BINARY_TBL, "FrameMeta", 0, &status))349 psError(PS_ERR_IO, false, "Can't move back to FrameMeta extension to write number of OTAs\n");350 else351 fits_write_col(this->fitsOut, TSHORT, FRAMEMETA_NOTA, 1, 1, 1, &nOta, &status);347 //if (fits_movnam_hdu(this->fitsOut, BINARY_TBL, "FrameMeta", 0, &status)) 348 // psError(PS_ERR_IO, false, "Can't move back to FrameMeta extension to write number of OTAs\n"); 349 //else 350 // fits_write_col(this->fitsOut, TSHORT, FRAMEMETA_NOTA, 1, 1, 1, &nOta, &status); 352 351 353 352 status=0; -
trunk/ippToPsps/src/ippToPspsTestEnums.h
r28662 r28759 3 3 4 4 5 typedef enum {6 FRAMEMETA_FRAMEID = 1,7 FRAMEMETA_FILTERID,8 FRAMEMETA_NOTA,9 FRAMEMETA_PHOTOSCAT,10 FRAMEMETA_EXPSTART,11 FRAMEMETA_EXPTIME,12 FRAMEMETA_AIRMASS,13 FRAMEMETA_RABORE,14 FRAMEMETA_DECBORE,15 FRAMEMETA_CTYPE1,16 FRAMEMETA_CTYPE2,17 FRAMEMETA_CRVAL1,18 FRAMEMETA_CRVAL2,19 FRAMEMETA_CRPIX1,20 FRAMEMETA_CRPIX2,21 FRAMEMETA_PC001001,22 FRAMEMETA_PC001002,23 FRAMEMETA_PC002001,24 FRAMEMETA_PC002002,25 FRAMEMETA_POLYORDER,26 FRAMEMETA_PCA1X3Y0,27 FRAMEMETA_PCA1X2Y1,28 FRAMEMETA_PCA1X1Y2,29 FRAMEMETA_PCA1X0Y3,30 FRAMEMETA_PCA1X2Y0,31 FRAMEMETA_PCA1X1Y1,32 FRAMEMETA_PCA1X0Y2,33 FRAMEMETA_PCA2X3Y0,34 FRAMEMETA_PCA2X2Y1,35 FRAMEMETA_PCA2X1Y2,36 FRAMEMETA_PCA2X0Y3,37 FRAMEMETA_PCA2X2Y0,38 FRAMEMETA_PCA2X1Y1,39 FRAMEMETA_PCA2X0Y2,40 } FrameMeta;41 42 typedef enum {43 IMAGEMETA_PHOTOCALID = 1,44 IMAGEMETA_FILTERID,45 IMAGEMETA_SKY,46 IMAGEMETA_SKYSCAT,47 IMAGEMETA_NDETECT,48 IMAGEMETA_MAGSAT,49 IMAGEMETA_COMPLETMAG,50 IMAGEMETA_ASTROSCAT,51 IMAGEMETA_PHOTOSCAT,52 IMAGEMETA_NUMASTROREF,53 IMAGEMETA_NX,54 IMAGEMETA_NY,55 IMAGEMETA_PSFMODELID,56 IMAGEMETA_PSFFWHM,57 IMAGEMETA_PSFWIDMAJOR,58 IMAGEMETA_PSFWIDMINOR,59 IMAGEMETA_PSFTHETA,60 IMAGEMETA_APRESID,61 IMAGEMETA_DAPRESID,62 IMAGEMETA_PHOTOZERO,63 IMAGEMETA_QAFLAGS,64 IMAGEMETA_CTYPE1,65 IMAGEMETA_CTYPE2,66 IMAGEMETA_CRVAL1,67 IMAGEMETA_CRVAL2,68 IMAGEMETA_CRPIX1,69 IMAGEMETA_CRPIX2,70 IMAGEMETA_PC001001,71 IMAGEMETA_PC001002,72 IMAGEMETA_PC002001,73 IMAGEMETA_PC002002,74 IMAGEMETA_POLYORDER,75 IMAGEMETA_PCA1X3Y0,76 IMAGEMETA_PCA1X2Y1,77 IMAGEMETA_PCA1X1Y2,78 IMAGEMETA_PCA1X0Y3,79 IMAGEMETA_PCA1X2Y0,80 IMAGEMETA_PCA1X1Y1,81 IMAGEMETA_PCA1X0Y2,82 IMAGEMETA_PCA2X3Y0,83 IMAGEMETA_PCA2X2Y1,84 IMAGEMETA_PCA2X1Y2,85 IMAGEMETA_PCA2X0Y3,86 IMAGEMETA_PCA2X2Y0,87 IMAGEMETA_PCA2X1Y1,88 IMAGEMETA_PCA2X0Y2,89 } ImageMeta;90 5 91 6 typedef enum { … … 95 10 DETECTION_IPPDETECTID, 96 11 DETECTION_FILTERID, 97 DETECTION_XPOS, 98 DETECTION_YPOS, 99 DETECTION_XPOSERR, 100 DETECTION_YPOSERR, 101 DETECTION_IPPRA , 102 DETECTION_IPPDEC , 12 DETECTION_IMAGEID, 13 DETECTION_RA , 14 DETECTION_DEC , 15 DETECTION_INFOFLAG, 103 16 DETECTION_INSTFLUX, 104 DETECTION_INSTFLUXERR,105 DETECTION_PEAKADU,106 DETECTION_PSFWIDMAJOR,107 DETECTION_PSFWIDMINOR,108 DETECTION_PSFTHETA,109 DETECTION_PSFCF,110 DETECTION_INFOFLAG,111 DETECTION_SKY,112 DETECTION_SKYERR,113 17 } Detection; 114 18
Note:
See TracChangeset
for help on using the changeset viewer.
