IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4041


Ignore:
Timestamp:
May 27, 2005, 11:27:13 AM (21 years ago)
Author:
jhoblitt
Message:

convert verbatim environments that contain function prototypes & datatypes to be either a prototype or a datatype environment

File:
1 edited

Legend:

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

    r3975 r4041  
    1 %%% $Id: ModulesSDRS.tex,v 1.41 2005-05-19 02:58:14 price Exp $
     1%%% $Id: ModulesSDRS.tex,v 1.42 2005-05-27 21:27:13 jhoblitt Exp $
    22\documentclass[panstarrs]{panstarrs}
    33
    … …  
    100100standard locations, with optional command-line override values.
    101101
    102 \begin{verbatim}
     102\begin{prototype}
    103103bool pmConfigLoadSite   (psMetadata **site, int *argc, char **argv);
    104104bool pmConfigLoadCamera (psMetadata **camera, psMetadata *site, psMetadata *header, int *argc, char **argv);
    105105bool pmConfigLoadRecipe (psMetadata **recipe, psMetadata *camera, int *argc, char **argv, char *script);
    106 \end{verbatim}
     106\end{prototype}
    107107
    108108\code{pmConfigLoadSite} loads basic configuration information from a
    … …  
    198198before being returned as a \code{psRegion} pointer.
    199199
    200 \begin{verbatim}
     200\begin{prototype}
    201201psSTR     pmConfigLookupSTR    (psMetadata *config, psMetadata *header, char *name);
    202202psS32     pmConfigLookupS32    (psMetadata *config, psMetadata *header, char *name);
    203203psF64     pmConfigLookupF64    (psMetadata *config, psMetadata *header, char *name);
    204204psRegion *pmConfigLookupRegion (psMetadata *config, psMetadata *header, char *name);
    205 \end{verbatim}
     205\end{prototype}
    206206
    207207\section{Camera Data Organization \& Camera Geometry}
    … …  
    291291\subsection{Determine the Camera from the Primary Header}
    292292
    293 \begin{verbatim}
     293\begin{prototype}
    294294char *pmCameraFromHeader (psFitsHeader *header, psMetadata *rules);
    295 \end{verbatim}
     295\end{prototype}
    296296
    297297This function examines a primary header unit (\code{header}) and
    … …  
    340340\subsection{Validate the Header set \& Construct the FPA}
    341341
    342 \begin{verbatim}
     342\begin{prototype}
    343343bool  pmCameraValidateHeaders (psMetadata *headers, psMetadata *camera);
    344344psFPA *pmFPAfromHeader (psMetadata *headers, psMetadata *camera);
    345 \end{verbatim}
     345\end{prototype}
    346346
    347347These funtions examine the collection of \code{headers} and compare
    … …  
    505505offset and/or astrometry parameters.
    506506
    507 \begin{verbatim}
     507\begin{prototype}
    508508bool  pmFPADefineOffsets (psFPA fpa);
    509509bool  pmFPADefineWCS (psFPA fpa);
    510510bool  pmFPADefineWCSfromOffsets (psFPA fpa);
    511 \end{verbatim}
     511\end{prototype}
    512512
    513513The first function takes a \code{psFPA} structure which has been
    … …  
    569569boundaries of the cells within chip-based images.
    570570
    571 \begin{verbatim}
     571\begin{prototype}
    572572psReadout *pmReadoutLoad (psReadout *input, psFits *f, psCell *cell, int plane);
    573 \end{verbatim}
     573\end{prototype}
    574574
    575575\section{Phase 2}
    … …  
    608608\code{pmSubtractBias} shall subtract the bias from the image.
    609609The API shall be the following:
    610 \begin{verbatim}
     610\begin{prototype}
    611611psReadout *pmSubtractBias(psReadout *in, void *fitSpec, const psList *overscans,
    612612                          pmOverscanAxis overscanAxis, const psStats *stat,
    613613                          int nBin, pmFit fit, const psReadout *bias);
    614 \end{verbatim}
     614\end{prototype}
    615615
    616616Two types of bias correction may optionally be performed on the input
    … …  
    638638The \code{overscanAxis} specifies how the prescan/overscan subtraction
    639639is to be performed.  It is an enumerated type:
    640 \begin{verbatim}
     640\begin{datatype}
    641641/** Overscan axis */
    642642typedef enum {
    … …  
    646646    PM_OVERSCAN_ALL                     ///< Subtract the statistic of all pixels in overscan region
    647647} pmOverscanAxis;
    648 \end{verbatim}
     648\end{datatype}
    649649
    650650If the \code{overscanAxis} is \code{PM_OVERSCAN_NONE}, then the
    … …  
    681681
    682682\code{fit} is an enumerated type:
    683 \begin{verbatim}
     683\begin{datatype}
    684684/** Fit types */
    685685typedef enum {
    … …  
    688688    PM_FIT_SPLINE                       ///< Fit cubic splines
    689689} pmFit;
    690 \end{verbatim}
     690\end{datatype}
    691691
    692692If \code{fitSpec} is \code{NULL}, or \code{fit} is \code{PM_FIT_NONE},
    … …  
    738738\code{coeff}, acting on the flux.  The API shall be the following:
    739739
    740 \begin{verbatim}
     740\begin{prototype}
    741741psReadout *pmNonLinearityPolynomial(psReadout *in, const psPolynomial1D *coeff);
    742 \end{verbatim}
     742\end{prototype}
    743743
    744744The polynomial coefficients, \code{coeff}, will be supplied by the
    … …  
    749749shall be the following:
    750750
    751 \begin{verbatim}
     751\begin{prototype}
    752752psReadout *pmNonLinearityLookup(psReadout *in, const psVector *inFlux, const psVector *outFlux);
    753 \end{verbatim}
     753\end{prototype}
    754754
    755755For each pixel in the input image, the function shall find the flux
    … …  
    785785divide the input image by the flat-field image and return it in place,
    786786updating the mask as appropriate.  The API shall be the following:
    787 \begin{verbatim}
     787\begin{prototype}
    788788bool pmFlatField(psReadout *in, psReadout *mask, const psReadout *flat);
    789 \end{verbatim}
     789\end{prototype}
    790790
    791791Note that the input image, \code{in}, and the flat-field image,
    … …  
    827827
    828828We define several mask values for use in the phase 2 processing:
    829 \begin{verbatim}
     829\begin{datatype}
    830830/** Mask values */
    831831typedef enum {
    … …  
    835835    PM_MASK_FLAT       = 0x0008,        ///< The pixel is non-positive in the flat-field
    836836} pmMaskValue;
    837 \end{verbatim}
     837\end{datatype}
    838838
    839839Of these, masks for the charge traps need to be grown by the extent of
    … …  
    850850pixels in the bad pixel mask that match the value to mask.  The API
    851851shall be the following:
    852 \begin{verbatim}
     852\begin{prototype}
    853853psReadout *pmMaskBadPixels(psReadout *in, const psImage *mask, unsigned int maskVal,
    854854                           float sat, unsigned int growVal, int grow);
    855 \end{verbatim}
     855\end{prototype}
    856856
    857857Note that the input image, \code{in}, is modified in-place.  All
    … …  
    882882subtract a model for the background of the image.  The API shall be
    883883the following:
    884 \begin{verbatim}
     884\begin{prototype}
    885885psReadout *pmSubtractSky(psReadout *in, psPolynomial2D *poly, psImage *mask, psU8 maskVal,
    886886                         int binFactor, psStats *stats, float clipSD);
    887 \end{verbatim}
     887\end{prototype}
    888888
    889889Note that the input image, \code{in}, shall be subtracted in-place.
    … …  
    933933and so each input image will have the same noise characteristics.
    934934
    935 \begin{verbatim}
     935\begin{datatype}
    936936typedef struct {
    937937    psStats *stats;                     // Statistics to use in combining pixels
    … …  
    941941    int nKeep;                          // Number of pixels to be sure to keep
    942942} pmCombineParams;
    943 
     943\end{datatype}
     944
     945\begin{prototype}
    944946psImage *
    945947pmReadoutCombine(psImage *output,       // Output image, or NULL
    … …  
    952954                 float readnoise        // Read noise in e
    953955                 );
    954 \end{verbatim}
     956\end{prototype}
    955957
    956958\code{pmReadoutCombine} combines input images pixel by pixel --- for
    … …  
    11041106
    11051107We start by defining a single source detected in a single band:
    1106 \begin{verbatim}
     1108\begin{datatype}
    11071109typedef struct {
    11081110  pmPeak *peak;            // description of peak pixel
    … …  
    11131115  pmSourceType type;       // best identification of object
    11141116} pmSource;
    1115 \end{verbatim}
     1117\end{datatype}
    11161118
    11171119This source has the capacity for several types of measurements.  The
    11181120simplest measurement of a source is the location and flux of the peak
    11191121pixel associated with the source:
    1120 \begin{verbatim}
     1122\begin{datatype}
    11211123typedef struct {
    11221124  int x;                   // x-coordinate of peak pixel
    … …  
    11251127  pmPeakType class;        // description of peak
    11261128} pmPeak;
    1127 \end{verbatim}
     1129\end{datatype}
    11281130
    11291131A peak pixel may have several features which may be determined when
    … …  
    11351137than a specific number of neighbors at the same value, within some
    11361138tolarence:
    1137 \begin{verbatim}
     1139\begin{datatype}
    11381140typedef enum {
    11391141  PM_PEAK_LONE;             // isolated peak
    … …  
    11411143  PM_PEAK_FLAT;             // peak has equal-value neighbors
    11421144} pmPeakType;
    1143 \end{verbatim}
     1145\end{datatype}
    11441146
    11451147The pixels which contain the source may be specified with the
    … …  
    11541156moment information for a specific source:
    11551157
    1156 \begin{verbatim}
     1158\begin{datatype}
    11571159typedef struct {
    11581160  float x;                  // x-coord of centroid
    … …  
    11661168  int   nPixels;            // number of pixels used
    11671169} pmMoments;
    1168 \end{verbatim}
     1170\end{datatype}
    11691171
    11701172An object's flux distribution may be modelled with some analytical
    … …  
    11741176discuss the details of these models in section~\ref{ObjectModels}.
    11751177
    1176 \begin{verbatim}
     1178\begin{datatype}
    11771179typedef struct {
    11781180  pmObjectModel type;       // model to be used
    … …  
    11831185  psS32 nIter;          // number of iterations
    11841186} pmModel;
    1185 \end{verbatim}
    1186 
    1187 \begin{verbatim}
     1187\end{datatype}
     1188
     1189\begin{datatype}
    11881190typedef enum {
    11891191  PM_MODEL_GAUSS;
    … …  
    11941196  PM_MODEL_SERSIC_CORE;
    11951197} pmModelType;
    1196 \end{verbatim}
     1198\end{datatype}
    11971199
    11981200A given source may be identified as most-likely to be one of several
    … …  
    12021204source classification code is developed.}
    12031205
    1204 \begin{verbatim}
     1206\begin{datatype}
    12051207typedef enum {
    12061208  PM_SOURCE_PSFSTAR;
    … …  
    12131215  PM_SOURCE_OTHER;
    12141216} pmSourceType;
    1215 \end{verbatim}
    1216 
    1217 \begin{verbatim}
     1217\end{datatype}
     1218
     1219\begin{datatype}
    12181220typedef enum {
    12191221  PM_CONTOUR_CRUDE;
    12201222} pmContourType;
    1221 \end{verbatim}
     1223\end{datatype}
    12221224
    12231225Allocators for the above structures are defined as follows:
    1224 \begin{verbatim}
     1226\begin{prototype}
    12251227pmSource   *pmSourceAlloc ();
    12261228pmPeak     *pmPeakAlloc (int x, int y, float counts, psPeakType class);
    12271229pmMoments  *pmMomentsAlloc ();
    12281230pmModel    *pmModelAlloc (pmModelType type);
    1229 \end{verbatim}
     1231\end{prototype}
    12301232
    12311233\subsection{Basic Object Detection APIs}
    … …  
    12351237which we expect to use them in a basic object detection process.
    12361238
    1237 \begin{verbatim}
     1239\begin{prototype}
    12381240psVector *pmFindVectorPeaks(const psVector *vector, float threshold);
    1239 \end{verbatim}
     1241\end{prototype}
    12401242
    12411243Find all local peaks in the given vector above the given threshold.  A
    … …  
    12551257\code{psU32}).
    12561258
    1257 \begin{verbatim}
     1259\begin{prototype}
    12581260psArray *pmFindImagePeaks(const psImage *image, float threshold);
    1259 \end{verbatim}
     1261\end{prototype}
    12601262
    12611263Find all local peaks in the given image above the given threshold.
    … …  
    12721274this function is an array of \code{pmPeak} entries.
    12731275
    1274 \begin{verbatim}
     1276\begin{prototype}
    12751277psArray *pmPeaksSubset(psArray *peaks, float maxvalue, const psRegion valid);
    1276 \end{verbatim}
     1278\end{prototype}
    12771279
    12781280Create a new peaks array, removing certain types of peaks from the
    … …  
    12821284function is a new array with a reduced number of peaks.
    12831285
    1284 \begin{verbatim}
     1286\begin{prototype}
    12851287pmSource *pmSourceLocalSky(const psImage *image, const pmPeak *peak, psStatsOptions statsOptions, float innerRadius, float outerRadius);
    1286 \end{verbatim}
     1288\end{prototype}
    12871289
    12881290Measure the local sky in the vicinity of the given \code{peak}.  The
    … …  
    12971299which is then returned.
    12981300
    1299 \begin{verbatim}
     1301\begin{prototype}
    13001302bool pmSourceMoments(pmSource *source, float radius);
    1301 \end{verbatim}
     1303\end{prototype}
    13021304
    13031305Measure source moments for the given \code{source}, using the value of
    … …  
    13091311value indicates the success (TRUE) of the operation.
    13101312
    1311 \begin{verbatim}
     1313\begin{prototype}
    13121314bool pmSourceRoughClass(pmArray *source, psMetadata *metadata);
    1313 \end{verbatim}
     1315\end{prototype}
    13141316
    13151317Based on the specified data values, make a guess at the source
    … …  
    14011403\end{enumerate}
    14021404
    1403 \begin{verbatim}
     1405\begin{prototype}
    14041406bool pmSourceSetPixelsCircle(pmSource *source, const psImage *image, float radius, int maskVal);
    1405 \end{verbatim}
     1407\end{prototype}
    14061408
    14071409Define pixels associated with a source based on a circular aperture.
    … …  
    14131415success or \code{FALSE} on failure.
    14141416
    1415 \begin{verbatim}
     1417\begin{prototype}
    14161418bool pmSourceModelGuess(pmSource *source, const psImage *image, pmModelType model);
    1417 \end{verbatim}
     1419\end{prototype}
    14181420
    14191421Convert available data to an initial guess for the given model.  This
    … …  
    14241426function returns \code{TRUE} on success or \code{FALSE} on failure.
    14251427
    1426 \begin{verbatim}
     1428\begin{prototype}
    14271429psArray *pmSourceContour(const pmSource *source, const psImage *image, float level, pmContourType type);
    1428 \end{verbatim}
     1430\end{prototype}
    14291431
    14301432Find points in a contour for the given source at the given level.  If
    … …  
    14401442\tbd{Other contour types may be specified in the future for more refined contours}
    14411443
    1442 \begin{verbatim}
     1444\begin{prototype}
    14431445bool pmSourceFitModel(pmSource *source, psImage *image);
    1444 \end{verbatim}
     1446\end{prototype}
    14451447
    14461448Fit the requested model to the specified source.  The starting guess
    … …  
    14511453returns \code{TRUE} on success or \code{FALSE} on failure.
    14521454
    1453 \begin{verbatim}
     1455\begin{prototype}
    14541456bool pmSourceAddModel(psImage *image, pmSource *source, bool center, bool sky);
    14551457bool pmSourceSubModel(psImage *image, pmSource *source, bool center, bool sky);
    1456 \end{verbatim}
     1458\end{prototype}
    14571459
    14581460Add or subtract the given source model flux to/from the provided
    … …  
    14731475\subsubsection{Real 2D Gaussian}
    14741476
    1475 \begin{verbatim}
     1477\begin{prototype}
    14761478float pmMinLM_Gauss2D(psVector *deriv, psVector *params, psVector *x);
    1477 \end{verbatim}
     1479\end{prototype}
    14781480
    14791481This function is a two-dimensional Gaussian with an elliptical
    … …  
    14851487\subsubsection{Pseudo-Gaussian}
    14861488
    1487 \begin{verbatim}
     1489\begin{prototype}
    14881490float pmMinLM_PseudoGauss2D(psVector *deriv, psVector *params, psVector *x);
    1489 \end{verbatim}
     1491\end{prototype}
    14901492
    14911493This function is a polynomial approximation of a 2D Gaussian otherwise
    … …  
    14981500\subsubsection{Waussian}
    14991501
    1500 \begin{verbatim}
     1502\begin{prototype}
    15011503float pmMinLM_Wauss2D(psVector *deriv, psVector *params, psVector *x);
    1502 \end{verbatim}
     1504\end{prototype}
    15031505
    15041506The Waussian is a modified polynomial approximation of a 2D Gaussian,
    … …  
    15081510\subsubsection{Twisted Gaussian}
    15091511
    1510 \begin{verbatim}
     1512\begin{prototype}
    15111513float pmMinLM_TwistGauss2D(psVector *deriv, psVector *params, psVector *x);
    1512 \end{verbatim}
     1514\end{prototype}
    15131515
    15141516This function describes an object with power-law wings and a flattened
    … …  
    15221524\subsubsection{Sersic Galaxy Model}
    15231525
    1524 \begin{verbatim}
     1526\begin{prototype}
    15251527float pmMinLM_Sersic(psVector *deriv, psVector *params, psVector *x);
    1526 \end{verbatim}
     1528\end{prototype}
    15271529
    15281530\subsubsection{Sersic with Core Galaxy Model}
    15291531
    1530 \begin{verbatim}
     1532\begin{prototype}
    15311533float pmMinLM_SersicCore(psVector *deriv, psVector *params, psVector *x);
    1532 \end{verbatim}
     1534\end{prototype}
    15331535
    15341536\subsubsection{Pseudo Sersic Galaxy Model}
    15351537
    1536 \begin{verbatim}
     1538\begin{prototype}
    15371539float pmMinLM_PseudoSersic(psVector *deriv, psVector *params, psVector *x);
    1538 \end{verbatim}
     1540\end{prototype}
    15391541
    15401542
    … …  
    15561558\subsection{Combining images}
    15571559
    1558 \begin{verbatim}
     1560\begin{prototype}
    15591561psImage *pmCombineImages(psImage *combined, // Combined image
    15601562                         psArray **questionablePixels, // Array of rejection masks
    … …  
    15681570                         const psStats *stats // Statistics to use in the combination
    15691571                         );
    1570 \end{verbatim}
     1572\end{prototype}
    15711573
    15721574\code{pmCombineImages} shall combine the input \code{images},
    … …  
    16021604\subsection{Rejecting pixels}
    16031605
    1604 \begin{verbatim}
     1606\begin{prototype}
    16051607psArray *pmRejectPixels(const psArray *images, // Array of input images
    16061608                        const psArray *pixels, // These are the pixels which were rejected in the combination
    … …  
    16101612                        float gradLimit // Gradient limit
    16111613                        );
    1612 \end{verbatim}
     1614\end{prototype}
    16131615
    16141616\code{pmRejectPixels} inspects those questionable \code{pixels}
    … …  
    17641766equally useful and faster, though not as tried and proven.
    17651767
    1766 \begin{verbatim}
     1768\begin{datatype}
    17671769typedef enum {
    17681770    PM_SUBTRACTION_KERNEL_POIS,         // POIS kernel --- delta functions
    17691771    PM_SUBTRACTION_KERNEL_ISIS          // ISIS kernel --- gaussians modified by polynomials
    17701772} pmSubtractionKernelsType;
    1771 \end{verbatim}
     1773\end{datatype}
    17721774
    17731775In order to simplify the book-keeping for the kernels, we will define
    … …  
    17751777each of the kernel basis functions:
    17761778
    1777 \begin{verbatim}
     1779\begin{datatype}
    17781780typedef struct {
    17791781    pmSubtractionKernelType type;       // Type of kernels --- allowing the use of multiple kernels
    … …  
    17851787                                        // accelerate ISIS; don't use for POIS)
    17861788} pmSubtractionKernels;
    1787 \end{verbatim}
     1789\end{datatype}
    17881790
    17891791This structure caters for both choices of kernel type.  For a POIS
    … …  
    18111813The \code{pmSubtractionKernels} are generated by the following functions:
    18121814
    1813 \begin{verbatim}
     1815\begin{prototype}
    18141816pmSubtractionKernels *pmSubtractionKernelsAllocPOIS(int size, int spatialOrder);
    18151817pmSubtractionKernels *pmSubtractionKernelsAllocISIS(const psVector *sigmas, const psVector *orders,
    18161818                                                    int size, int spatialOrder);
    1817 \end{verbatim}
     1819\end{prototype}
    18181820
    18191821\code{pmSubtractionKernelsAllocPOIS} shall generate the
    … …  
    18471849convolution kernel are referred to as ``stamps''.
    18481850
    1849 \begin{verbatim}
     1851\begin{datatype}
    18501852typedef struct {
    18511853    int x, y;                           // Position
    … …  
    18541856    psStampStatus status;               // Status of stamp
    18551857} pmStamp;
    1856 \end{verbatim}
     1858\end{datatype}
    18571859
    18581860A stamp is the region around a central pixel, \code{x,y}.  The
    … …  
    18681870\code{status}, an enumerated type:
    18691871
    1870 \begin{verbatim}
     1872\begin{datatype}
    18711873typedef enum {
    18721874    PM_STAMP_USED,                      // Use this stamp
    … …  
    18751877    PM_STAMP_NONE                       // No stamp in this region
    18761878} pmStampStatus;
    1877 \end{verbatim}
    1878 
    1879 \begin{verbatim}
     1879\end{datatype}
     1880
     1881\begin{prototype}
    18801882psArary *pmSubtractionFindStamps(psArray *stamps, // Output stamps, or NULL
    18811883                                 const psImage *image, // Image for which to find stamps
    … …  
    18861888                                 int border // Border around image to ignore (should be size of kernel)
    18871889                                 );
    1888 \end{verbatim}
     1890\end{prototype}
    18891891
    18901892\code{pmSubtractionFindStamps} returns an array of stamps on the
    … …  
    19141916stamps.
    19151917
    1916 \begin{verbatim}
     1918\begin{prototype}
    19171919bool pmSubtractionCalculateEquation(psArray *stamps, // The stamps for which to calculate the equation
    19181920                                    const psImage *reference, // Reference image
    … …  
    19211923                                    int footprint // Half-size of region over which to calculate equation
    19221924                                    );
    1923 \end{verbatim}
     1925\end{prototype}
    19241926
    19251927\code{pmSubtractionCalculateEquation} shall calculate the
    … …  
    19611963subtraction, care should be taken with optimisation.
    19621964
    1963 \begin{verbatim}
     1965\begin{prototype}
    19641966psVector *pmSubtractionSolveEquation(psVector *solution,        // Solution vector, or NULL
    19651967                                     const psArray *stamps // Array of stamps
    19661968                                     );
    1967 \end{verbatim}
     1969\end{prototype}
    19681970
    19691971\code{pmSubtractionSolveEquation} shall solve the matrix equation
    … …  
    19821984\subsection{Rejection of stamps}
    19831985
    1984 \begin{verbatim}
     1986\begin{prototype}
    19851987bool pmSubtractionRejectStamps(psArray *stamps, // Array of stamps to check for rejection
    19861988                               psImage *mask, // Mask image
    … …  
    19931995                               const pmSubtractionKernels *kernels // Array of kernel parameters
    19941996                               );
    1995 \end{verbatim}
     1997\end{prototype}
    19961998
    19971999\code{pmSubtractionRejectStamps} shall apply the \code{solution} to
    … …  
    20142016it.
    20152017
    2016 \begin{verbatim}
     2018\begin{prototype}
    20172019psImage *pmSubtractionKernelImage(psImage *out, const psVector *solution,
    20182020                                  const pmSubtractionKernels *kernels, float x, float y);
    2019 \end{verbatim}
     2021\end{prototype}
    20202022
    20212023\code{pmSubtractionKernelImage} shall create an image of the kernel
    … …  
    22082210corresponding parameters, \code{psPhase2MaskCRs} shall mask cosmic
    22092211rays on the input image on the basis of their morphology.  The API shall be the following:
    2210 \begin{verbatim}
     2212\begin{prototype}
    22112213/** Masks Cosmic Rays on the input image on the basis of morphology. */
    22122214psReadout *psPhase2MaskCRs(psReadout *in, ///< Input image to be masked, and output
    … …  
    22142216                           const void *params ///< Parameters for algorithm
    22152217                           );
    2216 \end{verbatim}
     2218\end{prototype}
    22172219
    22182220This is one case in which the best choice of algorithm is not known,
    … …  
    22292231\code{psPhase2MaskOpticalDefects} shall mask optical defects on the
    22302232image.  The API shall be the following:
    2231 \begin{verbatim}
     2233\begin{prototype}
    22322234/** Masks optical defects in the input image */
    22332235psChip *psPhase2MaskOpticalDefects(psChip *in, ///< Image to be masked (with astrometry), and output
    … …  
    22352237                                   int grow ///< Number of pixels to grow
    22362238                                   );
    2237 \end{verbatim}
     2239\end{prototype}
    22382240
    22392241\tbd{It's not clear to me how this is accomplished apart from an
    … …  
    22512253parameters, \code{psPhase2MeasurePSF} shall return the PSF for the
    22522254image.  The API shall be the following:
    2253 \begin{verbatim}
     2255\begin{prototype}
    22542256/** Measures the PSF on the input image.  Returns the PSF */
    22552257psImage *psPhase2MeasurePSF(const psReadout *in, ///< Input image for which to measure the PSF
    … …  
    22572259                            const void *params ///< Parameters for algorithm
    22582260                            );
    2259 \end{verbatim}
     2261\end{prototype}
    22602262
    22612263This is another case where the algorithm is not currently clear, and
    … …  
    22702272readout with the \code{objects} member set to a list of objects.  The
    22712273API shall be the following:
    2272 \begin{verbatim}
     2274\begin{prototype}
    22732275/** Find and measure objects on the input image.  Fills in the "objects" member of the psReadout. */
    22742276/** THIS NEEDS WORK. */
    … …  
    22772279                               const psVector *levels ///< Threshold levels (std dev.s)
    22782280                               );
    2279 \end{verbatim}
     2281\end{prototype}
    22802282
    22812283Note that the input image shall be modified in-place, only insofar as
    … …  
    22932295clipping parameters, \code{psPhase2Astrometry} shall fit an
    22942296astrometric solution.  The API shall be the following:
    2295 \begin{verbatim}
     2297\begin{prototype}
    22962298/** Corrects astrometry on the input chip */
    22972299psChip *psPhase2Astrometry(psChip *in,  ///< Input chip for which to do astrometry, and output
    … …  
    23002302                           float clipLevel ///< Level at which to clip
    23012303                           );
    2302 \end{verbatim}
     2304\end{prototype}
    23032305
    23042306Note that the input chip shall be modified in-place, only insofar as
    … …  
    23192321coordinates.  We define a \code{psPostageStampSpec} to specify the
    23202322parameters for a postage stamp:
    2321 \begin{verbatim}
     2323\begin{datatype}
    23222324/** Specification of a postage stamp: location on the sky */
    23232325typedef struct {
    … …  
    23252327    psSphereCoord *size;                ///< Size of postage stamp
    23262328} psPostageStampSpec;
    2327 \end{verbatim}
     2329\end{datatype}
    23282330
    23292331The \code{center} shall be specified in ICRS coordinates, which is the
    … …  
    23362338chip, \code{psPhase2PostageStamps} shall output an array of subimages,
    23372339containing each of the regions.  The API shall be the following:
    2338 \begin{verbatim}
     2340\begin{prototype}
    23392341/** Return postage stamps of a set of regions */
    23402342psImageArray *psPhase2PostageStamps(const psChip *in, ///< Chip from which to form postage stamps
    … …  
    23422344                                                           ///< psPostageStampSpec
    23432345                                    );
    2344 \end{verbatim}
     2346\end{prototype}
    23452347
    23462348\code{regions} shall be a linked list of \code{psPostageStampSpec}s,
Note: See TracChangeset for help on using the changeset viewer.