IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 1449


Ignore:
Timestamp:
Aug 9, 2004, 3:56:47 PM (22 years ago)
Author:
Paul Price
Message:

Small changes, mainly for clarification of small bits.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/modules/ModulesSDRS.tex

    r1436 r1449  
    1 %%% $Id: ModulesSDRS.tex,v 1.10 2004-08-09 23:20:02 price Exp $
     1%%% $Id: ModulesSDRS.tex,v 1.11 2004-08-10 01:56:47 price Exp $
    22\documentclass[panstarrs]{panstarrs}
    33
     
    5252
    5353This 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.
     54image processing modules.  The modules use the functionality of the
     55\PS{} Library (PSLib) to perform more complex tasks.  They will
     56eventually be tied together, employing a script written in a
     57high-level language to form a ``processing stage''.  Modules will be
     58constructed to support each of the required processing stages, and are
     59listed in this document according to the particular processing stage
     60for which they will primarily be used.
    5661
    5762In order to preserve name space, globally-visible structures and
    5863functions shall be prefixed with \code{pm}, for ``\PS{} Modules''.
    5964
    60 Modules will be constructed to support each of the processing stages.
    6165
    6266\section{Phase 2}
     
    6569are removed from the detector images, in preparation for the
    6670combination of multiple images in Phase 4.
    67 
    68 The Phase 2 processing stage is composed of several modules which
    69 perform the individual steps in the processing, each of which will act
    70 upon a data element of the appropriate size.  For example, the bias
    71 subtraction module will act upon a detector ``readout''
    72 (\code{psReadout}).  It will be the responsibility of the caller of
    73 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 as
    75 \tbd{Python}) to iterate over the components with which it is charged.
    7671
    7772The Phase 2 processing modules are:
     
    107102psReadout *pmSubtractBias(psReadout *in, void *fitSpec, const psList *overscans,
    108103                          pmOverscanAxis overscanAxis, const psStats *stat,
    109                           int nBin, psFit fit, const psReadout *bias);
     104                          int nBin, pmFit fit, const psReadout *bias);
    110105\end{verbatim}
    111106
     
    130125appropriate type (\code{psPolynomial1D} for \code{PM_FIT_POLYNOMIAL},
    131126and \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.
     127shall (after reduction of the vector and binning) be fit using the
     128specified functional form.  Upon return, the \code{fitSpec} shall
     129contain the coefficients of the overscan fit.
    134130
    135131The 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
     136shall generate a warning, no overscan subtraction shall be performed,
     137and the function shall proceed to the full-frame bias subtraction.
    139138
    140139The \code{overscanAxis} specifies how the prescan/overscan subtraction
     
    151150
    152151If the \code{overscanAxis} is \code{PM_OVERSCAN_NONE}, then the
    153 function shall not perform any overscan subtraction.  If the
    154 \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}.
     152function shall not perform any overscan subtraction, but proceed to
     153the full-frame bias subtraction.  If the \code{overscanAxis} is
     154\code{PM_OVERSCAN_ALL}, then all the overscan regions shall be used to
     155generate a single statistic (specified by \code{stat}) which shall be
     156subtracted 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}.
    160159
    161160If the \code{overscanAxis} is \code{PM_OVERSCAN_ROWS} or
     
    175174\code{PS_STAT_ROBUST_MODE}.
    176175
    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}).
     176If \code{nBin} is positive and less than the dimension of the vector,
     177then the vector shall subsequently be binned into \code{nBin} bins,
     178again using the specified statistic (\code{stat}).
     179
    180180If the overscan is not defined for each row/column, then the function
    181181shall 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.
     182functional form if \code{fit} is not \code{PM_FIT_NONE}; otherwise,
     183the function shall generate an error.
    184184
    185185Following any binning, the vector shall be fit by the functional form
     
    205205\subsection{Non-linearity}
    206206
    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.
     207We here specify two functions to perform the non-linearity correction,
     208since either (or both) might be used to specify the correction.
    210209
    211210The 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:
     211image for non-linearity by replacing the flux in each pixel of the
     212input image, \code{in}, with the result of the specified polynomial,
     213\code{coeff}, acting on the flux.  The API shall be the following:
    215214
    216215\begin{verbatim}
     
    239238If the particular value of a pixel is not found in the \code{inFlux}
    240239vector, the corresponding \code{outFlux} shall be calculated through
    241 linear interpolation.
     240linear interpolation.  If the value of a pixel is beyond the range of
     241values specified in the \code{inFlux} vector, then the function shall
     242generate a warning (at most one warning of this type per call,
     243preferably mentioning the number of pixels out of bounds).
    242244
    243245In 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.
     246more entries (being the lower limit required for linear
     247interpolation), then the function shall generate a warning, and make
     248no correction to any of the pixels.
    246249
    247250Both \code{pmNonLinearityPolynomial} and \code{pmNonLinearityLookup}
     
    270273in the input image with the value \code{PM_MASK_FLAT} (see
    271274\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}.
     275set to zero so that they are treated identically to zeroes.  Any
     276pixels masked in the \code{flat} shall be masked with corresponding
     277values in the \code{output}.
    274278
    275279The function shall not normalize the \code{flat}; this responsibility
     
    283287\subsection{Masking}
    284288
    285 The following modules mask various defects on an image.
    286 
    287289\subsubsection{Mask values}
    288290\label{sec:maskValues}
     
    295297    PM_MASK_BADCOL,                     ///< The pixel is a bad column
    296298    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
    299300} pmMaskValue;
    300301\end{verbatim}
Note: See TracChangeset for help on using the changeset viewer.