00001 /* @file pmFPAWrite.h 00002 * @brief Write FPA components to a FITS file 00003 * 00004 * @author Paul Price, IfA 00005 * 00006 * @version $Revision: 1.8 $ $Name: $ 00007 * @date $Date: 2007/01/24 02:54:14 $ 00008 * Copyright 2005-2006 Institute for Astronomy, University of Hawaii 00009 */ 00010 00011 #ifndef PM_FPA_WRITE_H 00012 #define PM_FPA_WRITE_H 00013 00014 /// @addtogroup Camera Camera Layout 00015 /// @{ 00016 00017 #include <pslib.h> 00018 #include "pmFPA.h" 00019 00020 /// Write a readout incrementally 00021 /// 00022 /// Writes a readout to a FITS file, perhaps incrementally (if it has been read in using pmReadoutReadNext). 00023 /// Relies on the FITS header to specify how many image planes there are, and the width and height. 00024 bool pmReadoutWriteNext(pmReadout *readout, ///< Readout to write 00025 psFits *fits, ///< FITS file to which to write 00026 int z ///< Image plane to write 00027 ); 00028 00029 /// Write a cell to a FITS file 00030 /// 00031 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU pixels if required. A blank (i.e., image-less header) is 00032 /// written only if specifically requested. Writes the concepts to the various locations, and then the HDU to 00033 /// the FITS file. This function should be called at the beginning of the output cell loop with blank=true in 00034 /// order to produce the correct file structure. 00035 bool pmCellWrite(pmCell *cell, ///< Cell to write 00036 psFits *fits, ///< FITS file to which to write 00037 psDB *db, ///< Database handle for "concepts" update 00038 bool blank ///< Write a blank PHU? 00039 ); 00040 00041 /// Write a chip to a FITS file 00042 /// 00043 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU pixels if required. A blank (i.e., image-less header) is 00044 /// written only if specifically requested. Writes the concepts to the various locations, and then the HDU to 00045 /// the FITS file, optionally recursing to lower levels. This function should be called at the beginning of 00046 /// the output chip loop with blank=true and recurse=false in order to produce the correct file structure. 00047 bool pmChipWrite(pmChip *chip, ///< Chip to write 00048 psFits *fits, ///< FITS file to which to write 00049 psDB *db, ///< Database handle for "concepts" update 00050 bool blank, ///< Write a blank PHU? 00051 bool recurse ///< Recurse to lower levels? 00052 ); 00053 00054 /// Write an FPA to a FITS file 00055 /// 00056 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU pixels if required. A blank (i.e., image-less header) is 00057 /// written only if specifically requested. Writes the concepts to the various locations, and then the HDU to 00058 /// the FITS file, optionally recursing to lower levels. This function should be called at the beginning of 00059 /// the output FPA loop with blank=true and recurse=false in order to produce the correct file structure. 00060 bool pmFPAWrite(pmFPA *fpa, ///< FPA to write 00061 psFits *fits, ///< FITS file to which to write 00062 psDB *db, ///< Database handle for "concepts" update 00063 bool blank, ///< Write a blank PHU? 00064 bool recurse ///< Recurse to lower levels? 00065 ); 00066 00067 /// Write a cell mask to a FITS file 00068 /// 00069 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU mask pixels if required. A blank (i.e., image-less 00070 /// header) is written only if specifically requested. Writes the concepts to the various locations, and then 00071 /// the HDU mask to the FITS file. This function should be called at the beginning of the output cell loop 00072 /// with blank=true in order to produce the correct file structure. 00073 bool pmCellWriteMask(pmCell *cell, ///< Cell to write 00074 psFits *fits, ///< FITS file to which to write 00075 psDB *db, ///< Database handle for "concepts" update 00076 bool blank ///< Write a blank PHU? 00077 ); 00078 00079 /// Write a chip mask to a FITS file 00080 /// 00081 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU mask pixels if required. A blank (i.e., image-less 00082 /// header) is written only if specifically requested. Writes the concepts to the various locations, and then 00083 /// the HDU mask to the FITS file, optionally recursing to lower levels. This function should be called at 00084 /// the beginning of the output chip loop with blank=true and recurse=false in order to produce the correct 00085 /// file structure. 00086 bool pmChipWriteMask(pmChip *chip, ///< Chip to write 00087 psFits *fits, ///< FITS file to which to write 00088 psDB *db, ///< Database handle for "concepts" update 00089 bool blank, ///< Write a blank PHU? 00090 bool recurse ///< Recurse to lower levels? 00091 ); 00092 00093 /// Write an FPA mask to a FITS file 00094 /// 00095 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU mask pixels if required. A blank (i.e., image-less 00096 /// header) is written only if specifically requested. Writes the concepts to the various locations, and then 00097 /// the HDU mask to the FITS file, optionally recursing to lower levels. This function should be called at 00098 /// the beginning of the output FPA loop with blank=true and recurse=false in order to produce the correct 00099 /// file structure. 00100 bool pmFPAWriteMask(pmFPA *fpa, ///< FPA to write 00101 psFits *fits, ///< FITS file to which to write 00102 psDB *db, ///< Database handle for "concepts" update 00103 bool blank, ///< Write a blank PHU? 00104 bool recurse ///< Recurse to lower levels? 00105 ); 00106 00107 /// Write a cell weight to a FITS file 00108 /// 00109 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU weight pixels if required. A blank (i.e., image-less 00110 /// header) is written only if specifically requested. Writes the concepts to the various locations, and then 00111 /// the HDU weight to the FITS file. This function should be called at the beginning of the output cell loop 00112 /// with blank=true in order to produce the correct file structure. 00113 bool pmCellWriteWeight(pmCell *cell, ///< Cell to write 00114 psFits *fits, ///< FITS file to which to write 00115 psDB *db, ///< Database handle for "concepts" update 00116 bool blank ///< Write a blank PHU? 00117 ); 00118 00119 /// Write a chip weight to a FITS file 00120 /// 00121 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU weight pixels if required. A blank (i.e., image-less 00122 /// header) is written only if specifically requested. Writes the concepts to the various locations, and then 00123 /// the HDU weight to the FITS file, optionally recursing to lower levels. This function should be called at 00124 /// the beginning of the output chip loop with blank=true and recurse=false in order to produce the correct 00125 /// file structure. 00126 bool pmChipWriteWeight(pmChip *chip, ///< Chip to write 00127 psFits *fits, ///< FITS file to which to write 00128 psDB *db, ///< Database handle for "concepts" update 00129 bool blank, ///< Write a blank PHU? 00130 bool recurse ///< Recurse to lower levels? 00131 ); 00132 00133 /// Write an FPA weight to a FITS file 00134 /// 00135 /// Generates CELL.TRIMSEC, CELL.BIASSEC and the HDU weight pixels if required. A blank (i.e., image-less 00136 /// header) is written only if specifically requested. Writes the concepts to the various locations, and then 00137 /// the HDU weight to the FITS file, optionally recursing to lower levels. This function should be called at 00138 /// the beginning of the output FPA loop with blank=true and recurse=false in order to produce the correct 00139 /// file structure. 00140 bool pmFPAWriteWeight(pmFPA *fpa, ///< FPA to write 00141 psFits *fits, ///< FITS file to which to write 00142 psDB *db, ///< Database handle for "concepts" update 00143 bool blank, ///< Write a blank PHU? 00144 bool recurse ///< Recurse to lower levels? 00145 ); 00146 00147 00148 /// Write a FITS table from the cell's analysis metadata. 00149 /// 00150 /// The FITS table (a psArray of psMetadatas) from the cell's analysis metadata (under "name") is written to 00151 /// the FITS file, at an extension specified by the name, chip name and cell name ("NAME_CHIP_CELL"). If a 00152 /// header is present in the analysis metadata ("name.HEADER"), then it is written also. 00153 int pmCellWriteTable(psFits *fits, ///< FITS file to which to write 00154 const pmCell *cell, ///< Cell containing FITS table in the analysis metadata 00155 const char *name ///< Name for the table data, and the extension name 00156 ); 00157 00158 int pmChipWriteTable(psFits *fits, ///< FITS file to which to write 00159 const pmChip *chip, ///< Chip containing cells with tables to write 00160 const char *name ///< Name for the table data, and the extension name 00161 ); 00162 00163 int pmFPAWriteTable(psFits *fits, ///< FITS file to which to write 00164 const pmFPA *fpa, ///< FPA containing cells with tables to write 00165 const char *name ///< Name for the table data, and the extension name 00166 ); 00167 /// @} 00168 #endif
1.5.1