Changeset 14995
- Timestamp:
- Sep 24, 2007, 9:11:40 AM (19 years ago)
- Location:
- branches/eam_branch_20070921/psphot/src
- Files:
-
- 2 edited
-
psphot.h (modified) (1 diff)
-
psphotApResid.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20070921/psphot/src/psphot.h
r14963 r14995 47 47 bool psphotReplaceAll (psArray *sources, psMaskType maskVal); 48 48 bool psphotApResid (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psMaskType maskVal, psMaskType mark); 49 bool psphotMagErrorScale (float *errorScale, float *errorFloor, psVector *dMag, psVector *dap, int nGroup);49 bool psphotMagErrorScale (float *errorScale, float *errorFloor, psVector *dMag, psVector *dap, psVector *mask, int nGroup); 50 50 bool psphotApResidTrend (pmReadout *readout, pmPSF *psf, int Npsf, int scale, float *errorScale, float *errorFloor, psVector *mask, psVector *xPos, psVector *yPos, psVector *apResid, psVector *dMag); 51 51 bool psphotMagnitudes (psArray *sources, psMetadata *recipe, pmPSF *psf, pmReadout *background, psMaskType maskVal, psMaskType mark); -
branches/eam_branch_20070921/psphot/src/psphotApResid.c
r14990 r14995 103 103 dMag->data.F32[Npsf] = model->dparams->data.F32[PM_PAR_I0] / model->params->data.F32[PM_PAR_I0]; 104 104 105 psVectorExtend (mag, 100, 1); 105 106 psVectorExtend (mask, 100, 1); 106 107 psVectorExtend (xPos, 100, 1); … … 157 158 psVector *apResidRes = (psVector *) psBinaryOp (NULL, (void *) apResid, "-", (void *) apResidFit); 158 159 psVector *dMagSys = (psVector *) psBinaryOp (NULL, (void *) dMag, "*", (void *) psScalarAlloc(errorScale, PS_TYPE_F32)); 159 160 psphotSaveImage (NULL, psf->ApTrend->map->map, "apresid.map.fits");161 160 162 161 if (psTraceGetLevel("psphot") >= 5) { … … 212 211 */ 213 212 214 bool psphotMagErrorScale (float *errorScale, float *errorFloor, psVector *dMag, psVector *dap, int nGroup) {213 bool psphotMagErrorScale (float *errorScale, float *errorFloor, psVector *dMag, psVector *dap, psVector *mask, int nGroup) { 215 214 216 215 psStats *statsS = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV); … … 231 230 psVector *dMSubset = psVectorAllocEmpty (nGroup, PS_TYPE_F32); 232 231 psVector *dASubset = psVectorAllocEmpty (nGroup, PS_TYPE_F32); 232 psVector *mkSubset = psVectorAllocEmpty (nGroup, PS_TYPE_U8); 233 233 234 234 int n = 0; … … 239 239 dMSubset->data.F32[j] = dMag->data.F32[N]; 240 240 dASubset->data.F32[j] = dap->data.F32[N]; 241 mkSubset->data.U8[j] = mask->data.U8[N]; 241 242 } 242 243 dMSubset->n = j; 243 244 dASubset->n = j; 245 mkSubset->n = j; 244 246 245 247 psStatsInit (statsS); 246 248 psStatsInit (statsM); 247 249 248 psVectorStats (statsS, dASubset, NULL, NULL, 0xff);249 psVectorStats (statsM, dMSubset, NULL, NULL, 0xff);250 psVectorStats (statsS, dASubset, NULL, mkSubset, 0xff); 251 psVectorStats (statsM, dMSubset, NULL, mkSubset, 0xff); 250 252 251 253 dSo->data.F32[i] = statsS->robustStdev; … … 256 258 psFree (dMSubset); 257 259 psFree (dASubset); 260 psFree (mkSubset); 258 261 259 262 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEDIAN); … … 292 295 } 293 296 297 // the mask marks the values not used to calculate the ApTrend 298 psVectorInit (mask, 0); 299 294 300 // XXX stats structure for use by ApTrend : make parameters user setable 295 301 psStats *stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV); … … 311 317 // XXX this is a bit arbitrary, but it forces ~3 stars from the bright bin per spatial bin 312 318 int nGroup = PS_MAX (3*Nx*Ny, 10); 313 psphotMagErrorScale (errorScale, errorFloor, dMag, apResidRes, nGroup);319 psphotMagErrorScale (errorScale, errorFloor, dMag, apResidRes, mask, nGroup); 314 320 315 321 psLogMsg ("psphot.apresid", PS_LOG_INFO, "result of %d x %d grid (%d stars per bin)\n", Nx, Ny, nGroup);
Note:
See TracChangeset
for help on using the changeset viewer.
