IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 4, 2008, 9:51:09 PM (18 years ago)
Author:
Paul Price
Message:

Adding capability for a mask to be provided when determining BSCALE,BZERO. This is required for the case when a large masked region of the image has been set to a constant (or close to a constant). If the mask is not provided in this case, then the standard deviation is under-estimated, leading to a choice of BSCALE,BZERO that adversely affects the dynamic range of the image. Added functions psFitsWriteImageWithMask, psFitsUpdateImageWithMask and psFitsInsertImageWithMask, and kept the APIs of psFitsWriteImage, psFitsUpdateImage and psFitsInsertImage so that this change shouldn't break anything.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/fits/psFitsImage.h

    r15630 r19383  
    44 * @author Robert DeSonia, MHPCC
    55 *
    6  * @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
    7  * @date $Date: 2007-11-16 01:04:56 $
     6 * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
     7 * @date $Date: 2008-09-05 07:51:09 $
    88 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
    99 */
     
    2323
    2424/// Return the dimensions and type of the FITS image
    25 bool psFitsImageSize(int *numCols, int *numRows, ///< Size of image
    26                      psElemType *type,  ///< Type of image
    27                      const psFits *fits, ///< FITS file pointer
    28                      psRegion region    ///< Region in the FITS image to read
     25bool psFitsImageSize(
     26    int *numCols, int *numRows,         ///< Size of image
     27    psElemType *type,                   ///< Type of image
     28    const psFits *fits,                 ///< FITS file pointer
     29    psRegion region                     ///< Region in the FITS image to read
    2930    );
    3031
     
    3334 *  @return psImage*     the read image or NULL if there was an error.
    3435 */
    35 psImage* psFitsReadImage(
    36     const psFits* fits,                ///< the psFits object
    37     psRegion region,                   ///< the region in the FITS image to read
    38     int z                              ///< the z-plane in the FITS image cube to read
     36psImage *psFitsReadImage(
     37    const psFits *fits,                 ///< the psFits object
     38    psRegion region,                    ///< the region in the FITS image to read
     39    int z                               ///< the z-plane in the FITS image cube to read
    3940);
    4041
    41 // Read an image into an extant buffer
    42 psImage* psFitsReadImageBuffer(psImage *output, // Output image buffer
    43                                const psFits *fits,    // the psFits object
    44                                psRegion region, // the region in the FITS image to read
    45                                int z           // the z-plane in the FITS image cube to read
    46                               );
     42/** Read an image into an extant buffer
     43 */
     44psImage *psFitsReadImageBuffer(
     45    psImage *output,                    ///< Output image buffer
     46    const psFits *fits,                 ///< the psFits object
     47    psRegion region,                    ///< the region in the FITS image to read
     48    int z                               ///< the z-plane in the FITS image cube to read
     49    );
    4750
    48 /** Writes an image, given the desired region and z-plane.
     51/** Writes an image to a FITS file
     52 *
     53 * A new IMAGE HDU is appended to the end of the FITS file.
    4954 *
    5055 *  @return bool        TRUE is the write was successful, otherwise FALSE.
    5156 */
    5257bool psFitsWriteImage(
    53     psFits* fits,                      ///< the psFits object
    54     psMetadata* header,                 ///< header items for the new HDU.  Can be NULL.
    55     const psImage* input,              ///< the image to output
    56     int depth,                         ///< the number of z-planes of the FITS image data cube
    57     const char* extname                ///< FITS extension name
     58    psFits *fits,                       ///< the psFits object
     59    psMetadata *header,                 ///< header items for the new HDU.  Can be NULL.
     60    const psImage *input,               ///< the image to output
     61    int depth,                          ///< the number of z-planes of the FITS image data cube
     62    const char *extname                 ///< FITS extension name
    5863);
    5964
    60 /** Writes an image, given the desired region and z-plane.  A new IMAGE HDU is
    61  *  appended to the end of the FITS file.
     65/** Writes an image to a FITS file, optionally using the supplied mask image to do statistics when compressing
     66 *
     67 * A new IMAGE HDU is appended to the end of the FITS file.
     68 *
     69 *  @return bool        TRUE is the write was successful, otherwise FALSE.
     70 */
     71bool psFitsWriteImageWithMask(
     72    psFits *fits,                       ///< the psFits object
     73    psMetadata *header,                 ///< header items for the new HDU.  Can be NULL.
     74    const psImage *input,               ///< the image to output
     75    const psImage *mask,                ///< the mask image
     76    psMaskType maskVal,                 ///< value to mask
     77    int depth,                          ///< the number of z-planes of the FITS image data cube
     78    const char *extname                 ///< FITS extension name
     79);
     80
     81/** Insert an image in a FITS file
    6282 *
    6383 *  @return bool        TRUE is the write was successful, otherwise FALSE.
    6484 */
    6585bool psFitsInsertImage(
    66     psFits* fits,                      ///< the psFits object
    67     psMetadata* header,                 ///< header items for the new HDU.  Can be NULL.
    68     const psImage* input,              ///< the image to output
    69     int depth,                         ///< the number of z-planes of the FITS image data cube
    70     const char* extname,               ///< FITS extension name
    71     bool after                         ///< if TRUE, inserts HDU after current HDU, otherwise before
     86    psFits *fits,                       ///< the psFits object
     87    psMetadata *header,                 ///< header items for the new HDU.  Can be NULL.
     88    const psImage *input,               ///< the image to output
     89    int depth,                          ///< the number of z-planes of the FITS image data cube
     90    const char *extname,                ///< FITS extension name
     91    bool after                          ///< if TRUE, inserts HDU after current HDU, otherwise before
    7292);
    7393
    74 /** Updates the FITS file image, given the desired region and z-plane. a new
    75  *  IMAGE HDU is inserted before or after, depending on the AFTER parameter,
    76  *  the current HDU.
     94/** Insert an image in a FITS file, optionally using the supplied mask image to do statistics when compressing
     95 *
     96 *  @return bool        TRUE is the write was successful, otherwise FALSE.
     97 */
     98bool psFitsInsertImageWithMask(
     99    psFits *fits,                       ///< the psFits object
     100    psMetadata *header,                 ///< header items for the new HDU.  Can be NULL.
     101    const psImage *input,               ///< the image to output
     102    const psImage *mask,                ///< the mask image
     103    psMaskType maskVal,                 ///< value to mask
     104    int depth,                          ///< the number of z-planes of the FITS image data cube
     105    const char *extname,                ///< FITS extension name
     106    bool after                          ///< if TRUE, inserts HDU after current HDU, otherwise before
     107);
     108
     109/** Updates an existing FITS file image
    77110 *
    78111 *  @return bool        TRUE is the write was successful, otherwise FALSE.
    79112 */
    80113bool psFitsUpdateImage(
    81     psFits* fits,                      ///< the psFits object
    82     const psImage* input,              ///< the image to output
    83     int x0,                            ///< psImage's x-axis origin in FITS image coordinates
    84     int y0,                            ///< psImage's y-axis origin in FITS image coordinates
    85     int z                              ///< the z-planes of the FITS image data cube to write
     114    psFits *fits,                       ///< the psFits object
     115    const psImage *input,               ///< the image to output
     116    int x0,                             ///< psImage's x-axis origin in FITS image coordinates
     117    int y0,                             ///< psImage's y-axis origin in FITS image coordinates
     118    int z                               ///< the z-planes of the FITS image data cube to write
     119);
     120
     121/** Updates an existing FITS file image, optionally using the supplied mask image to do statistics when
     122 ** compressing
     123 *
     124 *  @return bool        TRUE is the write was successful, otherwise FALSE.
     125 */
     126bool psFitsUpdateImageWithMask(
     127    psFits *fits,                       ///< the psFits object
     128    const psImage *input,               ///< the image to output
     129    const psImage *mask,                ///< the mask image
     130    psMaskType maskVal,                 ///< value to mask
     131    int x0,                             ///< psImage's x-axis origin in FITS image coordinates
     132    int y0,                             ///< psImage's y-axis origin in FITS image coordinates
     133    int z                               ///< the z-planes of the FITS image data cube to write
    86134);
    87135
    88136psArray *psFitsReadImageCube(const psFits *fits, psRegion region);
     137
    89138bool psFitsWriteImageCube(psFits *fits, psMetadata *header, const psArray *input, const char *extname);
     139
    90140bool psFitsUpdateImageCube(psFits *fits, const psArray *input, int x0, int y0);
    91141
Note: See TracChangeset for help on using the changeset viewer.