- Timestamp:
- May 3, 2010, 8:41:49 AM (16 years ago)
- Location:
- branches/tap_branches
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/tap_branches
- Property svn:mergeinfo changed
-
branches/tap_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/tap_branches/psModules/src/imcombine/pmSubtractionAnalysis.c
r25279 r27838 16 16 #define KERNEL_MOSAIC 2 // Half-number of kernel instances in the mosaic image 17 17 18 //#define TESTING 18 19 19 20 bool pmSubtractionAnalysis(psMetadata *analysis, psMetadata *header, … … 73 74 false); // Image of the kernel 74 75 if (!kernel) { 75 psError( PS_ERR_UNKNOWN, false, "Unable to generate kernel image.");76 psError(psErrorCodeLast(), false, "Unable to generate kernel image."); 76 77 psFree(convKernels); 77 78 return false; … … 80 81 if (psImageOverlaySection(convKernels, kernel, (i + KERNEL_MOSAIC) * fullSize, 81 82 (j + KERNEL_MOSAIC) * fullSize, "=") == 0) { 82 psError( PS_ERR_UNKNOWN, false, "Unable to overlay kernel image.");83 psError(psErrorCodeLast(), false, "Unable to overlay kernel image."); 83 84 psFree(kernel); 84 85 psFree(convKernels); … … 92 93 true); // Image of the kernel 93 94 if (!kernel) { 94 psError( PS_ERR_UNKNOWN, false, "Unable to generate kernel image.");95 psError(psErrorCodeLast(), false, "Unable to generate kernel image."); 95 96 psFree(convKernels); 96 97 return false; … … 100 101 (2 * KERNEL_MOSAIC + 1 + i + KERNEL_MOSAIC) * fullSize + 4, 101 102 (j + KERNEL_MOSAIC) * fullSize, "=") == 0) { 102 psError( PS_ERR_UNKNOWN, false, "Unable to overlay kernel image.");103 psError(psErrorCodeLast(), false, "Unable to overlay kernel image."); 103 104 psFree(kernel); 104 105 psFree(convKernels); … … 116 117 } 117 118 118 119 #if 0 119 // sample difference images 120 { 121 psMetadataAddArray(analysis, PS_LIST_TAIL, "SUBTRACTION.SAMPLE.STAMP.SET", PS_META_DUPLICATE_OK, "Sample Difference Stamps", kernels->sampleStamps); 122 } 123 124 #ifdef TESTING 120 125 // Generate images of the kernel components 121 126 { … … 128 133 } 129 134 psArray *kernelImages = pmSubtractionKernelSolutions(kernels, 0.0, 0.0, false); 130 psFits *kernelFile = psFitsOpen("kernels .fits", "w");135 psFits *kernelFile = psFitsOpen("kernels1.fits", "w"); 131 136 (void)psFitsWriteImageCube(kernelFile, header, kernelImages, NULL); 132 137 psFitsClose(kernelFile); … … 134 139 psFree(header); 135 140 } 141 if (kernels->solution2) { 142 psMetadata *header = psMetadataAlloc(); // Header 143 for (int i = 0; i < kernels->solution2->n; i++) { 144 psString name = NULL; // Header keyword 145 psStringAppend(&name, "SOLN%04d", i); 146 psMetadataAddF64(header, PS_LIST_TAIL, name, 0, NULL, kernels->solution2->data.F64[i]); 147 psFree(name); 148 } 149 psArray *kernelImages = pmSubtractionKernelSolutions(kernels, 0.0, 0.0, true); 150 psFits *kernelFile = psFitsOpen("kernels2.fits", "w"); 151 (void)psFitsWriteImageCube(kernelFile, header, kernelImages, NULL); 152 psFitsClose(kernelFile); 153 psFree(kernelImages); 154 psFree(header); 155 } 136 156 #endif 137 157 … … 141 161 psImage *image = pmSubtractionKernelImage(kernels, 0.5, 0.5, false); // Image of the kernel 142 162 if (!image) { 143 psError( PS_ERR_UNKNOWN, false, "Unable to generate image of kernel.");163 psError(psErrorCodeLast(), false, "Unable to generate image of kernel."); 144 164 return false; 145 165 } … … 196 216 psImage *image = pmSubtractionKernelImage(kernels, 0.5, 0.5, false); // Image of the kernel 197 217 if (!image) { 198 psError( PS_ERR_UNKNOWN, false, "Unable to generate image of kernel.");218 psError(psErrorCodeLast(), false, "Unable to generate image of kernel."); 199 219 return false; 200 220 } … … 253 273 // Difference in background 254 274 { 255 psImage *polyValues = p_pmSubtractionPolynomialFromCoords(NULL, kernels, numCols, numRows, 256 numCols / 2.0, numRows / 2.0); // Polynomial 275 psImage *polyValues = p_pmSubtractionPolynomial(NULL, kernels->spatialOrder, 0.0, 0.0); // Polynomial 257 276 float bg = p_pmSubtractionSolutionBackground(kernels, polyValues); // Background difference 258 277 … … 279 298 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DEV_RMS, 0, "RMS stamp deviation", 280 299 kernels->rms); 300 301 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FSIGMA_RES_MEAN, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResMean); 302 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FSIGMA_RES_STDEV, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResStdev); 303 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FMIN_RES_MEAN, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResMean); 304 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FMIN_RES_STDEV, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResStdev); 305 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FMAX_RES_MEAN, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResMean); 306 psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FMAX_RES_STDEV, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResStdev); 307 308 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FSIGMA_RES_MEAN, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResMean); 309 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FSIGMA_RES_STDEV, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResStdev); 310 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FMIN_RES_MEAN, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResMean); 311 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FMIN_RES_STDEV, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResStdev); 312 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FMAX_RES_MEAN, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResMean); 313 psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_FMAX_RES_STDEV, 0, "Mean Fractional Sigma of Residuals", kernels->fSigResStdev); 281 314 } 282 315
Note:
See TracChangeset
for help on using the changeset viewer.
