IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 23, 2007, 4:54:15 PM (19 years ago)
Author:
magnier
Message:

cleaned up Doxygen groups

File:
1 edited

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 */
    5911
    6012#ifndef PM_SHUTTER_CORRECTION_H
    6113#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 */
    6261
    6362#include <pslib.h>
     
    130129                             );
    131130
     131/// @}
    132132#endif
Note: See TracChangeset for help on using the changeset viewer.