00001 /* @file pmFPAHeader.h 00002 * @brief Functions read FITS headers for FPA components 00003 * 00004 * @author Paul Price, IfA 00005 * @author Eugene Magnier, IfA 00006 * 00007 * @version $Revision: 1.7 $ $Name: $ 00008 * @date $Date: 2007/01/24 02:54:14 $ 00009 * Copyright 2005-2006 Institute for Astronomy, University of Hawaii 00010 */ 00011 00012 #ifndef PM_FPA_MASK_WEIGHT_H 00013 #define PM_FPA_MASK_WEIGHT_H 00014 00015 /// @addtogroup Camera Camera Layout 00016 /// @{ 00017 00018 #include "pmFPA.h" 00019 00020 /// Pixel mask values 00021 typedef enum { 00022 PM_MASK_CLEAR = 0x00, ///< The pixel is not masked 00023 PM_MASK_TRAP = 0x01, ///< The pixel is a charge trap. 00024 PM_MASK_BADCOL = 0x02, ///< The pixel is a bad column. 00025 PM_MASK_SAT = 0x04, ///< The pixel is saturated. 00026 PM_MASK_BAD = 0x08, ///< The pixel is low 00027 PM_MASK_FLAT = 0x10, ///< The pixel is non-positive in the flat-field. 00028 PM_MASK_MARK = 0x20, ///< The pixel is marked as temporarily ignored 00029 PM_MASK_EXT1 = 0x40, ///< This mask value is not used 00030 PM_MASK_EXT2 = 0x80, ///< This mask value is not used 00031 } pmMaskValue; 00032 00033 00034 /// Set a temporary readout mask using CELL.SATURATION and CELL.BAD 00035 /// 00036 /// Identifies pixels that are saturated (>= CELL.SATURATION) or bad (<= CELL.BAD). The mask that is produced 00037 /// within the readout is temporary --- it is not added to the HDU. This is intended for when the user is 00038 /// iterating using pmReadoutReadNext, in which case the HDU can't be generated. 00039 bool pmReadoutSetMask(pmReadout *readout ///< Readout for which to set mask 00040 ); 00041 00042 00043 /// Set a temporary readout weight map using CELL.GAIN and CELL.READNOISE 00044 /// 00045 /// Calculates weights (actually variances) for each pixel using photon statistics and the cell gain 00046 /// (CELL.GAIN) and read noise (CELL.READNOISE). The weight map that is produced within the readout is 00047 /// temporary --- it is not added to the HDU. This is intended for when the user is iterating using 00048 /// pmReadoutReadNext, in which case the HDU can't be generated. 00049 bool pmReadoutSetWeight(pmReadout *readout, ///< Readout for which to set weight 00050 bool poisson ///< Use poisson weights (in addition to read noise)? 00051 ); 00052 00053 /// Generate a readout mask (suitable for output) using CELL.SATURATION and CELL.BAD 00054 /// 00055 /// Identifies pixels that are saturated (>= CELL.SATURATION) or bad (<= CELL.BAD). The mask that is produced 00056 /// is suitable for output (complete with HDU entry). This is intended for most operations. 00057 bool pmReadoutGenerateMask(pmReadout *readout ///< Readout for which to generate mask 00058 ); 00059 00060 /// Generate a weight map (suitable for output) using CELL.GAIN and CELL.READNOISE 00061 /// 00062 /// Calculates weights (actually variances) for each pixel using photon statistics and the cell gain 00063 /// (CELL.GAIN) and read noise (CELL.READNOISE). The weight map that is produced within the readout is 00064 /// suitable for output (complete with HDU entry). This is intended for most operations. 00065 bool pmReadoutGenerateWeight(pmReadout *readout, ///< Readout for which to generate weight 00066 bool poisson ///< Use poisson weights (in addition to read noise)? 00067 ); 00068 00069 /// Generate mask and weight map for a readout 00070 /// 00071 /// Calls pmReadoutGenerateMask and pmReadoutGenerateWeight for the readout 00072 bool pmReadoutGenerateMaskWeight(pmReadout *readout, ///< Readout for which to generate mask and weights 00073 bool poisson ///< Use poisson weights (in addition to read noise)? 00074 ); 00075 00076 /// Generate mask and weight maps for all readouts within a cell 00077 /// 00078 /// Calls pmReadoutGenerateMaskWeight for each readout within the cell. 00079 bool pmCellGenerateMaskWeight(pmCell *cell, ///< Cell for which to generate mask and weights 00080 bool poisson ///< Use poisson weights (in addition to read noise)? 00081 ); 00082 /// @} 00083 #endif
1.5.1