Changeset 11253 for trunk/psModules/src/detrend/pmShutterCorrection.h
- Timestamp:
- Jan 23, 2007, 4:54:15 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/detrend/pmShutterCorrection.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/detrend/pmShutterCorrection.h
r9984 r11253 1 /// @file pmShutterCorrection.h 2 /// 3 /// @brief Functions to build and apply a shutter exposure-time correction. 4 /// 5 /// @ingroup Detrend 6 /// 7 /// @author Eugene Magnier, IfA 8 /// @author Paul Price, IfA 9 /// 10 /// @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 11 /// @date $Date: 2006-11-15 00:40:49 $ 12 /// 13 /// Copyright 2006 Institute for Astronomy, University of Hawaii 14 /// 15 16 17 /// A mechanical shutter may not yield uniform exposure times as a function of 18 /// position on the detector. The typical error consists of a constant 19 /// exposure-time offset relative to the requested value, ie exposure time is 20 /// T_o + dT(x,y). The exposure error, dT, may be measured with the following 21 /// scheme. Obtain a set of exposures with different exposures times taken of 22 /// the same flat-field source; the source must be spatially stable between the 23 /// exposures, but need not have a stable amplitude. For an illuminating flux 24 /// of intensity F(x,y) = F_o f(x,y), the signal recorded by any pixel in the 25 /// detector is given by: S(t,x,y) = F_o(t) f(x,y) (T_o + dT(x,y)) where F_o is 26 /// the F_o(t) is the (variable) overall intensity of the illuminating source 27 /// and f(x,y) is the spatial illumination patter times the flat-field response. 28 /// Choose a reference location in the image (eg, the detector center) and 29 /// divide by the value of that region (ie, mean or median): 30 /// 31 /// s(t,x,y) = S(t,x,y) / S(t,0,0) 32 /// s(t,x,y) = F_o(t) f(x,y) (T_o + dT(x,y)) / F_o(t) f(0,0) (T_o + dT(0,0)) 33 /// s(t,x,y) = f(x,y) (T_o + dT(x,y)) / f(0,0) (T_o + dT(0,0)) 34 /// 35 /// we can absorb the term f(0,0) into f(x,y) as we have no motivation for the 36 /// scale of f(x,y). For any single pixel, over the set of exposures, we thus 37 /// need to solve for dT(x,y), dT(0,0), and f'(x,y) in the equation: 38 /// s(t,x,y) = f'(x,y) (T_o + dT(x,y)) / (T_o + dT(0,0)) 39 /// 40 /// we avoid directly fitting these values as the process would be a non-linear 41 /// least-squares problem for every pixel in the image, and thus very time 42 /// consuming. There are linear options which may be used instead. 43 /// First, as T_o goes to a large value, s() approaches the value of f'(x,y). 44 /// Next, as T_o goes to a very small value, s() approaches the value of 45 /// f'(x,y)*dT(x,y)/dT(0,0). Finally, when s() has the value of 46 /// f'(x,y)*(1 + dT(x,y)/dT(0,0))/2, T_o has the value of dT(0,0). with data 47 /// points covering a reasonable dynamic range, we can solve for these three 48 /// values by interpolation and/or extrapolation. 49 /// 50 /// To take the strategy one step further, we could use the above recipe to 51 /// obtain a guess for the three parameters and then apply non-linear fitting to 52 /// solve more accurately for the parameters. If we limit this operation to a 53 /// handful of positions in the image (user defined, but the obvious choice would 54 /// be positions near the center, edges, and corners), then we may determine a 55 /// good value for dT(0,0). Since there is only one dT(0,0) for the image, we 56 /// can apply the resulting measurement to the rest of the pixels in the image. 57 /// If dT(0,0) is not a free parameter, then the fitting process is linear in 58 /// terms of dT(x,y) and f'(x,y) 1 /* @file pmShutterCorrection.h 2 * @brief Functions to build and apply a shutter exposure-time correction. 3 * 4 * @author Eugene Magnier, IfA 5 * @author Paul Price, IfA 6 * 7 * @version $Revision: 1.11 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2007-01-24 02:54:15 $ 9 * Copyright 2006 Institute for Astronomy, University of Hawaii 10 */ 59 11 60 12 #ifndef PM_SHUTTER_CORRECTION_H 61 13 #define PM_SHUTTER_CORRECTION_H 14 15 /// @addtogroup detrend Detrend Creation and Application 16 /// @{ 17 18 /* A mechanical shutter may not yield uniform exposure times as a function of 19 * position on the detector. The typical error consists of a constant 20 * exposure-time offset relative to the requested value, ie exposure time is 21 * T_o + dT(x,y). The exposure error, dT, may be measured with the following 22 * scheme. Obtain a set of exposures with different exposures times taken of 23 * the same flat-field source; the source must be spatially stable between the 24 * exposures, but need not have a stable amplitude. For an illuminating flux 25 * of intensity F(x,y) = F_o f(x,y), the signal recorded by any pixel in the 26 * detector is given by: S(t,x,y) = F_o(t) f(x,y) (T_o + dT(x,y)) where F_o is 27 * the F_o(t) is the (variable) overall intensity of the illuminating source 28 * and f(x,y) is the spatial illumination patter times the flat-field response. 29 * Choose a reference location in the image (eg, the detector center) and 30 * divide by the value of that region (ie, mean or median): 31 * 32 * s(t,x,y) = S(t,x,y) / S(t,0,0) 33 * s(t,x,y) = F_o(t) f(x,y) (T_o + dT(x,y)) / F_o(t) f(0,0) (T_o + dT(0,0)) 34 * s(t,x,y) = f(x,y) (T_o + dT(x,y)) / f(0,0) (T_o + dT(0,0)) 35 * 36 * we can absorb the term f(0,0) into f(x,y) as we have no motivation for the 37 * scale of f(x,y). For any single pixel, over the set of exposures, we thus 38 * need to solve for dT(x,y), dT(0,0), and f'(x,y) in the equation: 39 * s(t,x,y) = f'(x,y) (T_o + dT(x,y)) / (T_o + dT(0,0)) 40 * 41 * we avoid directly fitting these values as the process would be a non-linear 42 * least-squares problem for every pixel in the image, and thus very time 43 * consuming. There are linear options which may be used instead. 44 * First, as T_o goes to a large value, s() approaches the value of f'(x,y). 45 * Next, as T_o goes to a very small value, s() approaches the value of 46 * f'(x,y)*dT(x,y)/dT(0,0). Finally, when s() has the value of 47 * f'(x,y)*(1 + dT(x,y)/dT(0,0))/2, T_o has the value of dT(0,0). with data 48 * points covering a reasonable dynamic range, we can solve for these three 49 * values by interpolation and/or extrapolation. 50 * 51 * To take the strategy one step further, we could use the above recipe to 52 * obtain a guess for the three parameters and then apply non-linear fitting to 53 * solve more accurately for the parameters. If we limit this operation to a 54 * handful of positions in the image (user defined, but the obvious choice would 55 * be positions near the center, edges, and corners), then we may determine a 56 * good value for dT(0,0). Since there is only one dT(0,0) for the image, we 57 * can apply the resulting measurement to the rest of the pixels in the image. 58 * If dT(0,0) is not a free parameter, then the fitting process is linear in 59 * terms of dT(x,y) and f'(x,y) 60 */ 62 61 63 62 #include <pslib.h> … … 130 129 ); 131 130 131 /// @} 132 132 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
