Index: trunk/doc/modules/ModulesSDRS.tex
===================================================================
--- trunk/doc/modules/ModulesSDRS.tex	(revision 1119)
+++ trunk/doc/modules/ModulesSDRS.tex	(revision 1145)
@@ -1,3 +1,3 @@
-%%% $Id: ModulesSDRS.tex,v 1.8 2004-06-29 02:26:55 price Exp $
+%%% $Id: ModulesSDRS.tex,v 1.9 2004-06-30 10:08:52 price Exp $
 \documentclass[panstarrs]{panstarrs}
 
@@ -68,4 +68,5 @@
 The Phase 2 processing modules are:
 \begin{itemize}
+\item Read in an FPA;
 \item Calculate the convolution kernel;
 \item Convolve an image with the kernel;
@@ -95,4 +96,47 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+\section{Read in an image}
+
+Of course, before any image manipulation may occur, the image must be
+read in.  This involves populating the FPA with structures to
+represent the true focal plane.  However, different instruments have
+different focal planes, and the images are written to disk in
+different ways.  We have proposed a configuration file format which
+appears to be able to document the structure of a focal plane and
+specify how the IPP can read the required information from the FITS
+files \tbd{A REFERENCE GOES HERE}.
+
+Given an open \code{FILE} pointer to a configuration file,
+\code{config}, and the name of an FPA image, \code{fpaName},
+\code{psFPAGenerate} shall return a \code{psFPA} of the correct
+structure, with all the metadata entries read from the nominated FPA
+image.  Astrometric information shall be initialised to values
+specified by the configuration file.  The API shall be:
+
+\begin{verbatim}
+psFPA *psFPAGenerate(FILE *config, const char *fpaName);
+\end{verbatim}
+
+Once an FPA has been generated, the pixels may all be read in at once,
+or the pixels may be read in a chip, cell or readout at a time.  The
+corresponding APIs are:
+
+\begin{verbatim}
+psFPA *psFPAReadAll(psFPA *in);
+psFPA *psFPAReadChip(psFPA *in, const char *chipName);
+psChip *psChipReadCell(psChip *in, const char *cellName);
+psCell *psCellReadReadout(psCell *in, const char *readoutName);
+\end{verbatim}
+
+Note that reads of a cell or readout do not act upon an FPA, but
+rather a chip and a cell, respectively.  This saves the user from
+specifying the name of the FPA, chip, and cell just to get a readout,
+since this information is already stored in the generated \code{psFPA}
+struct.
+
+\tbd{How to write the output???}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
 \section{Convolution}
 
@@ -568,5 +612,4 @@
 shall be the following:
 \begin{verbatim}
-/** Returns an image that has the bad pixels masked.  Also masks saturated pixels */
 psReadout *psPhase2MaskBadPixels(psReadout *in, const psImage *mask, int maskVal, float sat, int grow);
 \end{verbatim}
