Changeset 5022 for trunk/doc/modules/CameraImages.tex
- Timestamp:
- Sep 12, 2005, 5:26:45 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/doc/modules/CameraImages.tex (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/modules/CameraImages.tex
r4757 r5022 105 105 \subsection{Image Data Container Hierarchy} 106 106 107 Here we specify the contents of the focal plane hierarchy: 108 \code{pmReadout}, \code{pmCell}, \code{pmChip} and \code{pmFPA}. Many 109 of the components of these are similar. All but the \code{pmFPA} 110 contain offsets from the level above (\code{col0,row0}), and a link to 111 the parent. All but the \code{pmReadout} contain a private pointer to 112 FITS data and more detailed astrometric transforms. Each contains an 113 \code{analysis} metadata container which is intended to store results 114 of 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 117 are they known?} 118 107 119 \subsubsection{A Readout} 108 120 … … 112 124 factors and parity (if the binning value is negative, then the parity 113 125 is reversed). It also contains the pixel data (with corresponding 114 mask ), metadata containers for the concepts and analysis, and a link115 t o the parent.126 mask and weight), metadata container for the analysis, and a link to 127 the parent. 116 128 117 129 \begin{verbatim} … … 125 137 psImage *image; // Imaging area of readout 126 138 psImage *mask; // Mask for image 139 psImage *weight; // Weight for image 127 140 psList *bias; // List of bias section (sub-)images 128 141 psMetadata *analysis; // Readout-level analysis metadata 129 psMetadata *concepts; // Cache for PS concepts130 142 pmCell *parent; // Parent cell 131 143 } pmReadout; … … 146 158 A cell consists of one or more readouts (usually only one except in 147 159 the case that the cell has been used for fast guiding, or similar 148 situations). It ha vevalues which specifies the position of the cell160 situations). It has values which specifies the position of the cell 149 161 on the chip for rough positioning, along with more precise coordinate 150 162 transforms from the cell to the chip and, as a convenience, from the … … 159 171 Focal Plane $\rightarrow$ Tangent Plane $\rightarrow$ Sky, but will be 160 172 faster. The cell also contains metadata containers for the concepts 161 and analysis, a link to the parent, and pointers to the various FITS162 data, if that corresponds to this level. A boolean indicates whether 163 thecell is of interest, allowing it to be excluded from analysis.173 and analysis, a link to the parent, and a container for the FITS data, 174 if that corresponds to this level. A boolean indicates whether the 175 cell is of interest, allowing it to be excluded from analysis. 164 176 165 177 \begin{verbatim} … … 174 186 // Information 175 187 psMetadata *concepts; // Cache for PS concepts 188 psMetadata *camera; // Camera information 176 189 psMetadata *analysis; // Cell-level analysis metadata 177 190 psArray *readouts; // The readouts (referred to by number) 178 191 pmChip *parent; // Parent chip 179 192 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 184 194 } pmCell; 185 195 \end{verbatim} … … 187 197 The constructor for \code{pmCell} shall be: 188 198 \begin{verbatim} 189 pmCell *pmCellAlloc(pmChip *chip );199 pmCell *pmCellAlloc(pmChip *chip, psMetadata *cameraData, psString name); 190 200 \end{verbatim} 191 201 The constructor shall make an empty \code{pmCell}. If the parent … … 193 203 cell shall be placed in the parent's array of \code{cells}. The 194 204 \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}. 205 metadata containers constructed. The cell's \code{camera} pointer 206 shall be set to the provided \code{cameraData}, and the \code{name} 207 shall be used to set \code{CELL.NAME} in the \code{concepts}. All 208 other pointers in the structure shall be initialized to \code{NULL}. 197 209 198 210 \subsubsection{A Chip} … … 224 236 pmFPA *parent; // Parent FPA 225 237 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 230 239 } pmChip; 231 240 \end{verbatim} … … 233 242 The constructor for \code{pmChip} shall be: 234 243 \begin{verbatim} 235 pmChip *pmChipAlloc(pmFPA *fpa );244 pmChip *pmChipAlloc(pmFPA *fpa, psString name); 236 245 \end{verbatim} 237 246 The constructor shall make an empty \code{pmChip}. If the parent … … 239 248 shall be placed in the parent's array of \code{chips}. The 240 249 \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}. 250 metadata containers constructed. The \code{name} shall be used to set 251 \code{CHIP.NAME} in the \code{concepts}. All other pointers in the 252 structure shall be initialized to \code{NULL}. 243 253 244 254 \subsubsection{A Focal Plane} … … 268 278 psMetadata *analysis; // FPA-level analysis metadata 269 279 const psMetadata *camera; // Camera configuration 270 psDB *db; // Database handle271 280 psArray *chips; // The chips 272 // FITS data273 psMetadata * header; // The FITS header, if it corresponds to this level281 p_pmHDU *private; // FITS data 282 psMetadata *phu; // Primary Header 274 283 } pmFPA; 275 284 \end{verbatim} 276 285 277 \tbd{Carrying the DB handle around in the pmFPA may not be what we278 really want to do in the end (we might want to stuff it into a279 separate structure with other sources of information), but for now this280 serves as an approximation and a useful convenience.}281 282 286 The constructor for \code{pmFPA} shall be: 283 287 \begin{verbatim} 284 pmFPA *pmFPAAlloc(const psMetadata *camera , psDB *db);288 pmFPA *pmFPAAlloc(const psMetadata *camera); 285 289 \end{verbatim} 286 290 The constructor shall make an empty \code{pmFPA}. The \code{chips} … … 376 380 \code{pmFPARead} shall read a \code{fits} file (the contents of which 377 381 are described by the previous \code{camera} configuration) into an 378 extant \code{fpa}. 382 extant \code{fpa}. This involves reading the headers and pixels, as 383 well as ingesting all the concepts. 379 384 380 385 \begin{prototype}
Note:
See TracChangeset
for help on using the changeset viewer.
