- Timestamp:
- Sep 11, 2016, 2:29:33 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/czw_branch/20160809/psModules/src/astrom/pmAstrometryObjects.c
r39653 r39685 225 225 psArray *ref, 226 226 psArray *match, 227 psStats *stats) 227 psStats *stats, 228 const psMetadata *config) 228 229 { 229 230 PS_ASSERT_PTR_NON_NULL(map, NULL); … … 232 233 PS_ASSERT_PTR_NON_NULL(match, NULL); 233 234 PS_ASSERT_PTR_NON_NULL(stats, NULL); 235 PS_ASSERT_PTR_NON_NULL(config, NULL); 236 237 // sigma of gaussian window to down-weight photometric outliers (ignored if NAN or 0.0) 238 bool status; 239 double photomWindowSigma = psMetadataLookupF32 (&status, config, "PSASTRO.PHOTOM.WINDOW.SIGMA"); 240 bool photomWindowApply = !(isnan(photomWindowSigma) || (fabs(photomWindowSigma < 0.01))); 241 double photomWindowFactor = photomWindowApply ? -0.5/PS_SQR(photomWindowSigma) : 0.0; 234 242 235 243 // reassign values for clip fit … … 252 260 y->data.F32[i] = refStar->FP->y; 253 261 254 wt->data.F32[i] = 1.01 - exp(-10.0*PS_SQR(refStar->magCal - rawStar->magCal)); // sigma = 0.22 mag 262 // wt is used as an error (sqrt(variance)) in the fit. the 1.01 prevents the weight from going to 0.0 for perfect matches 263 wt->data.F32[i] = 1.01 - exp(photomWindowFactor*PS_SQR(refStar->magCal - rawStar->magCal)); 255 264 } 256 265 … … 776 785 double gridOffset = psMetadataLookupF32 (&status, config, "PSASTRO.GRID.OFFSET"); 777 786 778 // sampling scale of the grid 779 double gridScale = psMetadataLookupF32 (&status, config, "PSASTRO.GRID.SCALE"); 787 // sampling scale of the grid 788 double gridScale = psMetadataLookupF32 (&status, config, "PSASTRO.GRID.SCALE"); 789 790 // sigma of gaussian window to down-weight photometric outliers (ignored if NAN or 0.0) 791 double photomWindowSigma = psMetadataLookupF32 (&status, config, "PSASTRO.PHOTOM.WINDOW.SIGMA"); 792 bool photomWindowApply = !(isnan(photomWindowSigma) || (fabs(photomWindowSigma < 0.01))); 793 double photomWindowFactor = photomWindowApply ? -0.5/PS_SQR(photomWindowSigma) : 0.0; 780 794 781 795 // set the static scaling factors … … 818 832 } 819 833 820 int Npts = 10 * exp(-10.0*PS_SQR(ob1->magCal - ob2->magCal)); // sigma = 0.22 mag 834 // XXX should I make the scale factor in front a recipe value? 835 int Npts = 10 * exp(photomWindowFactor*PS_SQR(ob1->magCal - ob2->magCal)); 821 836 822 837 // accumulate bin stats … … 1057 1072 double tweakNsigma = psMetadataLookupF32 (&status, recipe, "PSASTRO.TWEAK.NSIGMA"); 1058 1073 1074 // sigma of gaussian window to down-weight photometric outliers (ignored if NAN or 0.0) 1075 double photomWindowSigma = psMetadataLookupF32 (&status, recipe, "PSASTRO.PHOTOM.WINDOW.SIGMA"); 1076 bool photomWindowApply = !(isnan(photomWindowSigma) || (fabs(photomWindowSigma < 0.01))); 1077 double photomWindowFactor = photomWindowApply ? -0.5/PS_SQR(photomWindowSigma) : 0.0; 1078 1059 1079 nBin = 2*tweakRange / tweakScale; 1060 1080 psVector *xHist = psVectorAlloc (nBin, PS_TYPE_F32); … … 1083 1103 continue; 1084 1104 1085 int Npts = 10 * exp(-10.0*PS_SQR(ob1->magCal - ob2->magCal)); // sigma = 0.22 mag 1105 // XXX should I make the scale factor in front a recipe value? 1106 int Npts = 10 * exp(photomWindowFactor*PS_SQR(ob1->magCal - ob2->magCal)); // sigma = 0.22 mag 1086 1107 1087 1108 xHist->data.F32[xBin] += Npts;
Note:
See TracChangeset
for help on using the changeset viewer.
