Changeset 29449 for branches/eam_branches/ipp-20100823/psModules/src/imcombine/pmSubtractionStamps.c
- Timestamp:
- Oct 17, 2010, 9:10:35 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20100823/psModules/src/imcombine/pmSubtractionStamps.c
r29274 r29449 51 51 psFree(list->y); 52 52 psFree(list->flux); 53 psFree(list->window); 53 54 psFree(list->window1); 54 55 psFree(list->window2); … … 96 97 97 98 // fprintf (stderr, "xMin, xMax: %d, %d -> ", xMin, xMax); 98 float xRaw = xMin;99 float yRaw = yMin;99 // float xRaw = xMin; 100 // float yRaw = yMin; 100 101 101 102 // Ensure we're not going to go outside the bounds of the image … … 126 127 if (subMask && subMask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] & 127 128 (PM_SUBTRACTION_MASK_BORDER | PM_SUBTRACTION_MASK_REJ)) { 128 fprintf (stderr, "%f,%f : masked\n", xRaw, yRaw);129 // fprintf (stderr, "%f,%f : masked\n", xRaw, yRaw); 129 130 return false; 130 131 } … … 142 143 } 143 144 144 if (!found) { 145 fprintf (stderr, "%f,%f : fails flux test\n", xRaw, yRaw); 146 } 145 // if (!found) { 146 // fprintf (stderr, "%f,%f : fails flux test\n", xRaw, yRaw); 147 // } 148 147 149 return found; 148 150 } … … 245 247 list->normFrac = normFrac; 246 248 list->normValue = NAN; 249 list->window = NULL; 247 250 list->window1 = NULL; 248 251 list->window2 = NULL; … … 269 272 out->y = NULL; 270 273 out->flux = NULL; 274 out->window = psMemIncrRefCounter(in->window); 271 275 out->window1 = psMemIncrRefCounter(in->window1); 272 276 out->window2 = psMemIncrRefCounter(in->window2); … … 487 491 yList->data.F32[j], yList->data.F32[j], numCols, numRows, border); 488 492 #endif 489 if (0 && goodStamp) {490 fprintf (stderr, "find: %6.1f < %6.1f < %6.1f, %6.1f < %6.1f %6.1f\n",491 region->x0 + size, xStamp, region->x1 - size,492 region->y0 + size, yStamp, region->y1 - size);493 }494 493 } 495 494 } else { … … 684 683 psImageInit(stamps->window2->image, 0.0); 685 684 685 // Generate a weighting window based on the fwhms (20% larger than the largest) 686 { 687 float fwhm1, fwhm2; 688 689 // XXX this is annoyingly hack-ish 690 pmSubtractionGetFWHMs(&fwhm1, &fwhm2); 691 692 float sigma = 1.5 * PS_MAX(fwhm1, fwhm2) / 2.35; 693 694 psFree (stamps->window); 695 stamps->window = psKernelAlloc(-size, size, -size, size); 696 psImageInit(stamps->window->image, 0.0); 697 698 for (int y = -size; y <= size; y++) { 699 for (int x = -size; x <= size; x++) { 700 stamps->window->kernel[y][x] = exp(-0.5*(x*x + y*y)/(sigma*sigma)); 701 } 702 } 703 } 704 686 705 // generate normalizations for each stamp 687 706 psVector *norm1 = psVectorAlloc(stamps->num, PS_TYPE_F32); … … 759 778 { 760 779 psFits *fits = NULL; 761 fits = psFitsOpen ("window1. fits", "w");780 fits = psFitsOpen ("window1.raw.fits", "w"); 762 781 psFitsWriteImage (fits, NULL, stamps->window1->image, 0, NULL); 763 782 psFitsClose (fits); 764 fits = psFitsOpen ("window2. fits", "w");783 fits = psFitsOpen ("window2.raw.fits", "w"); 765 784 psFitsWriteImage (fits, NULL, stamps->window2->image, 0, NULL); 766 785 psFitsClose (fits); … … 818 837 // interpolate to the radius at which delta2 is normFrac: 819 838 stamps->normWindow1 = radius - (stamps->normFrac - delta1) / (delta1o - delta1); 820 fprintf (stderr, "choosing %f (%d) for 1 (%f : %f)\n", stamps->normWindow1, radius, within1, delta1);839 psLogMsg ("psModules.imcombine", PS_LOG_DETAIL, "choosing %f (%d) for 1 (%f : %f)\n", stamps->normWindow1, radius, within1, delta1); 821 840 done1 = true; 822 841 } … … 825 844 // interpolate to the radius at which delta2 is normFrac: 826 845 stamps->normWindow2 = radius - (stamps->normFrac - delta2) / (delta2o - delta2); 827 fprintf (stderr, "choosing %f (%d) for 2 (%f : %f)\n", stamps->normWindow2, radius, within2, delta2);846 psLogMsg ("psModules.imcombine", PS_LOG_DETAIL, "choosing %f (%d) for 2 (%f : %f)\n", stamps->normWindow2, radius, within2, delta2); 828 847 done2 = true; 829 848 } … … 873 892 { 874 893 psFits *fits = NULL; 875 fits = psFitsOpen ("window1. fits", "w");894 fits = psFitsOpen ("window1.norm.fits", "w"); 876 895 psFitsWriteImage (fits, NULL, stamps->window1->image, 0, NULL); 877 896 psFitsClose (fits); 878 fits = psFitsOpen ("window2. fits", "w");897 fits = psFitsOpen ("window2.norm.fits", "w"); 879 898 psFitsWriteImage (fits, NULL, stamps->window2->image, 0, NULL); 880 899 psFitsClose (fits); … … 962 981 psAssert (isfinite(kernels->penalties2->data.F32[index]), "invalid penalty"); 963 982 964 fprintf(stderr, "penalty1: %f, penalty2: %f\n", penalty1, penalty2);983 // fprintf(stderr, "penalty1: %f, penalty2: %f\n", penalty1, penalty2); 965 984 966 985 return true; … … 989 1008 penalty *= 1.0 / sum2; 990 1009 991 if ( 1) {992 fprintf(stderr, "min: %lf, max: %lf, moment: %lf, flux^2: %lf\n", min, max, penalty, sum2);1010 if (0) { 1011 // fprintf(stderr, "min: %lf, max: %lf, moment: %lf, flux^2: %lf\n", min, max, penalty, sum2); 993 1012 // psTrace("psModules.imcombine", 7, "Kernel %d: %f %d %d %f\n", index, fwhm, uOrder, vOrder, penalty); 994 1013 }
Note:
See TracChangeset
for help on using the changeset viewer.
