Changeset 30322 for branches/eam_branches/ipp-20101205/psModules/src/imcombine/pmSubtractionKernels.h
- Timestamp:
- Jan 20, 2011, 11:53:03 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20101205/psModules/src/imcombine/pmSubtractionKernels.h
r30266 r30322 2 2 #define PM_SUBTRACTION_KERNELS_H 3 3 4 #include <string.h> 5 #include <pslib.h> 6 7 /// Type of subtraction kernel 8 typedef enum { 9 PM_SUBTRACTION_KERNEL_NONE, ///< Nothing --- an error 10 PM_SUBTRACTION_KERNEL_POIS, ///< Pan-STARRS Optimal Image Subtraction --- delta functions 11 PM_SUBTRACTION_KERNEL_ISIS, ///< Traditional kernel --- gaussians modified by polynomials 12 PM_SUBTRACTION_KERNEL_ISIS_RADIAL, ///< ISIS + higher-order radial Hermitians 13 PM_SUBTRACTION_KERNEL_HERM, ///< Hermitian polynomial kernels 14 PM_SUBTRACTION_KERNEL_DECONV_HERM, ///< Deconvolved Hermitian polynomial kernels 15 PM_SUBTRACTION_KERNEL_SPAM, ///< Summed Pixels for Advanced Matching --- summed delta functions 16 PM_SUBTRACTION_KERNEL_FRIES, ///< Fibonacci Radius Increases Excellence of Subtraction 17 PM_SUBTRACTION_KERNEL_GUNK, ///< Grid United with Normal Kernel --- POIS and ISIS hybrid 18 PM_SUBTRACTION_KERNEL_RINGS, ///< Rings Instead of the Normal Gaussian Subtraction 19 } pmSubtractionKernelsType; 20 21 /// Modes --- specifies which image to convolve 22 typedef enum { 23 PM_SUBTRACTION_MODE_ERR, // Error in the mode 24 PM_SUBTRACTION_MODE_1, // Convolve image 1 25 PM_SUBTRACTION_MODE_2, // Convolve image 2 26 PM_SUBTRACTION_MODE_UNSURE, // Not sure yet which image to convolve so try to satisfy both 27 PM_SUBTRACTION_MODE_DUAL, // Dual convolution 28 } pmSubtractionMode; 29 30 /// Kernels specification 31 typedef struct { 32 pmSubtractionKernelsType type; ///< Type of kernels --- allowing the use of multiple kernels 33 psString description; ///< Description of the kernel parameters 34 int xMin, xMax, yMin, yMax; ///< Bounds of image (for normalisation) 35 long num; ///< Number of kernel components (not including the spatial ones) 36 psVector *u, *v; ///< Offset (for POIS) or polynomial order (for ISIS, HERM or DECONV_HERM) 37 psVector *widths; ///< Gaussian FWHMs (ISIS, HERM or DECONV_HERM) 38 psVector *uStop, *vStop; ///< Width of kernel element (SPAM,FRIES only) 39 psArray *preCalc; ///< Array of images containing pre-calculated kernel (for ISIS, HERM or DECONV_HERM) 40 float penalty; ///< Penalty for wideness 41 psVector *penalties1; ///< Penalty for each kernel component 42 psVector *penalties2; ///< Penalty for each kernel component 43 bool havePenalties; ///< flag to test if we have already calculated the penalties or not. 44 int size; ///< The half-size of the kernel 45 int inner; ///< The size of an inner region 46 int spatialOrder; ///< The spatial order of the kernels 47 int bgOrder; ///< The order for the background fitting 48 pmSubtractionMode mode; ///< Mode for subtraction 49 psVector *solution1, *solution2; ///< Solution for the PSF matching 50 psVector *solution1err, *solution2err; ///< error in solution for the PSF matching 51 // Quality information 52 float mean, rms; ///< Mean and RMS of chi^2 from stamps 53 int numStamps; ///< Number of good stamps 54 float fResSigmaMean; ///< mean fractional stdev of residuals 55 float fResSigmaStdev; ///< stdev of fractional stdev of residuals 56 float fResOuterMean; ///< mean fractional positive swing in residuals 57 float fResOuterStdev; ///< stdev of fractional positive swing in residuals 58 float fResTotalMean; ///< mean fractional negative swing in residuals 59 float fResTotalStdev; ///< stdev of fractional negative swing in residuals 60 psArray *sampleStamps; ///< array of brightest set of stamps for output visualizations 61 } pmSubtractionKernels; 62 63 // pmSubtractionKernels->preCalc is an array of pmSubtractionKernelPreCalc structures 64 typedef struct { 65 psVector *uCoords; // used by RINGS 66 psVector *vCoords; // used by RINGS 67 psVector *poly; // used by RINGS 68 69 psVector *xKernel; // used by ISIS, HERM, DECONV_HERM 70 psVector *yKernel; // used by ISIS, HERM, DECONV_HERM 71 psKernel *kernel; // used by ISIS, HERM, DECONV_HERM 72 } pmSubtractionKernelPreCalc; 4 // #include <string.h> 5 // #include <pslib.h> 73 6 74 7 // Assertion to check pmSubtractionKernels
Note:
See TracChangeset
for help on using the changeset viewer.
