IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 7, 2006, 5:06:40 PM (20 years ago)
Author:
Paul Price
Message:
  • Moving common functions (convertFitsToPsType and convertPsTypeToFits) into

psFits as private functions (p_psFitsTypeFromCfitsio and p_psFitsTypeToCfitsio).

  • Reworked psFitsInsertTable: previous version was not writing the

last column of the table; new version writes all columns.

File:
1 edited

Legend:

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

    r7540 r7846  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2006-06-13 22:28:02 $
     9 *  @version $Revision: 1.11 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2006-07-08 03:06:40 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3131#define MAX_STRING_LENGTH 256  // maximum length string for FITS routines
    3232
    33 
    34 static bool convertPsTypeToFits(int type, int* bitPix, double* bZero, int* dataType)
    35 {
    36 
    37     int bitpix;
    38     int datatype;
    39     double bzero = 0.0;
    40 
    41     switch (type) {
    42 
    43     case PS_TYPE_U8:
    44         bitpix = BYTE_IMG;
    45         datatype = TBYTE;
    46         break;
    47 
    48     case PS_TYPE_S8:
    49         bitpix = BYTE_IMG;
    50         bzero = INT8_MIN;
    51         datatype = TSBYTE;
    52         break;
    53 
    54     case PS_TYPE_U16:
    55         bitpix = SHORT_IMG;
    56         bzero = -1.0 * INT16_MIN;
    57         datatype = TUSHORT;
    58         break;
    59 
    60     case PS_TYPE_S16:
    61         bitpix = SHORT_IMG;
    62         datatype = TSHORT;
    63         break;
    64 
    65     case PS_TYPE_U32:
    66         bitpix = LONG_IMG;
    67         bzero = -1.0 * INT32_MIN;
    68         datatype = TUINT;
    69         break;
    70 
    71     case PS_TYPE_S32:
    72         bitpix = LONG_IMG;
    73         datatype = TINT;
    74         break;
    75 
    76     case PS_TYPE_F32:
    77         bitpix = FLOAT_IMG;
    78         datatype = TFLOAT;
    79         break;
    80 
    81     case PS_TYPE_F64:
    82         bitpix = DOUBLE_IMG;
    83         datatype = TDOUBLE;
    84         break;
    85 
    86     case PS_DATA_STRING:
    87         bitpix = BYTE_IMG;
    88         datatype = TSTRING;
    89         break;
    90 
    91     case PS_DATA_BOOL:
    92         bitpix = BYTE_IMG;
    93         datatype = TLOGICAL;
    94         break;
    95 
    96     default: {
    97             char* typeStr;
    98             PS_TYPE_NAME(typeStr,type);
    99             psError(PS_ERR_BAD_PARAMETER_TYPE, true,
    100                     PS_ERRORTEXT_psFits_TYPE_UNSUPPORTED,
    101                     typeStr);
    102             return false;
    103         }
    104     }
    105 
    106     // pass the requested parameters  (NULL parameters are not set, of course).
    107     if (bitPix != NULL) {
    108         *bitPix = bitpix;
    109     }
    110 
    111     if (dataType != NULL) {
    112         *dataType = datatype;
    113     }
    114 
    115     if (bZero != NULL) {
    116         *bZero = bzero;
    117     }
    118 
    119     return true;
    120 }
    121 
    12233psImage* psFitsReadImage(const psFits* fits,    // the psFits object
    12334                         psRegion region, // the region in the FITS image to read
     
    314225    double bZero;                       // Zero offset
    315226    int dataType;                       // cfitsio data type
    316     if (! convertPsTypeToFits(input->type.type, &bitPix, &bZero, &dataType) ) {
     227    if (! p_psFitsTypeToCfitsio(input->type.type, &bitPix, &bZero, &dataType) ) {
    317228        return false;
    318229    }
     
    440351    double bZero;
    441352    int dataType;
    442     if (! convertPsTypeToFits(input->type.type, &bitPix, &bZero, &dataType) ) {
     353    if (! p_psFitsTypeToCfitsio(input->type.type, &bitPix, &bZero, &dataType) ) {
    443354        return false;
    444355    }
Note: See TracChangeset for help on using the changeset viewer.