Changeset 1449
- Timestamp:
- Aug 9, 2004, 3:56:47 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/doc/modules/ModulesSDRS.tex (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/modules/ModulesSDRS.tex
r1436 r1449 1 %%% $Id: ModulesSDRS.tex,v 1.1 0 2004-08-09 23:20:02price Exp $1 %%% $Id: ModulesSDRS.tex,v 1.11 2004-08-10 01:56:47 price Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 … … 52 52 53 53 This document describes the Pan-STARRS Image Processing Pipeline (IPP) 54 image processing modules. The modules use the functionality \PS{} 55 Library (PSLib) perform more complex tasks. 54 image processing modules. The modules use the functionality of the 55 \PS{} Library (PSLib) to perform more complex tasks. They will 56 eventually be tied together, employing a script written in a 57 high-level language to form a ``processing stage''. Modules will be 58 constructed to support each of the required processing stages, and are 59 listed in this document according to the particular processing stage 60 for which they will primarily be used. 56 61 57 62 In order to preserve name space, globally-visible structures and 58 63 functions shall be prefixed with \code{pm}, for ``\PS{} Modules''. 59 64 60 Modules will be constructed to support each of the processing stages.61 65 62 66 \section{Phase 2} … … 65 69 are removed from the detector images, in preparation for the 66 70 combination of multiple images in Phase 4. 67 68 The Phase 2 processing stage is composed of several modules which69 perform the individual steps in the processing, each of which will act70 upon a data element of the appropriate size. For example, the bias71 subtraction module will act upon a detector ``readout''72 (\code{psReadout}). It will be the responsibility of the caller of73 the Phase 2 processing modules (i.e., the Phase 2 processing stage,74 which will likely be a script written in a high-level language such as75 \tbd{Python}) to iterate over the components with which it is charged.76 71 77 72 The Phase 2 processing modules are: … … 107 102 psReadout *pmSubtractBias(psReadout *in, void *fitSpec, const psList *overscans, 108 103 pmOverscanAxis overscanAxis, const psStats *stat, 109 int nBin, p sFit fit, const psReadout *bias);104 int nBin, pmFit fit, const psReadout *bias); 110 105 \end{verbatim} 111 106 … … 130 125 appropriate type (\code{psPolynomial1D} for \code{PM_FIT_POLYNOMIAL}, 131 126 and \code{psSpline1D} for \code{PM_FIT_SPLINE}), and the overscan 132 shall be fit using the specified functional form. Upon return, the 133 \code{fitSpec} shall contain the coefficients of the overscan fit. 127 shall (after reduction of the vector and binning) be fit using the 128 specified functional form. Upon return, the \code{fitSpec} shall 129 contain the coefficients of the overscan fit. 134 130 135 131 The prescan and/or overscan regions to be used are specified in 136 \code{overscans}, which is a linked list of subimages. If 137 \code{overscans} is non-\code{NULL} and \code{overscanAxis} is not 138 \code{PM_OVERSCAN_NONE}, then the function shall generate a warning. 132 \code{overscans}, which is a linked list of subimages. In cases where 133 \code{overscans} is \code{NULL} and \code{overscanAxis} is not 134 \code{PM_OVERSCAN_NONE}, or if \code{overscans} is non-\code{NULL} and 135 \code{overscanAxis} is \code{PM_OVERSCAN_NONE}, then the function 136 shall generate a warning, no overscan subtraction shall be performed, 137 and the function shall proceed to the full-frame bias subtraction. 139 138 140 139 The \code{overscanAxis} specifies how the prescan/overscan subtraction … … 151 150 152 151 If the \code{overscanAxis} is \code{PM_OVERSCAN_NONE}, then the 153 function shall not perform any overscan subtraction . If the154 \code{overscanAxis} is \code{PM_OVERSCAN_ALL}, then all the overscan 155 regions shall be used to generate a single statistic (specified by 156 \code{stat}) which shall be subtracted from the entire image. A 157 warning shall be generated if the \code{overscanAxis} is 158 \code{ PM_OVERSCAN_NONE} or \code{PM_OVERSCAN_ALL} and the \code{fit}159 is not \code{PM_FIT_NONE}.152 function shall not perform any overscan subtraction, but proceed to 153 the full-frame bias subtraction. If the \code{overscanAxis} is 154 \code{PM_OVERSCAN_ALL}, then all the overscan regions shall be used to 155 generate a single statistic (specified by \code{stat}) which shall be 156 subtracted from the entire image. A warning shall be generated if the 157 \code{overscanAxis} is \code{PM_OVERSCAN_NONE} or 158 \code{PM_OVERSCAN_ALL} and the \code{fit} is not \code{PM_FIT_NONE}. 160 159 161 160 If the \code{overscanAxis} is \code{PM_OVERSCAN_ROWS} or … … 175 174 \code{PS_STAT_ROBUST_MODE}. 176 175 177 If \code{nBin} is positive and less than the dimension 178 of the vector, then the vector shall subsequently be binned down into 179 \code{nBin} bins, again using the specified statistic (\code{stat}). 176 If \code{nBin} is positive and less than the dimension of the vector, 177 then the vector shall subsequently be binned into \code{nBin} bins, 178 again using the specified statistic (\code{stat}). 179 180 180 If the overscan is not defined for each row/column, then the function 181 181 shall generate a warning and then interpolate using the provided 182 functional form if \code{fit} is not \code{PM_FIT_NONE}; 183 otherwise,the function shall generate an error.182 functional form if \code{fit} is not \code{PM_FIT_NONE}; otherwise, 183 the function shall generate an error. 184 184 185 185 Following any binning, the vector shall be fit by the functional form … … 205 205 \subsection{Non-linearity} 206 206 207 We shall specify two functions to perform the non-linearity 208 correction, in order to implement the possible methods of specifying 209 the correction. 207 We here specify two functions to perform the non-linearity correction, 208 since either (or both) might be used to specify the correction. 210 209 211 210 The first, \code{pmNonLinearityPolynomial} shall correct the input 212 image for non-linearity by applying the given polynomial,213 \code{coeff}, to the flux of each pixel in the input image, \code{in}. 214 The API shall be the following:211 image for non-linearity by replacing the flux in each pixel of the 212 input image, \code{in}, with the result of the specified polynomial, 213 \code{coeff}, acting on the flux. The API shall be the following: 215 214 216 215 \begin{verbatim} … … 239 238 If the particular value of a pixel is not found in the \code{inFlux} 240 239 vector, the corresponding \code{outFlux} shall be calculated through 241 linear interpolation. 240 linear interpolation. If the value of a pixel is beyond the range of 241 values specified in the \code{inFlux} vector, then the function shall 242 generate a warning (at most one warning of this type per call, 243 preferably mentioning the number of pixels out of bounds). 242 244 243 245 In the event that the \code{inFlux} vector does not contain two or 244 more entries (necessary for linear interpolation), then the function 245 shall generate a warning, and make no correction to any of the pixels. 246 more entries (being the lower limit required for linear 247 interpolation), then the function shall generate a warning, and make 248 no correction to any of the pixels. 246 249 247 250 Both \code{pmNonLinearityPolynomial} and \code{pmNonLinearityLookup} … … 270 273 in the input image with the value \code{PM_MASK_FLAT} (see 271 274 \S\ref{sec:maskValues}). Negative pixels in the \code{flat} may be 272 set to zero so that they are treated identically to zeroes. And 273 pixels masked in the \code{flat} shall be masked in the \code{output}. 275 set to zero so that they are treated identically to zeroes. Any 276 pixels masked in the \code{flat} shall be masked with corresponding 277 values in the \code{output}. 274 278 275 279 The function shall not normalize the \code{flat}; this responsibility … … 283 287 \subsection{Masking} 284 288 285 The following modules mask various defects on an image.286 287 289 \subsubsection{Mask values} 288 290 \label{sec:maskValues} … … 295 297 PM_MASK_BADCOL, ///< The pixel is a bad column 296 298 PM_MASK_SAT, ///< The pixel is saturated 297 PM_MASK_FLAT, ///< The pixel is non-positive in the flat-field 298 PM_MASK_CR_MORPH ///< The pixel is determined to be a cosmic ray, from morphology 299 PM_MASK_FLAT ///< The pixel is non-positive in the flat-field 299 300 } pmMaskValue; 300 301 \end{verbatim}
Note:
See TracChangeset
for help on using the changeset viewer.
