IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 18403


Ignore:
Timestamp:
Jul 1, 2008, 7:07:44 PM (18 years ago)
Author:
eugene
Message:

fix pcount, gcount

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libfits/matrix/F_compress_M.c

    r18276 r18403  
    1919
    2020# define MOD_KEYWORD(ZNAME,NAME,TYPE,IN,OUT) { \
    21   gfits_scan (header, ZNAME, TYPE, 1, IN); \
    22   gfits_delete (header, ZNAME, 1); \
    23   gfits_modify (header, NAME, TYPE, 1, OUT); }
     21    if (gfits_scan (header, ZNAME, TYPE, 1, IN)) { \
     22      gfits_modify (header, NAME, TYPE, 1, OUT); \
     23    } \
     24    gfits_delete (header, ZNAME, 1); }
    2425
    2526# define MOD_KEYWORD_REQUIRED(ZNAME,NAME,TYPE,IN,OUT) { \
     
    147148    gfits_delete (header, "ZTENSION", 1);
    148149    gfits_modify_extended (header, exttype, "Image extension");
    149     // XXX validate that exttype == 'IMAGE'?
    150 
    151     MOD_KEYWORD ("ZPCOUNT",  "PCOUNT",   "%d", &header->pcount, header->pcount);
    152     MOD_KEYWORD ("ZGCOUNT",  "GCOUNT",   "%d", &header->gcount, header->gcount);
     150
     151    // we may have an uncompressed PCOUNT / GCOUNT value, otherwise set to 0,1
     152    if (gfits_scan (header, "ZPCOUNT", "%d", 1, &header->pcount)) {
     153        gfits_delete (header, "ZPCOUNT", 1);
     154        gfits_modify (header, "PCOUNT", "%d", 1, header->pcount);
     155    } else {
     156        header->pcount = 0;
     157        gfits_modify (header, "PCOUNT", "%d", 1, header->pcount);
     158    }
     159    if (gfits_scan (header, "ZGCOUNT", "%d", 1, &header->gcount)) {
     160        gfits_delete (header, "ZGCOUNT", 1);
     161        gfits_modify (header, "GCOUNT", "%d", 1, header->gcount);
     162    } else {
     163        header->pcount = 1;
     164        gfits_modify (header, "GCOUNT", "%d", 1, header->gcount);
     165    }
     166  } else {
     167    header->pcount = 0;
     168    header->gcount = 1;
     169    gfits_modify (header, "PCOUNT", "%d", 1, header->pcount);
     170    gfits_modify (header, "GCOUNT", "%d", 1, header->gcount);
    153171  }
    154172
Note: See TracChangeset for help on using the changeset viewer.