IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 21, 2006, 2:02:00 PM (20 years ago)
Author:
eugene
Message:

minor mods to changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/pslib/psLibSDRS.tex

    r6434 r6455  
    1 %%% $Id: psLibSDRS.tex,v 1.383 2006-02-16 18:57:51 eugene Exp $
     1%%% $Id: psLibSDRS.tex,v 1.384 2006-02-22 00:02:00 eugene Exp $
    22\documentclass[panstarrs,spec]{panstarrs}
    33
     
    1111\project{Pan-STARRS Image Processing Pipeline}
    1212\organization{Institute for Astronomy}
    13 \version{18}
     13\version{19}
    1414\docnumber{PSDC-430-007}
    1515
     
    29872987abbreviate \code{STRING}; valid time types are \code{UTC,UT1,TAI,TT}.
    29882988
    2989 \tbd{May, in the future, require more types, including U8,S16,C64,
    2990 which will also necessitate updating the definition of psMetadata.}
     2989\tbd{May, in the future, require more types, including U8,S16,C64.}
    29912990
    29922991The value shall follow the type: strings may consist of multiple words, and
     
    32523251double psLookupTableInterpolate(const psLookupTable *table, double index,
    32533252                                long column);
    3254 psVector *psLookupTableInterpolateAll(const psLookupTable *table,
    3255                                       double index, psVector *stats);
     3253psVector *psLookupTableInterpolateAll(const psLookupTable *table, double index);
    32563254\end{prototype}
    32573255Both functions shall interpolate the \code{table} at the provided
     
    32613259and returned as a \code{psVector}, the type of which shall be
    32623260\code{PS_TYPE_F64}.
    3263 
    3264 \tbd{What's the stats for???}
    32653261
    32663262If the \code{index} is beyond the range of the \code{table},
     
    50955091\subsubsection{Image Structure Manipulation}
    50965092
    5097 \tbd{clarify that subset and trim regions are in the *parent* coords}
    5098 
    50995093\begin{prototype}
    51005094psImage *psImageSubset(psImage *image, psRegion region);
     
    51075101extent of the desired subraster.  Note that the row and column of this
    51085102``upper right-hand corner'' are \textit{NOT} included in the region.
    5109 In the event that \code{x1} or \code{y1} are negative, they shall be
    5110 interpreted as being relative to the size of the parent image in that
    5111 dimension.  If the input image is a subimage, the region coordinates
    5112 refer to the \em{parent} pixel coordinates.  The entire subraster must
    5113 be contained within the raster of the parent image.  Note that the
    5114 \code{refCounter} for the parent should be incremented.  This function
    5115 must be defined for the following types: \code{psU8}, \code{psU16},
    5116 \code{psS8}, \code{psS16}, \code{psF32}, \code{psF64}, \code{psC32},
    5117 \code{psC64}.  \tbd{allow this function to saturate on the edges like
    5118 psRegionForImage?}
     5103Note that, if the \code{image} is itself a subimage, then the
     5104\code{region} coordinates correspond to coordinates of the parent
     5105image of \code{image}.  The only exception to this is in the event
     5106that \code{x1} or \code{y1} are non-positive, in which case they shall
     5107be interpreted as being relative to the upper-bounds of \code{image}
     5108in that dimension.  The entire resulting subraster will be contained
     5109within the raster of the input image; if the requested bounds of
     5110region fall beyond the bounds of the input image, they should saturate
     5111on the input image region (in analogy with the behavior of
     5112\code{psRegionForImage}).  Note that the \code{refCounter} for the
     5113parent should be incremented.  This function must be defined for the
     5114following types: \code{psU8}, \code{psU16}, \code{psS8}, \code{psS16},
     5115\code{psF32}, \code{psF64}, \code{psC32}, \code{psC64}.
    51195116
    51205117\begin{prototype}
     
    51385135corner, \code{region.x1,region.y1}.  Note that the row and column of
    51395136the ``upper right-hand corner'' are \textit{NOT} included in the
    5140 region.  In the event that \code{region.x1} or \code{region.y1} are
    5141 negative, they shall be interpreted as being relative to the size of
    5142 the parent image in that dimension. \tbd{how is region interpreted if
    5143 image is a subimage?}
     5137region.  Note that, if the \code{image} is itself a subimage, then the
     5138\code{region} coordinates correspond to coordinates of the parent
     5139image of \code{image}.  However, in the event that \code{region.x1} or
     5140\code{region.y1} are negative, they shall be interpreted as being
     5141relative to the upper bounds of the input image in that dimension.
    51445142
    51455143The function shall generate an error if the specified region is
     
    51495147
    51505148\subsubsection{Image Pixel Extractions}
    5151 
    5152 \tbd{clarify that subset and trim regions are in the *parent* coords}
    51535149
    51545150\begin{datatype}
     
    51725168These two functions extract a single complete \code{row} or
    51735169\code{column} from the \code{image} and return it to the provided
    5174 \code{vector}, allocating it if it is \code{NULL}.  These are provided
    5175 as fast, simple implementations of data extraction.  For more
    5176 sophisticated operations, the following two functions should be used.
     5170\code{vector}, allocating it if it is \code{NULL}.  If the input image
     5171is a subimage, the \code{row} and \code{column} arguments refer to
     5172parent coordinates.  These are provided as fast, simple
     5173implementations of data extraction.  For more sophisticated
     5174operations, the following two functions should be used.
    51775175
    51785176\begin{prototype}
     
    51865184                       const psStats *stats);
    51875185\end{prototype}
    5188 Extract pixels from rectilinear region to a vector (array of floats).
    5189 The output vector contains either \code{region.x1-region.x0} or
    5190 \code{region.y1-region.y0} elements, based on the value of the
     5186Extract pixels from a rectilinear region to a vector (array of
     5187floats).  The output vector contains either \code{region.x1-region.x0}
     5188or \code{region.y1-region.y0} elements, based on the value of the
    51915189direction: e.g., if \code{direction} is \code{PS_CUT_X_POS}, there are
    51925190\code{region.x1-region.x0} elements.  The region to be ``sliced'' is
     
    51965194the region.  In the event that \code{region.x1} or \code{region.y1}
    51975195are negative, they shall be interpreted as being relative to the size
    5198 of the parent image in that dimension. \tbd{how is region interpreted
    5199   if input is a subimage?}
     5196of the input image in that dimension. If the input image is a
     5197subimage, the \code{region} argument refers to parent coordinates.
    52005198
    52015199The input region is collapsed in the direction perpendicular to that
     
    52265224\code{(region.x1,region.y1)}, on the image to a vector of the same
    52275225data type.  The line segment is sampled \code{nSamples} times, hence
    5228 the output vector contains \code{nSamples} elements.  The
     5226the output vector contains \code{nSamples} elements.  If the input image is a
     5227subimage, the \code{region} argument refers to parent coordinates.  The
    52295228interpolation method used to derive the output vector value at each
    52305229sample along the line segment is specified by \code{mode}.  If the
     
    52325231corresponding mask value is \code{maskVal} are not included in the
    52335232interpolation.  This function must be defined for the following types:
    5234 \code{psS8}, \code{psU16}, \code{psF32}, \code{psF64}. \tbd{how is
    5235 region interpreted if input is a subimage?}
     5233\code{psS8}, \code{psU16}, \code{psF32}, \code{psF64}.
    52365234
    52375235\begin{prototype}
     
    52495247which land within one of a sequence of radii.  The radii are centered
    52505248on the image pixel coordinate \code{x,y}, and are defined by the
    5251 sequence of values in the vector \code{radii}.  The specific algorithm
    5252 which must be used is described in the PSLib ADD (PSDC-430-006).  The
    5253 statistic used to derive the output vector value is specified by
    5254 \code{stats}.  Only one of the statistics choices may be specified,
    5255 otherwise the function must return an error.  If \code{mask} is
    5256 non-\code{NULL}, pixels for which the corresponding \code{mask} pixel
    5257 matches \code{maskVal} are excluded from operations.  This function
    5258 must be defined for the following types: \code{psS8}, \code{psU16},
    5259 \code{psF32}, \code{psF64}.
     5249sequence of values in the vector \code{radii}.  If the input image is
     5250a subimage, the \code{x,y} arguments refer to parent coordinates.  The
     5251specific algorithm which must be used is described in the PSLib ADD
     5252(PSDC-430-006).  The statistic used to derive the output vector value
     5253is specified by \code{stats}.  Only one of the statistics choices may
     5254be specified, otherwise the function must return an error.  If
     5255\code{mask} is non-\code{NULL}, pixels for which the corresponding
     5256\code{mask} pixel matches \code{maskVal} are excluded from operations.
     5257This function must be defined for the following types: \code{psS8},
     5258\code{psU16}, \code{psF32}, \code{psF64}.
    52605259
    52615260\subsubsection{Image Geometry Manipulation}
     
    53755374\code{region} (size \code{region.x1 - region.x0} by \code{region.y1 -
    53765375region.y0}, with \code{out->x0 = region.x0} and \code{out->y0 =
    5377 region.y0}).  \tbd{is this subimage-safe}
     5376region.y0}).  If the input image is itself a subimage, then the region
     5377refers to the parent image coordinates.
    53785378
    53795379If the \code{inputMask} is non-\code{NULL}, those pixels in the
     
    55695569region.y0}.  In the event that either of \code{pixels} or
    55705570\code{region} are \code{NULL}, the function shall generate an error
    5571 and return \code{NULL}. \tbd{is this subimage-safe?}
     5571and return \code{NULL}.  If \code{out} is not supplied, then the
     5572constructed image is not a subimage.  If \code{out} is supplied and is
     5573a subimage, the pixels refer to the parent image coordinates.
    55725574
    55735575\code{psMaskToPixels} shall return a \code{psPixels} containing the
     
    55765578returned if \code{NULL}.  In the event that \code{mask} is
    55775579\code{NULL}, the function shall generate an error and return
    5578 \code{NULL}.
     5580\code{NULL}.  If \code{mask} is a subimage, the pixels refer to the
     5581parent image coordinates.
    55795582
    55805583\begin{prototype}
     
    55915594by combining the existing pixel value and the given \code{maskValue}
    55925595with a logical operation.  The allowed operations are \code{=},
    5593 \code{AND}, \code{OR} and \code{XOR}. \tbd{is this subimage-safe?}
     5596\code{AND}, \code{OR} and \code{XOR}. If \code{image} is a subimage,
     5597the region refers to the parent image coordinates.
    55945598
    55955599\begin{prototype}
     
    56095613pixel value and the given \code{maskValue} with a logical operation.
    56105614The allowed operations are \code{=}, \code{AND}, \code{OR} and
    5611 \code{XOR}.
     5615\code{XOR}.  If \code{image} is a subimage, the coordinates refers to
     5616the parent image coordinates.
    56125617
    56135618%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Note: See TracChangeset for help on using the changeset viewer.