- Timestamp:
- Sep 21, 2007, 4:20:17 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20070921/psphot/src/psphotChoosePSF.c
r14971 r14980 35 35 36 36 // how to model the PSF variations across the field 37 char *psfTrendMode = psMetadataLookupStr (&status, recipe, "PSF.TREND.MODE"); 38 assert (status); 39 options->psfTrendMode = pmTrend2DModeFromString (psfTrendMode); 37 options->psfTrendMode = pmTrend2DModeFromString (psMetadataLookupStr (&status, recipe, "PSF.TREND.MODE")); 38 assert (status); 39 40 options->psfTrendNx = psMetadataLookupS32 (&status, recipe, "PSF.TREND.NX"); 41 assert (status); 42 43 options->psfTrendNy = psMetadataLookupS32 (&status, recipe, "PSF.TREND.NY"); 44 assert (status); 40 45 41 46 // get the fixed PSF fit radius … … 44 49 assert (status); 45 50 46 pmSourceFitModelInit (15, 0.01, PS_SQR(SKY_SIG), POISSON_ERRORS); 47 48 psPolynomial2D *psfTrendMask = psPolynomial2DfromMetadata (md); 49 if (!psfTrendMask) { 50 psError(PSPHOT_ERR_PSF, true, "Unable to construct polynomial from PSF.TREND.MASK in the recipe"); 51 return NULL; 52 } 51 options->stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV); 52 options->image = psMemIncrRefCounter (readout->image); 53 54 pmSourceFitModelInit (15, 0.01, PS_SQR(SKY_SIG), options->poissonErrorsPhotom); 53 55 54 56 psArray *stars = psArrayAllocEmpty (sources->n); … … 71 73 psLogMsg ("psphot.choosePSF", PS_LOG_WARN, "Failed to find any PSF candidates"); 72 74 psFree (stars); 73 psFree (psfTrendMask);74 75 return NULL; 75 76 } … … 96 97 psMetadataItem *item = psListGetAndIncrement (iter); 97 98 char *modelName = item->data.V; 98 // models->data[i] = pmPSFtryModel (stars, modelName, RADIUS, POISSON_ERRORS, psfTrendMask, PSF_PARAM_WEIGHTS, maskVal, mark);99 99 models->data[i] = pmPSFtryModel (stars, modelName, options, maskVal, mark); 100 100 } … … 103 103 psFree (list); 104 104 psFree (stars); 105 psFree (psfTrendMask);106 105 107 106 // select the best of the models … … 134 133 if (psTraceGetLevel("psphot") >= 5) { 135 134 for (int i = PM_PAR_SXX; i < try->psf->params->n; i++) { 136 psPolynomial2D *poly = try->psf->params->data[i]; 137 for (int nx = 0; nx <= poly->nX; nx++) { 138 for (int ny = 0; ny <= poly->nY; ny++) { 139 if (poly->mask[nx][ny]) continue; 140 fprintf (stderr, "%g x^%d y^%d\n", poly->coeff[nx][ny], nx, ny); 141 } 142 } 135 // XXX re-write the output or some other status info 143 136 } 144 137 } … … 289 282 pmSourcesWritePSFs (try->sources, "psfstars.dat"); 290 283 pmSourcesWriteEXTs (try->sources, "extstars.dat", false); 291 psMetadata *psfData = pmPSFtoMetadata (NULL, try->psf); 292 psMetadataConfigWrite (psfData, "psfmodel.dat");293 psFree (psfData);284 // XXX need alternative output function 285 // psMetadata *psfData = pmPSFtoMetadata (NULL, try->psf); 286 // psMetadataConfigWrite (psfData, "psfmodel.dat"); 294 287 psLogMsg ("psphot.choosePSF", PS_LOG_INFO, "wrote out psf-subtracted image, psf data, exiting\n"); 295 288 exit (0);
Note:
See TracChangeset
for help on using the changeset viewer.
