Changeset 1117
- Timestamp:
- Jun 28, 2004, 4:23:47 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/doc/modules/ModulesSDRS.tex (modified) (20 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/modules/ModulesSDRS.tex
r1113 r1117 1 %%% $Id: ModulesSDRS.tex,v 1. 5 2004-06-29 01:44:23price Exp $1 %%% $Id: ModulesSDRS.tex,v 1.6 2004-06-29 02:23:47 price Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 … … 76 76 \item Subtract the background; 77 77 \item Mask bad pixels; 78 \item Mask cosmic rays;78 \item \tbd{Mask cosmic rays;} 79 79 \item \tbd{Mask optical defects;} 80 80 \item \tbd{Measure the PSF;} … … 85 85 86 86 Each of these shall be discussed in turn, below. Those modules which 87 are \tbd{TBD} will be deferred until they may be properly defined. 87 are \tbd{TBD} will be deferred until they may be properly defined, 88 some of which requires further research to define the best algorithm. 88 89 89 90 These modules are built on top of, and are dependent upon, the \PS{} … … 121 122 \end{verbatim} 122 123 123 The \code{kernel} member shall point to an image that contains the 124 kernel values. The kernel has both positive and negative indices to 125 convey the positive and negative shifts. The maximum extent of these 126 shifts shall be defined by the \code{xMin}, \code{xMax}, \code{yMin} 127 and \code{yMax} members. Note that \code{xMin} and \code{yMin}, under 128 normal circumstances, should be negative numbers. That is, 129 \code{myKernel->kernel[-3][-2]} may be defined if \code{yMin} and 130 \code{xMin} are equal to or more negative than -3 and -2, 131 respectively. 124 The \code{kernel} shall contain the kernel values. The kernel has 125 both positive and negative indices to convey the positive and negative 126 shifts. The maximum extent of these shifts shall be defined by the 127 \code{xMin}, \code{xMax}, \code{yMin} and \code{yMax} members. Note 128 that \code{xMin} and \code{yMin}, under normal circumstances, should 129 be negative numbers. That is, \code{myKernel->kernel[-3][-2]} may be 130 defined if \code{yMin} and \code{xMin} are equal to or more negative 131 than -3 and -2, respectively. 132 132 133 133 Of course, we require the appropriate constructor and destructor: … … 137 137 \end{verbatim} 138 138 139 \code{psKernelAlloc} shall allocate a kernel. In the event that one 140 of the minimum values is greater than the corresponding maximum value, 141 the function shall generate a warning, and the offending values shall 142 be exchanged. 139 143 140 144 \subsection{Calculate the convolution kernel} 141 145 142 146 Given a list of pixel shifts made in the course of OT guiding, 143 \code{psPhase2GetKernel} shall return the kernel. The API shall be144 the following:147 \code{psPhase2GetKernel} shall return the appropriate kernel. The API 148 shall be the following: 145 149 \begin{verbatim} 146 150 psKernel *psPhase2GetKernel(const psVector *xShifts, const psVector *yShifts); … … 150 154 by the user, most probably from the FITS file containing the image. 151 155 152 The elements of the shift vectors should be of an integer type ,156 The elements of the shift vectors should be of an integer type; 153 157 otherwise the values shall be truncated to integers. The output 154 158 kernel shall be normalised such that the sum over the kernel is unity. … … 185 189 \subsection{PSLib Routines} 186 190 187 \code{psKernel} and \code{psImageConvolve} shall be part of the \PS{} 188 Library, \code{PSLib}, so that they may be re-used for other modules. 191 \code{psKernel} and \code{psImageConvolve} shall be incorporated into 192 the \PS{} Library, \code{PSLib}, so that they may be re-used for other 193 modules. 189 194 190 195 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 215 220 We also require a corresponding constructor and destructor: 216 221 \begin{verbatim} 217 /** Constructor */ 218 psImageRegion *psImageRegionAlloc(int x0, ///< x offset to region 219 int y0, ///< y offset to region 220 int nX, ///< Size of region in x 221 int nY ///< Size of region in y 222 ); 223 /** Destructor */ 224 void psImageRegionFree(psImageRegion *reg ///< Region to destroy 225 ); 222 psImageRegion *psImageRegionAlloc(int x0, int y0, int nX, int nY); 223 void psImageRegionFree(psImageRegion *reg); 226 224 \end{verbatim} 227 225 … … 234 232 but we neglected to define them for PSLib. We now define 235 233 one-dimensional cubic splines, \code{psSpline1D}, which shall be 236 inc luded into PSLib:234 incorporated into PSLib: 237 235 238 236 \begin{verbatim} … … 261 259 Of course, we require the appropriate constructors and destructor: 262 260 \begin{verbatim} 263 /** Constructors */264 261 psSpline1D *psSpline1DAlloc(int n, float min, float max); 265 262 psSpline1D *psSpline1DAllocGeneric(const psVector *bounds); … … 286 283 287 284 \begin{verbatim} 288 /** Evaluator */ 289 float psSpline1DEval(const psSpline1D *spline, ///< Spline to evaluate 290 float x ///< Normalised (-1,1) coordinates at which to evaluate 291 ); 285 float psSpline1DEval(const psSpline1D *spline, float x); 292 286 \end{verbatim} 293 287 … … 409 403 the bounds of the input image. 410 404 405 \subsection{PSLib} 406 407 The \code{psSpline1D} and \code{psFit} shall be incorporated into 408 PSLib. 409 410 411 411 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 412 412 … … 484 484 \subsection{Subtract sky} 485 485 486 \tbd{This is a simpl ysky subtraction routine. A more complicated486 \tbd{This is a simple sky subtraction routine. A more complicated 487 487 routine will be specified in the future, following research into the 488 488 best algorithm.} … … 494 494 the following: 495 495 \begin{verbatim} 496 /** Simple sky subtraction */ 497 psReadout *psPhase2SubtractSky(psReadout *in, ///< Input image to be sky-subtracted, and output 498 void *fitSpec, ///< Polynomial/Spline specification, returns coeffcients 499 psFit fit, ///< Fit type 500 int binFactor, ///< Binning factor to use on image before solving for polynomial 501 psStats *stats, ///< Statistics to use in binning 502 float clipSD ///< Standard deviations to clip at after binning. 503 ); 496 psReadout *psPhase2SubtractSky(psReadout *in, void *fitSpec, psFit fit, int binFactor, psStats *stats, 497 float clipSD); 504 498 \end{verbatim} 505 499 … … 514 508 spline on the basis of \code{fit} (in the same manner as for bias 515 509 subtraction; \S\ref{sec:bias}). If \code{fitSpec} is \code{NULL} or 516 \code{fit} is \code{PS_FIT_NONE} , then no fit shall be performed, and517 the function shall simply return.510 \code{fit} is \code{PS_FIT_NONE} or \code{PS_FIT_LINEAR}, then no fit 511 shall be performed, and the function shall simply return. 518 512 519 513 When fitting the polynomial, the function shall first bin the input … … 534 528 Binned pixels deviating more than \code{clipSD} standard deviations 535 529 from the mean of the binned pixels shall be clipped in a single 536 clipping iteration. If the \code{clipSD} is non-positive, then the 537 function shall generate a warning and not perform any clipping. 530 clipping iteration before polynomial fitting. If the \code{clipSD} is 531 non-positive, then the function shall generate a warning and not 532 perform any clipping. 538 533 539 534 … … 566 561 \subsection{Bad pixels} 567 562 568 Given an input image, a bad pixel mask, a corresponding value in the 569 bad pixel mask to mask in the input image, a saturation level, and a 570 growing radius, \code{psPhase2MaskBadPixels} shall mask in the input 571 image those pixels in the bad pixel mask that match the value to mask. 572 The API shall be the following: 563 Given an input image, \code{in}, a bad pixel \code{mask}, a 564 corresponding value in the bad pixel mask to mask in the input image, 565 \code{maskVal}, a saturation level, and a growing radius, 566 \code{psPhase2MaskBadPixels} shall mask in the input image those 567 pixels in the bad pixel mask that match the value to mask. The API 568 shall be the following: 573 569 \begin{verbatim} 574 570 /** Returns an image that has the bad pixels masked. Also masks saturated pixels */ … … 582 578 583 579 Note that the input image, \code{in}, is modified in-place. All 584 pixels in the \code{mask} which satisfy the \code{maskVal} or have 585 corresponding flux greater than \code{sat}, shall have their 586 corresponding pixels in the input image, \code{in}, along with all 587 pixels within the \code{grow} radius masked. 580 pixels in the \code{mask} which satisfy the \code{maskVal} shall have 581 their corresponding pixels in the input image, \code{in}, along with 582 all pixels within the \code{grow} radius masked. Pixels which have 583 flux greater than \code{sat} shall also be masked, but not grown. 584 585 586 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 587 588 589 590 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 591 \bibliographystyle{plain} 592 \bibliography{panstarrs} 593 594 \end{document} 588 595 589 596 \subsection{Cosmic rays} … … 624 631 optical model of the camera. Put this one on the backburner?} 625 632 626 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%627 633 628 634 \section{Objects} … … 732 738 not all of which may correspond to legal positions on the input chip, 733 739 \code{in}. 734 735 736 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%737 \bibliographystyle{plain}738 \bibliography{panstarrs}739 740 \end{document}741
Note:
See TracChangeset
for help on using the changeset viewer.
