IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 12, 2005, 5:26:45 PM (21 years ago)
Author:
Paul Price
Message:

Updating for next cycle.

File:
1 edited

Legend:

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

    r4757 r5022  
    105105\subsection{Image Data Container Hierarchy}
    106106
     107Here we specify the contents of the focal plane hierarchy:
     108\code{pmReadout}, \code{pmCell}, \code{pmChip} and \code{pmFPA}.  Many
     109of the components of these are similar.  All but the \code{pmFPA}
     110contain offsets from the level above (\code{col0,row0}), and a link to
     111the parent. All but the \code{pmReadout} contain a private pointer to
     112FITS data and more detailed astrometric transforms.  Each contains an
     113\code{analysis} metadata container which is intended to store results
     114of analyses (e.g., the r.m.s. of the overscan fit).
     115
     116\tbd{At what stage are the offsets (\code{col0,row0}) get set, and how
     117are they known?}
     118
    107119\subsubsection{A Readout}
    108120
     
    112124factors and parity (if the binning value is negative, then the parity
    113125is reversed).  It also contains the pixel data (with corresponding
    114 mask), metadata containers for the concepts and analysis, and a link
    115 to the parent.
     126mask and weight), metadata container for the analysis, and a link to
     127the parent.
    116128
    117129\begin{verbatim}
     
    125137    psImage *image;                    // Imaging area of readout
    126138    psImage *mask;                     // Mask for image
     139    psImage *weight;                   // Weight for image
    127140    psList *bias;                      // List of bias section (sub-)images
    128141    psMetadata *analysis;              // Readout-level analysis metadata
    129     psMetadata *concepts;              // Cache for PS concepts
    130142    pmCell *parent;                    // Parent cell
    131143} pmReadout;
     
    146158A cell consists of one or more readouts (usually only one except in
    147159the case that the cell has been used for fast guiding, or similar
    148 situations).  It have values which specifies the position of the cell
     160situations).  It has values which specifies the position of the cell
    149161on the chip for rough positioning, along with more precise coordinate
    150162transforms from the cell to the chip and, as a convenience, from the
     
    159171Focal Plane $\rightarrow$ Tangent Plane $\rightarrow$ Sky, but will be
    160172faster.  The cell also contains metadata containers for the concepts
    161 and analysis, a link to the parent, and pointers to the various FITS
    162 data, if that corresponds to this level.  A boolean indicates whether
    163 the cell is of interest, allowing it to be excluded from analysis.
     173and analysis, a link to the parent, and a container for the FITS data,
     174if that corresponds to this level.  A boolean indicates whether the
     175cell is of interest, allowing it to be excluded from analysis.
    164176
    165177\begin{verbatim}
     
    174186    // Information
    175187    psMetadata *concepts;              // Cache for PS concepts
     188    psMetadata *camera;                // Camera information
    176189    psMetadata *analysis;              // Cell-level analysis metadata
    177190    psArray *readouts;                 // The readouts (referred to by number)
    178191    pmChip *parent;                    // Parent chip
    179192    bool valid;                        // Do we bother about reading and working with this cell?
    180     // FITS data
    181     const char *extname;               // Extension name, if it corresponds to this level
    182     psArray *pixels;                   // The pixel data, if it corresponds to this level
    183     psMetadata *header;                // The FITS header, if it corresponds to this level
     193    p_pmHDU *private;                  // FITS data
    184194} pmCell;
    185195\end{verbatim}
     
    187197The constructor for \code{pmCell} shall be:
    188198\begin{verbatim}
    189 pmCell *pmCellAlloc(pmChip *chip);
     199pmCell *pmCellAlloc(pmChip *chip, psMetadata *cameraData, psString name);
    190200\end{verbatim}
    191201The constructor shall make an empty \code{pmCell}.  If the parent
     
    193203cell shall be placed in the parent's array of \code{cells}.  The
    194204\code{readouts} array shall be allocated with a zero size, and the
    195 metadata containers constructed.  All other pointers in the structure
    196 shall be initialized to \code{NULL}.
     205metadata containers constructed.  The cell's \code{camera} pointer
     206shall be set to the provided \code{cameraData}, and the \code{name}
     207shall be used to set \code{CELL.NAME} in the \code{concepts}.  All
     208other pointers in the structure shall be initialized to \code{NULL}.
    197209
    198210\subsubsection{A Chip}
     
    224236    pmFPA *parent;                     // Parent FPA
    225237    bool valid;                        // Do we bother about reading and working with this chip?
    226     // FITS data
    227     const char *extname;               // Extension name, if it corresponds to this level
    228     psArray *pixels;                   // The pixel data, if it corresponds to this level
    229     psMetadata *header;                // The FITS header, if it corresponds to this level
     238    p_pmHDU *private;                   // FITS data
    230239} pmChip;
    231240\end{verbatim}
     
    233242The constructor for \code{pmChip} shall be:
    234243\begin{verbatim}
    235 pmChip *pmChipAlloc(pmFPA *fpa);
     244pmChip *pmChipAlloc(pmFPA *fpa, psString name);
    236245\end{verbatim}
    237246The constructor shall make an empty \code{pmChip}.  If the parent
     
    239248shall be placed in the parent's array of \code{chips}.  The
    240249\code{cells} array shall be allocated with a zero size, and the
    241 metadata containers constructed. All other pointers in the structure
    242 shall be initialized to \code{NULL}.
     250metadata containers constructed.  The \code{name} shall be used to set
     251\code{CHIP.NAME} in the \code{concepts}.  All other pointers in the
     252structure shall be initialized to \code{NULL}.
    243253
    244254\subsubsection{A Focal Plane}
     
    268278    psMetadata *analysis;              // FPA-level analysis metadata
    269279    const psMetadata *camera;          // Camera configuration
    270     psDB *db;                          // Database handle
    271280    psArray *chips;                    // The chips
    272     // FITS data
    273     psMetadata *header;                // The FITS header, if it corresponds to this level
     281    p_pmHDU *private;                  // FITS data
     282    psMetadata *phu;                   // Primary Header
    274283} pmFPA;
    275284\end{verbatim}
    276285
    277 \tbd{Carrying the DB handle around in the pmFPA may not be what we
    278 really want to do in the end (we might want to stuff it into a
    279 separate structure with other sources of information), but for now this
    280 serves as an approximation and a useful convenience.}
    281 
    282286The constructor for \code{pmFPA} shall be:
    283287\begin{verbatim}
    284 pmFPA *pmFPAAlloc(const psMetadata *camera, psDB *db);
     288pmFPA *pmFPAAlloc(const psMetadata *camera);
    285289\end{verbatim}
    286290The constructor shall make an empty \code{pmFPA}.  The \code{chips}
     
    376380\code{pmFPARead} shall read a \code{fits} file (the contents of which
    377381are described by the previous \code{camera} configuration) into an
    378 extant \code{fpa}.
     382extant \code{fpa}.  This involves reading the headers and pixels, as
     383well as ingesting all the concepts.
    379384
    380385\begin{prototype}
Note: See TracChangeset for help on using the changeset viewer.