Changeset 3734
- Timestamp:
- Apr 20, 2005, 5:30:12 PM (21 years ago)
- Location:
- trunk/doc
- Files:
-
- 4 edited
-
modules/ChangeLogSDRS.tex (modified) (2 diffs)
-
modules/ModulesSDRS.tex (modified) (4 diffs)
-
pslib/ChangeLogSDRS.tex (modified) (2 diffs)
-
pslib/psLibSDRS.tex (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/modules/ChangeLogSDRS.tex
r3425 r3734 1 %%% $Id: ChangeLogSDRS.tex,v 1.1 5 2005-03-15 23:13:12 price Exp $1 %%% $Id: ChangeLogSDRS.tex,v 1.16 2005-04-21 03:30:12 price Exp $ 2 2 3 3 \subsection{Changes from version 00 to version 01} … … 55 55 \item Added section on image subtraction 56 56 \end{itemize} 57 58 \subsection{Changes from version 04 to version 06 (Present)} 59 60 \begin{itemize} 61 \item Updated \code{psPixels} to \code{psArray} of \code{psPixelCoord}. 62 \end{itemize} -
trunk/doc/modules/ModulesSDRS.tex
r3427 r3734 1 %%% $Id: ModulesSDRS.tex,v 1.3 5 2005-03-15 23:19:36price Exp $1 %%% $Id: ModulesSDRS.tex,v 1.36 2005-04-21 03:30:12 price Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 … … 1635 1635 \end{enumerate} 1636 1636 1637 The function shall return an array of \code{psPixels}, one for each of 1638 the input \code{images}, containing pixels that have been identified 1639 as cosmic rays according to the above criteria. 1637 The function shall return a \code{psArray} of \code{psArray}s of 1638 \code{psPixelCoord}, one \code{psArray} for each of the input 1639 \code{images}, containing pixels that have been identified as cosmic 1640 rays according to the above criteria. 1640 1641 1641 1642 If any of the input pointers are \code{NULL}, then the function shall … … 1669 1670 1670 1671 for (int i = 0; i < nImages; i++) { 1671 ps Pixels*blanks = NULL; // List of blank pixels1672 psArray *blanks = NULL; // List of blank pixels 1672 1673 transformed->data[i] = psImageTransform(NULL, &blanks, inputs->data[i], 1673 1674 inputMask->data[i], inputMaskVal, NAN, skyToDetector, … … 1690 1691 NULL, numIter, sigmaClip, combineStats); // Combined image 1691 1692 psArray *bad = pmRejectPixels(inputs, rejected, NULL, skyToDetector, rejThreshold, gradLimit); // Bad pix 1692 ps Pixels*combinePixels = NULL; // Pixels to combine1693 psArray *combinePixels = NULL; // Pixels to combine 1693 1694 for (int i = 0; i < nImages; i++) { 1694 ps Pixels*badSource = psPixelsTransform(NULL, bad->data[i], skyToDetector); // Bad pixels on the input1695 psArray *badSource = psPixelsTransform(NULL, bad->data[i], skyToDetector); // Bad pixels on the input 1695 1696 psImage *badMask = psPixelsToMask(NULL, badSource, PS_MASK_COSMICRAY); // Mask image for the input 1696 1697 (void)psBinaryOp(inputMask->data[i], inputMask->data[i], "|", badMask); // Put CRs into original mask -
trunk/doc/pslib/ChangeLogSDRS.tex
r3663 r3734 1 %%% $Id: ChangeLogSDRS.tex,v 1.8 5 2005-04-05 21:26:50 jhoblittExp $1 %%% $Id: ChangeLogSDRS.tex,v 1.86 2005-04-21 03:26:00 price Exp $ 2 2 3 3 \subsection{Changes from version 00 to version 01} … … 481 481 from a file. 482 482 \item \code{psMetadataAddV} changed to use \code{va_list} parameter (bug 312). 483 483 484 484 \item Modified \code{psImageTransform} in preparation for image combination. 485 485 486 486 \item Added \code{psPixels} structure and related functions 487 487 \item Added \code{psPlaneTransformDeriv}. 488 488 \item Added \code{psImageGrowMask}. 489 489 \item Added Earth Orientation Calculations Section 490 490 491 491 \item Changes to the Time section: 492 \begin{itemize}493 \item Add \code{psTimeBulliten} enum494 \item Add \code{leapsecond} member to \code{psTimeType}495 \item Change \code{psTime.usec} $\rightarrow$ \code{psTime.nsec} (nanoseconds)496 \item Minor reorganization and additional comments497 \item Rename \code{psTimeGetTime()} $\rightarrow$ \code{psTimeGetNow()}498 \item New rules for time system converstion499 \item Rename \code{psTimeToLST()} $\rightarrow$ \code{psTimeToLMST()}500 \item Rename \code{psTimeLeapSeconds()} $\rightarrow$ \code{psTimeLeapSecondDelta()}501 \item Add \code{psTimeIsLeapSecond()}502 \item ISO8601 format clarifications503 \item Rename \code{psTimeToISOTime()} $\rightarrow$ \code{psTimeToISO()}504 \item Add \code{psTimeFromUTC()}505 \item Add \code{psTimeFromTT()}506 \item Change \code{psTime} math rules507 \item Change ``Time Tables'' to have IERS Bulliten A \& B508 \item Add Dates \& Times Test Inputs appendix509 \end{itemize}510 492 \begin{itemize} 493 \item Add \code{psTimeBulliten} enum 494 \item Add \code{leapsecond} member to \code{psTimeType} 495 \item Change \code{psTime.usec} $\rightarrow$ \code{psTime.nsec} (nanoseconds) 496 \item Minor reorganization and additional comments 497 \item Rename \code{psTimeGetTime()} $\rightarrow$ \code{psTimeGetNow()} 498 \item New rules for time system converstion 499 \item Rename \code{psTimeToLST()} $\rightarrow$ \code{psTimeToLMST()} 500 \item Rename \code{psTimeLeapSeconds()} $\rightarrow$ \code{psTimeLeapSecondDelta()} 501 \item Add \code{psTimeIsLeapSecond()} 502 \item ISO8601 format clarifications 503 \item Rename \code{psTimeToISOTime()} $\rightarrow$ \code{psTimeToISO()} 504 \item Add \code{psTimeFromUTC()} 505 \item Add \code{psTimeFromTT()} 506 \item Change \code{psTime} math rules 507 \item Change ``Time Tables'' to have IERS Bulliten A \& B 508 \item Add Dates \& Times Test Inputs appendix 509 \end{itemize} 510 511 511 \item Adding logical operations (and, or) to \code{psBinaryOp}. 512 512 513 513 \item Substantial reorganization: 514 \begin{itemize}515 \item Moved Metadata, Database, and XML sections to new section516 \item Re-named Detector \& Sky Coordinates to Linear \& Spherical Coordinates517 \item Moved Exposure and Observatory information out of 'Astronomical Images'518 \item Moved Celestial Coordinate Systems out of 'Detector \& Sky Coordinates'519 \item Added Atmospheric Effects section, incorporating psGrommit and airmass functions from other sections)520 \item Moved Fixed Pattern out of Astronomical Images521 \end{itemize}522 514 \begin{itemize} 515 \item Moved Metadata, Database, and XML sections to new section 516 \item Re-named Detector \& Sky Coordinates to Linear \& Spherical Coordinates 517 \item Moved Exposure and Observatory information out of 'Astronomical Images' 518 \item Moved Celestial Coordinate Systems out of 'Detector \& Sky Coordinates' 519 \item Added Atmospheric Effects section, incorporating psGrommit and airmass functions from other sections) 520 \item Moved Fixed Pattern out of Astronomical Images 521 \end{itemize} 522 523 523 \item Restrictions on the use of \code{malloc}, \code{calloc}, \code{realloc}, and \code{free} should not be unintentionaly imposed on 3rd party code. 524 524 \item Add database support for ``auto-incrementing'' 525 525 526 526 \item Changes to Configuration Files: 527 \begin{itemize}528 \item Add \code{UTC,UT1,TAI,TT} types529 \item Change ``multiple symbol'' declaration format to \code{[keyword] MULTI}530 \item Add Scoping Rules531 \item Remove Configuration File Grammar appendix532 \item Add Configuration File Test Inputs appendix533 \item Rename \code{psMetadataParseConfig()} $\rightarrow$ \code{psMetadataConfigParse()}534 \item Add \code{psMetadataConfigFormat()}535 \item Add \code{psMetadataConfigWrite()}536 \end{itemize}537 527 \begin{itemize} 528 \item Add \code{UTC,UT1,TAI,TT} types 529 \item Change ``multiple symbol'' declaration format to \code{[keyword] MULTI} 530 \item Add Scoping Rules 531 \item Remove Configuration File Grammar appendix 532 \item Add Configuration File Test Inputs appendix 533 \item Rename \code{psMetadataParseConfig()} $\rightarrow$ \code{psMetadataConfigParse()} 534 \item Add \code{psMetadataConfigFormat()} 535 \item Add \code{psMetadataConfigWrite()} 536 \end{itemize} 537 538 538 \item Add \code{PS_META_TIME} to \code{psMetadataType} 539 \end{itemize} 539 \item Changed \code{psPixels} to \code{psArray}s of \code{psPixelCoord}. 540 \end{itemize} -
trunk/doc/pslib/psLibSDRS.tex
r3686 r3734 1 %%% $Id: psLibSDRS.tex,v 1.20 2 2005-04-08 19:53:30 price Exp $1 %%% $Id: psLibSDRS.tex,v 1.203 2005-04-21 03:26:00 price Exp $ 2 2 \documentclass[panstarrs,spec]{panstarrs} 3 3 … … 2855 2855 2856 2856 \begin{verbatim} 2857 psImage *psImageTransform(psImage *output, ps Pixels**blankPixels, const psImage *input,2857 psImage *psImageTransform(psImage *output, psArray **blankPixels, const psImage *input, 2858 2858 const psImage *inputMask, int inputMaskVal, const psPlaneTransform *outToIn, 2859 const psRegion *region, const ps Pixels*pixels, psImageInterpolateMode mode,2859 const psRegion *region, const psArray *pixels, psImageInterpolateMode mode, 2860 2860 double exposedValue); 2861 2861 \end{verbatim} … … 2875 2875 in the output image --- note that this is the reverse of what might be 2876 2876 naively expected, but it is what is required in order to use 2877 \code{psImagePixelInterpolate}. If \code{pixels} is non-\code{NULL}, 2878 then only those pixels in the output image are transformed; otherwise, 2879 the entire image is generated. The interpolation is performed using 2880 the specified interpolation \code{mode}. Where a pixel in the output 2877 \code{psImagePixelInterpolate}. If the \code{pixels} array is 2878 non-\code{NULL}, it shall consist of \code{psPixelCoord}s, and only 2879 those pixels in the output image shall be transformed; otherwise, the 2880 entire image is generated. The interpolation is performed using the 2881 specified interpolation \code{mode}. Where a pixel in the output 2881 2882 image does not correspond to a pixel in the input image (or all 2882 2883 appropriate pixels in the input image are masked), the value shall be 2883 set to \code{exposed}, and the pixel added to the list of2884 \code{blankPixels} for return to the user. This function must be 2885 capable of handling the following types for the \code{input} (with 2886 corresponding types for the \code{output}): \code{psF32}, 2887 \code{psF 64}.2884 set to \code{exposed}, and the appropriate \code{psPixelCoord} added 2885 to the array of \code{blankPixels} for return to the user. This 2886 function must be capable of handling the following types for the 2887 \code{input} (with corresponding types for the \code{output}): 2888 \code{psF32}, \code{psF64}. 2888 2889 2889 2890 … … 3049 3050 \begin{verbatim} 3050 3051 typedef struct { 3051 psVector *x; // x coordinate 3052 psVector *y; // y coordinate 3053 } psPixels; 3054 \end{verbatim} 3055 3056 Of course, the size of each of the vectors should match. In the event 3057 that they do not match, any function which detects the problem shall 3058 generate a warning and use the size of the shorter of the vectors as 3059 the size. The order in which the pixels are kept is not considered 3060 important. 3061 3062 \begin{verbatim} 3063 psImage *psPixelsToMask(psImage *out, const psPixels *pixels, const psRegion *region, unsigned int maskVal); 3064 psPixels *psMaskToPixels(psPixels *out, const psImage *mask, unsigned int maskVal); 3052 int x; // x coordinate 3053 int y; // y coordinate 3054 } psPixelCoord; 3055 \end{verbatim} 3056 3057 \begin{verbatim} 3058 psImage *psPixelsToMask(psImage *out, const psArray *pixels, const psRegion *region, unsigned int maskVal); 3059 psArray *psMaskToPixels(psArray *out, const psImage *mask, unsigned int maskVal); 3065 3060 \end{verbatim} 3066 3061 3067 3062 \code{psPixelsToMask} shall return an image of type U8 with the 3068 \code{pixels} lying within the specified \code{region} set to the3069 \code{maskVal}. The \code{out} image shall be modified if supplied, 3070 or allocated and returned if \code{NULL}. The size of the output 3071 image shall be \code{region->x1 - region->x0} by \code{region->y1 - 3072 region->y0}, with \code{out->x0 = region->x0} and \code{out->y0 = 3073 region->y0}. In the event that either of \code{pixels} or 3074 \code{region} are \code{NULL}, the function shall generate an error 3075 and return \code{NULL}.3076 3077 \code{psMaskToPixels} shall return a \code{ps Pixels} consisting of the3078 coordinates in the \code{mask} that match the \code{maskVal}. The 3079 \code{out} pixel list shall be modified if supplied, or allocated and 3080 returned if \code{NULL}. In hte event that \code{mask} is 3081 \code{NULL}, the function shall generate an error and return 3082 \code{NULL}.3083 3084 \begin{verbatim} 3085 ps Pixels *psPixelsConcatenate(psPixels *out, const psPixels*pixels);3086 \end{verbatim} 3087 3088 \code{psPixelsConcatenate} shall concatenate \code{pixels} onto3089 \code{ out}. In the event that \code{out} is \code{NULL}, a new3090 \code{psPixels} shall be allocated, and the contents of \code{pixels}3091 s imply copied in. If \code{pixels} is \code{NULL}, the function shall3092 generate an error and return \code{NULL}. The function shall take 3093 care to ensure that there are no duplicate pixels in \code{out} (since3094 th e order in which the pixels are stored is not important, the values3095 may be sorted, allowing the use of a faster algorithm than a linear 3096 s can).3063 \code{pixels} (being a \code{psArray} of \code{psPixelCoord}s) lying 3064 within the specified \code{region} set to the \code{maskVal}. The 3065 \code{out} image shall be modified if supplied, or allocated and 3066 returned if \code{NULL}. The size of the output image shall be 3067 \code{region->x1 - region->x0} by \code{region->y1 - region->y0}, with 3068 \code{out->x0 = region->x0} and \code{out->y0 = region->y0}. In the 3069 event that either of \code{pixels} or \code{region} are \code{NULL}, 3070 the function shall generate an error and return \code{NULL}. 3071 3072 \code{psMaskToPixels} shall return a \code{psArray} containing one 3073 \code{psPixelCoord} for each of the coordinates in the \code{mask} 3074 that match the \code{maskVal}. The \code{out} pixel list shall be 3075 modified if supplied, or allocated and returned if \code{NULL}. In 3076 hte event that \code{mask} is \code{NULL}, the function shall generate 3077 an error and return \code{NULL}. 3078 3079 \begin{verbatim} 3080 psArray *psPixelsConcatenate(psArray *out, const psArray *pixels); 3081 \end{verbatim} 3082 3083 \code{psPixelsConcatenate} shall concatenate the array of 3084 \code{pixels} (consisting of \code{psPixelCoord}s) onto \code{out}. 3085 In the event that \code{out} is \code{NULL}, a new \code{psArray} 3086 shall be allocated, and the contents of \code{pixels} simply copied 3087 in. If \code{pixels} is \code{NULL}, the function shall generate an 3088 error and return \code{NULL}. The function shall take care to ensure 3089 that there are no duplicate pixels in \code{out} (since the order in 3090 which the pixels are stored is not important, the values may be 3091 sorted, allowing the use of a faster algorithm than a linear scan). 3097 3092 3098 3093 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 5148 5143 5149 5144 \begin{verbatim} 5150 psPixels *psPixelsTransform(psPixels *out, const psPixels *input, const psPlaneTransform *inToOut); 5151 \end{verbatim} 5152 5153 \code{psPixelsTransform} shall generate a list of pixels in the output 5154 coordinate frame that overlap the \code{input} pixels in the input 5145 psArray *psPixelsTransform(psArray *out, const psArray *input, const psPlaneTransform *inToOut); 5146 \end{verbatim} 5147 5148 \code{psPixelsTransform} shall generate an array of pixels 5149 (\code{psPixelCoord} in the output coordinate frame that overlap the 5150 \code{input} pixels (an array of \code{psPixelCoord}s) in the input 5155 5151 coordinate frame through the specified transformation, \code{inToOut}. 5156 5152 Note that this is more complicated than simply transforming the
Note:
See TracChangeset
for help on using the changeset viewer.
