- Timestamp:
- May 3, 2010, 8:50:52 AM (16 years ago)
- Location:
- branches/simtest_nebulous_branches
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/simtest_nebulous_branches
- Property svn:mergeinfo changed
-
branches/simtest_nebulous_branches/psModules
-
Property svn:mergeinfo
set to (toggle deleted branches)
/trunk/psModules merged eligible /branches/eam_branches/stackphot.20100406/psModules 27623-27653 /branches/pap_delete/psModules 27530-27595
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
branches/simtest_nebulous_branches/psModules/src/detrend/pmFringeStats.c
r24912 r27840 11 11 #include "pmFPA.h" 12 12 #include "pmFringeStats.h" 13 14 #include "psPolynomialMD.h" 15 #include "psMinimizePolyFit.h" 16 #include "psVector.h" 17 13 18 14 19 // Future optimisations for speed: … … 331 336 dfPt[i] = 1.0 / medianSd->sampleStdev; 332 337 333 psTrace("psModules.detrend", 7, "[%d:%d,%d:%d]: %f %f \n", (int)region.x0, (int)region.x1,334 (int)region.y0, (int)region.y1, fPt[i], dfPt[i] );338 psTrace("psModules.detrend", 7, "[%d:%d,%d:%d]: %f %f : %s\n", (int)region.x0, (int)region.x1, 339 (int)region.y0, (int)region.y1, fPt[i], dfPt[i], readout->parent->hdu->extname); 335 340 } 336 341 psFree(sky); … … 840 845 } 841 846 } 842 B->data.F64[i] = vector;847 B->data.F64[i] = vector; 843 848 } 844 849 … … 966 971 } 967 972 } 973 968 974 } 969 975 … … 988 994 psTrace("psModules.detrend", 9, "Masking region %d because not finite in fringe %d.\n", j, i); 989 995 } 990 } 991 } 992 996 else if (fabs(fringe->f->data.F32[j]) > 0.1) { 997 mask->data.PS_TYPE_VECTOR_MASK_DATA[j] = 1; 998 psTrace("psModules.detrend", 9, "Masking region %d because too large fringe %d.\n", j, i); 999 } 1000 // Mask bad points in the science data as well. 1001 if ((i == 0) && (!isfinite(science->f->data.F32[j]))) { 1002 mask->data.PS_TYPE_VECTOR_MASK_DATA[j] = 1; 1003 psTrace("psModules.detrend", 9, "Masking region %d because not finite in science fringe %d.\n", j, i); 1004 } 1005 psTrace("psModules.detrend", 7, "F %f %f %f %d\n", 1006 fringe->f->data.F32[j], science->f->data.F32[j], 1007 1 / science->df->data.F32[j],(int) mask->data.PS_TYPE_VECTOR_MASK_DATA[j]); 1008 } 1009 } 1010 1011 /* // Begin switch from old outlier removal and fitting code. */ 1012 1013 psPolynomial1D *poly = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 1); 1014 1015 pmFringeStats *fringe = fringes->data[0]; 1016 psVector *errors = psVectorAlloc(science->df->n,PS_TYPE_F32); 1017 for (int j = 0; j < errors->n; j++) { 1018 errors->data.F32[j] = 1 / science->df->data.F32[j]; 1019 } 1020 psVectorFitPolynomial1D(poly,mask,0xff,science->f,errors,fringe->f); 1021 1022 for (int i = 0; i <= poly->nX; i++) { 1023 scale->coeff->data.F32[i] = poly->coeff[i]; 1024 psTrace("psModules.detrend",7,"COEFFS: %d %g %g %g\n",i,scale->coeff->data.F32[i],poly->coeff[i],poly->coeffErr[i]); 1025 } 1026 1027 psFree(poly); 1028 // psFree(fringe); 1029 psFree(errors); 1030 1031 psFree(median); 1032 psFree(diff); 1033 return scale; 1034 // End switch from old code. 1035 1036 1037 993 1038 # if (0) 994 1039 // Write fringe data to file for a test … … 1019 1064 } 1020 1065 scale->coeff->data.F32[0] -= median->sampleMedian; 1021 scale->coeff->data.F32[i] = 0.0; 1066 if (i != 0) { 1067 scale->coeff->data.F32[i] = 0.0; 1068 } 1022 1069 } 1023 1070 psFree(median); … … 1051 1098 1052 1099 return scale; 1100 //# endif 1053 1101 } 1054 1102
Note:
See TracChangeset
for help on using the changeset viewer.
