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

Location:
branches/eam_branches/ohana.20150429/src/opihi/cmd.data
Files:
2 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)) {
  • branches/eam_branches/ohana.20150429/src/opihi/cmd.data/write_vectors.c

    r35109 r38330  
    33int write_vectors (int argc, char **argv) {
    44 
    5   int append;
    65  int i, j, Nvec, Ne, N;
    76  FILE *f;
    87  char **fmtlist, *fmttype;
    9   char *p0, *p1, *p2, *format, *FITS;
     8  char *p0, *p1, *p2, *format;
    109  Vector **vec;
    1110
     
    3433
    3534  /* option generate a FITS output table */
    36   FITS = NULL;
     35  char *FITS = NULL;
    3736  if ((N = get_argument (argc, argv, "-fits"))) {
    3837    remove_argument (N, &argc, argv);
     
    5857  }
    5958
    60   append = FALSE;
     59  int append = FALSE;
    6160  if ((N = get_argument (argc, argv, "-append"))) {
    6261    remove_argument (N, &argc, argv);
    6362    append = TRUE;
     63  }
     64
     65  int compress = FALSE;
     66  if ((N = get_argument (argc, argv, "-compress"))) {
     67    remove_argument (N, &argc, argv);
     68    compress = TRUE;
     69    if (!FITS) {
     70      fprintf (stderr, "NOTE: write_vectors -compress has no effect on non-FITS\n");
     71    }
    6472  }
    6573
     
    105113
    106114  if (FITS) {
    107     int status = WriteVectorTableFITS (argv[1], FITS, vec, Nvec, append, format);
     115    int status = WriteVectorTableFITS (argv[1], FITS, vec, Nvec, append, compress, format);
    108116    free (vec);
    109117    return status;
Note: See TracChangeset for help on using the changeset viewer.