IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 15647


Ignore:
Timestamp:
Nov 18, 2007, 6:26:12 PM (18 years ago)
Author:
eugene
Message:

updates for compression

Location:
trunk/Ohana/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libfits/include/gfitsio.h

    r15487 r15647  
    152152void    gfits_set_matrix_value         PROTO((Matrix *matrix, int x, int y, double value));
    153153int     gfits_write_matrix             PROTO((char *filename, Matrix *matrix));
    154 int     gfits_uncompress_image         PROTO((Header *header, Matrix *matrix, FTable *ftable, int primary));
     154int     gfits_uncompress_image         PROTO((Header *header, Matrix *matrix, FTable *ftable));
    155155int     gfits_uncompress_data          PROTO((char *zdata, int Nzdata, char *cmptype, char **optname, char **optvalue, int Nopt, char *outdata, int *Nout, int out_pixsize));
    156156int     gfits_distribute_data          PROTO((Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int *ztile, float zscale, float zzero));
  • trunk/Ohana/src/libfits/matrix/F_compress_M.c

    r15487 r15647  
    2828  return (FALSE); }
    2929
    30 int gfits_uncompress_image (Header *header, Matrix *matrix, FTable *ftable, int primary) {
     30int gfits_uncompress_image (Header *header, Matrix *matrix, FTable *ftable) {
    3131
    3232  int i, j, status, zimage, zcol, Nzrows, Nout, Nzdata, max_tile_size, bytes_per_pixel;
     
    103103  // XXX is Noptions set to the correct value?
    104104  // XXX get ZMASKCMP
    105   // XXX can primary be defined on basis of the header?
    106 
    107   if (primary) {
    108     // XXX SIMPLE & XTENSION need to be set on the first line
    109     if (!gfits_scan (header, "ZSIMPLE", "%t", 1, &header->simple)) ESCAPE;
     105
     106  int zsimple, have_zsimple;
     107  int have_ztension;
     108
     109  have_zsimple  = gfits_scan (header, "ZSIMPLE", "%t", 1, &zsimple);
     110  have_ztension = gfits_scan (header, "ZTENSION", "%s", 1, exttype);
     111
     112  if (!have_zsimple && !have_ztension) ESCAPE;
     113  if ( have_zsimple &&  have_ztension) ESCAPE;
     114
     115  // have_zsimple : image comes from a PHU
     116  if (have_zsimple) {
     117    header->simple = zsimple;
    110118    gfits_delete (header, "ZSIMPLE", 1);
    111119    gfits_extended_to_primary (header, header->simple, "Image data");
     
    114122    MOD_KEYWORD ("ZBLOCKED", "BLOCKED",  "%t", &header->extend, header->extend);
    115123  } else {
    116     // XXX XTENSION needs to be set on the first line
    117     if (!gfits_scan (header, "ZTENSION", "%s", 1, exttype)) ESCAPE;
    118124    gfits_delete (header, "ZTENSION", 1);
    119125    gfits_modify_extended (header, exttype, "Image extension");
     126    // XXX validate that exttype == 'IMAGE'?
    120127
    121128    MOD_KEYWORD ("ZPCOUNT",  "PCOUNT",   "%d", &header->pcount, header->pcount);
  • trunk/Ohana/src/opihi/cmd.data/rd.c

    r15487 r15647  
    182182    ftable.header = &theader;
    183183    gfits_copy_header (&buf[0].header, ftable.header);
    184     status = gfits_fread_ftable_data (f, &ftable);  // XXX does this do more than read the bytes?
    185     status = gfits_uncompress_image (&buf[0].header, &buf[0].matrix, &ftable, !(ccdsel || extend));
     184    status = gfits_fread_ftable_data (f, &ftable);  // this just reads the bytes (not even a SWAP)
     185    status = gfits_uncompress_image (&buf[0].header, &buf[0].matrix, &ftable);
    186186    gfits_free_table (&ftable);
    187187    // XXX this currently does not work for a cube (we get a cube back, not a specific plane)
Note: See TracChangeset for help on using the changeset viewer.