- Timestamp:
- May 29, 2012, 4:44:00 PM (14 years ago)
- Location:
- branches/eam_branches/ipp-20120405/psphot
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20120405/psphot
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20111122/psphot merged: 33070-33071,33086,33088,33094-33095,33612,33640
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20120405/psphot/src
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20111122/psphot/src merged: 33070-33071,33086,33094,33612,33640
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20120405/psphot/src/psphotModelBackground.c
r32348 r33946 37 37 // corresponding to the model. Other information about the background model is saved on the 38 38 // readout->analysis 39 static bool psphotModelBackgroundReadout(psImage *model, // Model image 40 psImage *modelStdev, // Model stdev image 41 psMetadata *analysis, // Analysis metadata for outputs 42 pmReadout *readout, // Readout for which to generate a background model 43 psImageBinning *binning, // Binning parameters 44 const pmConfig *config // Configuration 39 bool psphotModelBackgroundReadout(psImage *model, // Model image 40 psImage *modelStdev, // Model stdev image 41 psMetadata *analysis, // Analysis metadata for outputs 42 pmReadout *readout, // Readout for which to generate a background model 43 psImageBinning *binning, // Binning parameters 44 const pmConfig *config,// Configuration 45 bool useVarianceImage 45 46 ) 46 47 { … … 49 50 bool status = true; 50 51 51 psImage *image = readout->image, *mask = readout->mask; // Image and mask for readout 52 psImage *image = useVarianceImage ? readout->variance : readout->image; 53 psImage *mask = readout->mask; // Image and mask for readout 52 54 53 55 // select the appropriate recipe information … … 143 145 144 146 // we save the binning structure for use in psphotMagnitudes 145 psMetadataAddPtr(analysis, PS_LIST_TAIL, "PSPHOT.BACKGROUND.BINNING", PS_DATA_UNKNOWN | PS_META_REPLACE, "Background binning", binning); 147 if (!useVarianceImage) { 148 psMetadataAddPtr(analysis, PS_LIST_TAIL, "PSPHOT.BACKGROUND.BINNING", PS_DATA_UNKNOWN | PS_META_REPLACE, "Background binning", binning); 149 } 146 150 147 151 psVector *dQ = psVectorAllocEmpty (100, PS_TYPE_F32); … … 159 163 160 164 // measure clipped median for subimages 161 psRegion ruffRegion = {0,0,0,0};162 psRegion fineRegion = {0,0,0,0};165 psRegion ruffRegion = psRegionSet (0,0,0,0); 166 psRegion fineRegion = psRegionSet (0,0,0,0); 163 167 for (int iy = 0; iy < model->numRows; iy++) { 164 168 for (int ix = 0; ix < model->numCols; ix++) { … … 330 334 psVectorStats (statsDQ, dQ, NULL, NULL, 0); 331 335 332 psMetadataAddF32(readout->analysis, PS_LIST_TAIL, "SKY_MEAN", PS_META_REPLACE, "sky mean", Value); 333 psMetadataAddF32(readout->analysis, PS_LIST_TAIL, "SKY_STDEV", PS_META_REPLACE, "sky stdev", ValueStdev); 334 psMetadataAddF32(readout->analysis, PS_LIST_TAIL, "SKY_DQ", PS_META_REPLACE, "sky quartile slope", statsDQ->sampleMedian); 335 psLogMsg ("psphot", PS_LOG_INFO, "image sky : mean %f, stdev %f, dQ %f", Value, ValueStdev, statsDQ->sampleMedian); 336 337 // measure image and background stats and save for later output 338 psStats *statsBck = psStatsAlloc (PS_STAT_SAMPLE_MEAN | 339 PS_STAT_SAMPLE_STDEV | 340 PS_STAT_MIN | 341 PS_STAT_MAX); 342 psImageStats (statsBck, model, NULL, 0); 343 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_MN", PS_META_REPLACE, "sky model mean", statsBck->sampleMean); 344 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_SIG", PS_META_REPLACE, "sky model stdev", statsBck->sampleStdev); 345 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_DEV", PS_META_REPLACE, "sky stdev", ValueStdev); 346 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_DQ", PS_META_REPLACE, "sky quartile slope", statsDQ->sampleMedian); 347 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_MAX", PS_META_REPLACE, "sky model maximum value", statsBck->max); 348 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_MIN", PS_META_REPLACE, "sky model minimum value", statsBck->min); 349 psMetadataAddS32 (readout->analysis, PS_LIST_TAIL, "MSKY_NX", PS_META_REPLACE, "sky model size (x)", model->numCols); 350 psMetadataAddS32 (readout->analysis, PS_LIST_TAIL, "MSKY_NY", PS_META_REPLACE, "sky model size (y)", model->numRows); 351 psLogMsg ("psphot", PS_LOG_INFO, "background sky : min %f mean %f max %f stdev %f", 352 statsBck->min, statsBck->sampleMean, statsBck->max, statsBck->sampleStdev); 336 if (!useVarianceImage) { 337 psMetadataAddF32(readout->analysis, PS_LIST_TAIL, "SKY_MEAN", PS_META_REPLACE, "sky mean", Value); 338 psMetadataAddF32(readout->analysis, PS_LIST_TAIL, "SKY_STDEV", PS_META_REPLACE, "sky stdev", ValueStdev); 339 psMetadataAddF32(readout->analysis, PS_LIST_TAIL, "SKY_DQ", PS_META_REPLACE, "sky quartile slope", statsDQ->sampleMedian); 340 psLogMsg ("psphot", PS_LOG_INFO, "image sky : mean %f, stdev %f, dQ %f", Value, ValueStdev, statsDQ->sampleMedian); 341 342 // measure image and background stats and save for later output 343 psStats *statsBck = psStatsAlloc (PS_STAT_SAMPLE_MEAN | 344 PS_STAT_SAMPLE_STDEV | 345 PS_STAT_MIN | 346 PS_STAT_MAX); 347 psImageStats (statsBck, model, NULL, 0); 348 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_MN", PS_META_REPLACE, "sky model mean", statsBck->sampleMean); 349 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_SIG", PS_META_REPLACE, "sky model stdev", statsBck->sampleStdev); 350 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_DEV", PS_META_REPLACE, "sky stdev", ValueStdev); 351 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_DQ", PS_META_REPLACE, "sky quartile slope", statsDQ->sampleMedian); 352 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_MAX", PS_META_REPLACE, "sky model maximum value", statsBck->max); 353 psMetadataAddF32 (readout->analysis, PS_LIST_TAIL, "MSKY_MIN", PS_META_REPLACE, "sky model minimum value", statsBck->min); 354 psMetadataAddS32 (readout->analysis, PS_LIST_TAIL, "MSKY_NX", PS_META_REPLACE, "sky model size (x)", model->numCols); 355 psMetadataAddS32 (readout->analysis, PS_LIST_TAIL, "MSKY_NY", PS_META_REPLACE, "sky model size (y)", model->numRows); 356 psLogMsg ("psphot", PS_LOG_INFO, "background sky : min %f mean %f max %f stdev %f", 357 statsBck->min, statsBck->sampleMean, statsBck->max, statsBck->sampleStdev); 358 psFree(statsBck); 359 } else { 360 psLogMsg ("psphot", PS_LOG_INFO, "variance data : mean %f, stdev %f, dQ %f", Value, ValueStdev, statsDQ->sampleMedian); 361 } 353 362 354 363 psFree(statsDQ); … … 356 365 357 366 psFree(stats); 358 psFree(statsBck);359 367 psFree(statsDefaults); 360 368 psFree(binning); … … 375 383 psImage *modelStdev = psImageAlloc(binning->nXruff, binning->nYruff, PS_TYPE_F32); // Standard deviation 376 384 377 if (!psphotModelBackgroundReadout(model, modelStdev, readout->analysis, readout, binning, config )) {385 if (!psphotModelBackgroundReadout(model, modelStdev, readout->analysis, readout, binning, config, false)) { 378 386 psFree(model); 379 387 psFree(modelStdev); … … 400 408 pmReadout *modelStdev = pmFPAGenerateReadout(config, view, "PSPHOT.BACKMDL.STDEV", inFPA, binning, index); 401 409 402 if (!psphotModelBackgroundReadout(model->image, modelStdev->image, model->analysis, readout, binning, config )) {410 if (!psphotModelBackgroundReadout(model->image, modelStdev->image, model->analysis, readout, binning, config, false)) { 403 411 psError(PS_ERR_UNKNOWN, false, "Unable to generate background model"); 404 412 return false;
Note:
See TracChangeset
for help on using the changeset viewer.
