IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 6, 2007, 5:09:52 PM (19 years ago)
Author:
eugene
Message:

merging changes from eam_branch_20071015 (read compressed images, clean addstar I/O, other minor issues)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libfits/table/F_create_TH.c

    r7054 r15487  
    11# include <ohana.h>
    22# include <gfitsio.h>
     3# define NBYTES 2880
    34
    45/* a basic table header (extension) is different from a primary header
     
    1213  char axis[10];
    1314 
    14   header[0].size = 2880;
    15   ALLOCATE (header[0].buffer, char, 2880);
     15  header[0].size = NBYTES;
     16
     17  ALLOCATE (header[0].buffer, char, NBYTES);
    1618 
    17   for (i = 0; i < 2880; i++)
     19  for (i = 0; i < NBYTES; i++)
    1820  header[0].buffer[i] = ' ';
    1921  strncpy (header[0].buffer, "END", 3);
    2022 
    2123  gfits_modify (header, "XTENSION", "%s", 1, type);
    22   gfits_modify (header, "BITPIX", "%d", 1, header[0].bitpix);
    23   gfits_modify (header, "NAXIS",  "%d", 1, header[0].Naxes);
     24  gfits_modify (header, "BITPIX",   "%d", 1, header[0].bitpix);
     25  gfits_modify (header, "NAXIS",    "%d", 1, header[0].Naxes);
    2426 
    2527  for (i = 0; i < header[0].Naxes; i++) {
     
    2830  }
    2931 
    30   /* PCOUNT & GCOUNT are not implemented, but they are required to be here */
    31   gfits_modify (header, "PCOUNT", "%d", 1, 0);
    32   gfits_modify (header, "GCOUNT", "%d", 1, 1);
     32  gfits_modify (header, "PCOUNT", "%d", 1, header[0].pcount);
     33  gfits_modify (header, "GCOUNT", "%d", 1, header[0].gcount);
    3334  if (!strcmp (type, "IMAGE")) {
    3435    gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale);
     
    4344 
    4445  int i, valid;
    45   char axis[10];
    4646
    4747  /* check valid table types */
     
    5151  if (!valid) return (FALSE);
    5252
    53   /* create empty header buffer */
    54   header[0].size = 2880;
    55   ALLOCATE (header[0].buffer, char, 2880);
    56  
    57   for (i = 0; i < 2880; i++)
    58   header[0].buffer[i] = ' ';
    59   strncpy (header[0].buffer, "END", 3);
     53  gfits_init_header (header);
    6054
    61   /* a table has BITPIX = 8, NAXIS = 2 */
    6255  header[0].simple = FALSE;
    63   header[0].unsign = FALSE;
    64   header[0].extend = FALSE;
    65   header[0].bitpix = 8;
    66   header[0].bscale = 1;
    67   header[0].bzero  = 0;
    6856  header[0].Naxes  = 2;
    6957  for (i = 0; i < FT_MAX_NAXES; i++)
    7058    header[0].Naxis[i] = 0;
    71  
    72   /* required keywords */
    73   gfits_modify (header, "XTENSION", "%s", 1, type);
    74   gfits_modify (header, "BITPIX", "%d", 1, header[0].bitpix);
    75   gfits_modify (header, "NAXIS",  "%d", 1, header[0].Naxes);
    76  
    77   for (i = 0; i < header[0].Naxes; i++) {
    78     sprintf (axis, "NAXIS%d", i + 1);
    79     gfits_modify (header,  axis, "%d", 1, header[0].Naxis[i], 1);
    80   }
    81  
    82   /* PCOUNT & GCOUNT are not implemented, but they are required to be here */
    83   gfits_modify (header, "PCOUNT", "%d", 1, 0);
    84   gfits_modify (header, "GCOUNT", "%d", 1, 1);
    85   if (!strcmp (type, "IMAGE")) {
    86     gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale);
    87     gfits_modify (header, "BZERO",  "%lf", 1, header[0].bzero);
    88   }
     59
     60  gfits_create_Theader (header, type);
    8961
    9062  gfits_modify (header, "TFIELDS", "%d", 1, 0);
Note: See TracChangeset for help on using the changeset viewer.