Changeset 20999
- Timestamp:
- Dec 15, 2008, 3:58:30 PM (17 years ago)
- Location:
- trunk/psModules/src
- Files:
-
- 3 edited
-
camera/pmReadoutFake.c (modified) (3 diffs)
-
camera/pmReadoutFake.h (modified) (1 diff)
-
imcombine/pmPSFEnvelope.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/camera/pmReadoutFake.c
r20937 r20999 50 50 bool pmReadoutFakeFromSources(pmReadout *readout, int numCols, int numRows, const psArray *sources, 51 51 const psVector *xOffset, const psVector *yOffset, const pmPSF *psf, 52 float minFlux, int radius, bool circularise )52 float minFlux, int radius, bool circularise, bool normalisePeak) 53 53 { 54 54 PS_ASSERT_PTR_NON_NULL(readout, false); … … 83 83 pmModel *fakeModel = pmModelFromPSFforXY(psf, (float)numCols / 2.0, (float)numRows / 2.0, 84 84 1.0); // Fake model, with central intensity of 1.0 85 psAssert (fakeModel, "failed to generate model: should this be an error or not?");85 psAssert(fakeModel, "failed to generate model: should this be an error or not?"); 86 86 87 88 float flux0 = fakeModel->modelFlux(fakeModel->params); // Flux for central intensity of 1.0 87 float flux0 = NAN; // Flux for central intensity of 1.0 88 if (normalisePeak) { 89 flux0 = fakeModel->modelFlux(fakeModel->params); // Flux for central intensity of 1.0 90 } 89 91 90 92 if (circularise && !circulariseModel(fakeModel)) { … … 112 114 } 113 115 114 pmModel *fakeModel = pmModelFromPSFforXY(psf, x, y, powf(10.0, -0.4 * source->psfMag) / flux0); 116 float flux = powf(10.0, -0.4 * source->psfMag); // Flux of source 117 if (normalisePeak) { 118 flux /= flux0; 119 } 120 121 pmModel *fakeModel = pmModelFromPSFforXY(psf, x, y, flux); 115 122 if (!fakeModel) { 116 123 continue; -
trunk/psModules/src/camera/pmReadoutFake.h
r15838 r20999 21 21 float minFlux, ///< Minimum flux to bother about; for setting source radius 22 22 int radius, ///< Fixed radius for sources 23 bool circularise ///< Circularise PSF model? 23 bool circularise, ///< Circularise PSF model? 24 bool normalise ///< Normalise the peak value? 24 25 ); 25 26 -
trunk/psModules/src/imcombine/pmPSFEnvelope.c
r20937 r20999 118 118 psf->residuals = NULL; 119 119 if (!pmReadoutFakeFromSources(fakeRO, fakeSize, fakeSize, fakes, xOffset, yOffset, psf, 120 NAN, radius, true )) {120 NAN, radius, true, true)) { 121 121 psError(PS_ERR_UNKNOWN, false, "Unable to generate fake readout."); 122 122 psFree(envelope); … … 148 148 // Get the radius 149 149 pmModel *model = pmModelFromPSFforXY(psf, x, y, PEAK_FLUX); // Model for source 150 psAssert (model, "failed to generate model: should this be an error or not?");150 psAssert (model, "failed to generate model: should this be an error or not?"); 151 151 float srcRadius = model->modelRadius(model->params, PS_SQR(WEIGHT_VAL)); // Radius for source 152 152 if (srcRadius > maxRadius) { … … 299 299 pmModel *fakeModel = pmModelFromPSFforXY(psf, (float)numCols / 2.0, (float)numRows / 2.0, 300 300 1.0); // Fake model, with central intensity of 1.0 301 psAssert (fakeModel, "failed to generate model: should this be an error or not?");301 psAssert (fakeModel, "failed to generate model: should this be an error or not?"); 302 302 float flux0 = fakeModel->modelFlux(fakeModel->params); // Flux for central intensity of 1.0 303 303 for (int i = 0; i < numFakes; i++) { … … 308 308 pmReadout *generated = pmReadoutAlloc(NULL); // Generated image 309 309 pmReadoutFakeFromSources(generated, numCols, numRows, fakes, NULL, NULL, psf, NAN, radius, 310 false );310 false, true); 311 311 { 312 312 psFits *fits = psFitsOpen("psf_field_model.fits", "w");
Note:
See TracChangeset
for help on using the changeset viewer.
