IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 28, 2015, 8:28:24 PM (11 years ago)
Author:
eugene
Message:

adding compression option to wd and write

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ohana.20150429/src/opihi/cmd.data/wd.c

    r38062 r38330  
    33int wd (int argc, char **argv) {
    44 
    5   int N, Extend;
     5  int N, Extend, Compress;
    66  int newUnsign, newBitpix, newScale, newZero;
    77  int outUnsign, outBitpix;
     
    1616    remove_argument (N, &argc, argv);
    1717    Extend  = TRUE;
     18  }
     19
     20  Compress = FALSE;
     21  if ((N = get_argument (argc, argv, "-compress"))) {
     22    remove_argument (N, &argc, argv);
     23    Compress = TRUE;
    1824  }
    1925
     
    162168  }
    163169 
     170  // not compatible with extend
     171  if (Compress) {
     172    Header myHeader;
     173    Matrix myMatrix;
     174
     175    FILE *f = fopen (argv[2], "w");
     176    if (!f) {
     177      fprintf (stderr, "ERROR: cannot open image subset file for output %s\n", argv[2]);
     178      return FALSE;
     179    }
     180   
     181    gfits_init_header (&myHeader);
     182    myHeader.extend = TRUE;
     183    gfits_create_header (&myHeader);
     184    gfits_create_matrix (&myHeader, &myMatrix);
     185    gfits_fwrite_header  (f, &myHeader);
     186    gfits_fwrite_matrix  (f, &myMatrix);
     187    gfits_free_header (&myHeader);
     188    gfits_free_matrix (&myMatrix);
     189
     190    FTable ftable;
     191    Header theader;
     192
     193    ftable.header = &theader;
     194
     195    gfits_compress_image (&temp_header, &temp_matrix, &ftable, NULL, "GZIP_1");
     196    gfits_byteswap_varlength_column (&ftable, 1);
     197   
     198    gfits_fwrite_Theader (f, &theader);
     199    gfits_fwrite_table  (f, &ftable);
     200    fclose (f);
     201
     202    gfits_free_header (&theader);
     203    gfits_free_table (&ftable);
     204    return (TRUE);
     205  }
     206
    164207  /* the actual write-to-disk goes here */
    165208  if (!gfits_write_header (argv[2], &temp_header)) {
Note: See TracChangeset for help on using the changeset viewer.