00001 /* @file pmHDU.h 00002 * @brief Define a header data unit (from a FITS file), with functions to read and write 00003 * 00004 * @author Paul Price, IfA 00005 * 00006 * @version $Revision: 1.7 $ $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_HDU_H 00012 #define PM_HDU_H 00013 00014 /// @addtogroup Camera Camera Layout 00015 /// @{ 00016 00017 /// An instance of the FITS Header Data Unit 00018 /// 00019 /// Of course, it is not an exact replica of a FITS HDU --- they have no mask and weight data, but these are 00020 /// stored here for convenience --- it keeps all the relevant data about the image in one place. 00021 typedef struct 00022 { 00023 psString extname; ///< The extension name 00024 bool blankPHU; ///< Is this a blank FITS Primary Header Unit, i.e., no data? 00025 psMetadata *format; ///< The camera format 00026 psMetadata *header; ///< The FITS header, or NULL if primary for FITS; or section info 00027 psArray *images; ///< The pixel data 00028 psArray *weights; ///< The pixel data 00029 psArray *masks; ///< The pixel data 00030 } 00031 pmHDU; 00032 00033 00034 /// Allocator for pmHDU 00035 pmHDU *pmHDUAlloc(const char *extname ///< Extension name, or NULL for PHU 00036 ); 00037 00038 /// Read the HDU header only 00039 /// 00040 /// Moves to the appropriate extension 00041 bool pmHDUReadHeader(pmHDU *hdu, ///< HDU for which to read header 00042 psFits *fits ///< FITS file from which to read 00043 ); 00044 00045 /// Read the HDU header and pixels 00046 /// 00047 /// Moves to the appropriate extension 00048 bool pmHDURead(pmHDU *hdu, ///< HDU to read 00049 psFits *fits ///< FITS file to read from 00050 ); 00051 00052 /// Read the HDU header and mask 00053 /// 00054 /// Moves to the appropriate extension 00055 bool pmHDUReadMask(pmHDU *hdu, ///< HDU to read 00056 psFits *fits ///< FITS file to read from 00057 ); 00058 00059 /// Read the HDU header and weight map 00060 /// 00061 /// Moves to the appropriate extension 00062 bool pmHDUReadWeight(pmHDU *hdu, ///< HDU to read 00063 psFits *fits ///< FITS file to read from 00064 ); 00065 00066 /// Write the HDU header and pixels 00067 bool pmHDUWrite(pmHDU *hdu, ///< HDU to write 00068 psFits *fits ///< FITS file to write to 00069 ); 00070 00071 /// Write the HDU header and mask 00072 bool pmHDUWriteMask(pmHDU *hdu, ///< HDU to write 00073 psFits *fits ///< FITS file to write to 00074 ); 00075 00076 /// Write the HDU header and weight map 00077 bool pmHDUWriteWeight(pmHDU *hdu, ///< HDU to write 00078 psFits *fits ///< FITS file to write to 00079 ); 00080 00081 /// @} 00082 #endif
1.5.1