Changeset 29620 for trunk/psModules/src/objects
- Timestamp:
- Oct 29, 2010, 4:31:24 PM (16 years ago)
- Location:
- trunk/psModules/src/objects
- Files:
-
- 2 edited
-
pmSourceIO_CMF_PS1_DV2.c (modified) (6 diffs)
-
pmSourceIO_CMF_PS1_V3.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/pmSourceIO_CMF_PS1_DV2.c
r29546 r29620 69 69 psF32 xPos, yPos; 70 70 psF32 xErr, yErr; 71 psF32 errMag,chisq, apRadius;71 psF32 chisq, apRadius; 72 72 psS32 nPix, nDOF; 73 73 … … 87 87 } 88 88 float zeroptErr = psMetadataLookupF32 (&status2, imageHeader, "ZPT_ERR"); 89 90 // we need a measure of the image quality (FWHM) for this image, in order to get the positional errors 91 float fwhmMajor = psMetadataLookupF32(&status1, readout->analysis, "FWHM_MAJ"); 92 if (!status1) { 93 fwhmMajor = psMetadataLookupF32(&status1, readout->analysis, "IQ_FW1"); 94 if (!status1) { 95 fwhmMajor = 5.0; // XXX just a guess! 96 } 97 } 98 float fwhmMinor = psMetadataLookupF32(&status1, readout->analysis, "FWHM_MIN"); 99 if (!status1) { 100 fwhmMinor = psMetadataLookupF32(&status1, readout->analysis, "IQ_FW2"); 101 if (!status1) { 102 fwhmMinor = 5.0; // XXX just a guess! 103 } 104 } 89 105 90 106 // if the sequence is defined, write these in seq order; otherwise … … 128 144 } else { 129 145 // in linear-fit mode, there is no error on the centroid 130 xErr = source->peak->dx;131 yErr = source->peak->dy;146 xErr = fwhmMajor * source->errMag / 2.35; 147 yErr = fwhmMinor * source->errMag / 2.35; 132 148 } 133 149 if (isfinite(PAR[PM_PAR_SXX]) && isfinite(PAR[PM_PAR_SXX]) && isfinite(PAR[PM_PAR_SXX])) { … … 142 158 nPix = model->nPix; 143 159 apRadius = source->apRadius; 144 errMag = model->dparams->data.F32[PM_PAR_I0] / model->params->data.F32[PM_PAR_I0];145 160 } else { 146 xPos = source->peak->xf; 147 yPos = source->peak->yf; 148 xErr = source->peak->dx; 149 yErr = source->peak->dy; 161 bool useMoments = true; 162 useMoments = (useMoments && source->moments); // can't if there are no moments 163 useMoments = (useMoments && source->moments->nPixels); // can't if the moments were not measured 164 useMoments = (useMoments && !(source->mode && PM_SOURCE_MODE_MOMENTS_FAILURE)); // can't if the moments failed... 165 166 if (useMoments) { 167 xPos = source->moments->Mx; 168 yPos = source->moments->My; 169 xErr = fwhmMajor * source->errMag / 2.35; 170 yErr = fwhmMinor * source->errMag / 2.35; 171 } else { 172 xPos = source->peak->xf; 173 yPos = source->peak->yf; 174 xErr = source->peak->dx; 175 yErr = source->peak->dy; 176 } 150 177 axes.major = NAN; 151 178 axes.minor = NAN; … … 155 182 nPix = 0; 156 183 apRadius = NAN; 157 errMag = NAN;158 184 } 159 185 … … 182 208 psMetadataAdd (row, PS_LIST_TAIL, "PLTSCALE", PS_DATA_F32, "plate scale at source (arcsec/pixel)", pltScale*PS_DEG_RAD*3600.0); 183 209 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_MAG", PS_DATA_F32, "PSF fit instrumental magnitude", source->psfMag); 184 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_MAG_SIG", PS_DATA_F32, "Sigma of PSF instrumental magnitude", errMag);210 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_MAG_SIG", PS_DATA_F32, "Sigma of PSF instrumental magnitude", source->errMag); 185 211 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX", PS_DATA_F32, "PSF fit instrumental magnitude", source->psfFlux); 186 212 psMetadataAdd (row, PS_LIST_TAIL, "PSF_INST_FLUX_SIG",PS_DATA_F32, "Sigma of PSF instrumental magnitude", source->psfFluxErr); -
trunk/psModules/src/objects/pmSourceIO_CMF_PS1_V3.c
r29546 r29620 89 89 if (!status1) { 90 90 fwhmMajor = psMetadataLookupF32(&status1, readout->analysis, "IQ_FW1"); 91 if (!status1) { 92 fwhmMajor = 5.0; // XXX just a guess! 93 } 91 94 } 92 95 float fwhmMinor = psMetadataLookupF32(&status1, readout->analysis, "FWHM_MIN"); 93 96 if (!status1) { 94 97 fwhmMinor = psMetadataLookupF32(&status1, readout->analysis, "IQ_FW2"); 98 if (!status1) { 99 fwhmMinor = 5.0; // XXX just a guess! 100 } 95 101 } 96 102 … … 154 160 useMoments = (useMoments && !(source->mode && PM_SOURCE_MODE_MOMENTS_FAILURE)); // can't if the moments failed... 155 161 156 if ( source->moments) {162 if (useMoments) { 157 163 xPos = source->moments->Mx; 158 164 yPos = source->moments->My;
Note:
See TracChangeset
for help on using the changeset viewer.
