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/include/gfitsio.h

    r15038 r15487  
    11/* FITS specific macros and structures */
     2
     3# include <assert.h>
    24
    35# ifndef GFITSIO
     
    4850  int                     Naxis[FT_MAX_NAXES];
    4951  int                     size;
     52  int                     pcount;
     53  int                     gcount;
    5054  double                  bzero;
    5155  double                  bscale;
     
    8488} VTable;
    8589
     90typedef struct {
     91  int  maxlen;                // max size of all table rows
     92  int  nbytes;                // number of bytes per column element
     93  int  Nstart;                // byte offset of this column
     94  int  heap_start;            // byte offset to start of HEAP
     95  char format;                // data format character (one of: XLABIJEDCM)
     96} VarLengthColumn;
     97
    8698# ifndef PROTO
    8799# define PROTO(A) A
    88100# endif
    89101
    90 char *gfits_version                PROTO(());
     102char   *gfits_version                  PROTO((void));
    91103
    92104/******************************* Header functions *************/
    93 int   gfits_read_header            PROTO((char *, Header *));
    94 // int   fits_copy_header            PROTO((Header *, Header *));
    95 int   gfits_copy_header           PROTO((Header *, Header *));
    96 void  gfits_free_header            PROTO((Header *));
    97 int   gfits_write_header           PROTO((char *, Header *));
    98 int   gfits_create_header          PROTO((Header *));
    99 int   gfits_delete                 PROTO((Header *, char *, int));
    100 char *gfits_header_field           PROTO((Header *, char *, int));
    101 int   gfits_read_Xheader           PROTO((char *filename, Header *header, int N));
    102 int   gfits_fread_Xheader          PROTO((FILE *f, Header *header, int N));
    103 int   gfits_load_header            PROTO((FILE *f, Header *header));
    104 
    105 int   gfits_fread_header           PROTO((FILE *, Header *));
    106 int   gfits_fread_Theader          PROTO((FILE *, Header *));
    107 int   gfits_fread_ftable           PROTO((FILE *, FTable *, char *));
    108 int   gfits_fread_vtable_range     PROTO((FILE *f, VTable *table, int start, int Nrows));
    109 int   gfits_fread_vtable           PROTO((FILE *f, VTable *table, char *extname, int Nrow, int *row));
    110 int   gfits_fread_ftable_data      PROTO((FILE *f, FTable *table));
    111 int   gfits_fwrite_header          PROTO((FILE *, Header *));
    112 int   gfits_fwrite_Theader         PROTO((FILE *, Header *));
    113 int   gfits_fwrite_matrix          PROTO((FILE *, Matrix *));     
    114 int   gfits_fwrite_table           PROTO((FILE *, FTable *));
    115 int   gfits_fwrite_vtable          PROTO((FILE *, VTable *));
    116 
    117 int   gfits_matrix_size            PROTO ((Header *));
    118 int   gfits_init_header            PROTO ((Header *));
    119 int   gfits_get_unsign_mode        PROTO (());
    120 int   gfits_set_unsign_mode        PROTO ((int mode));
    121 int   gfits_create_table_header    PROTO ((Header *, char *, char *));
    122 int   gfits_vtable_from_ftable     PROTO ((FTable *ftable, VTable *vtable, int *row, int Nrow));
    123 int   gfits_table_to_vtable        PROTO ((FTable *ftable, VTable *vtable, int start, int Nkeep));
    124 int   gfits_create_table           PROTO ((Header *, FTable *));
    125 int   gfits_vadd_rows              PROTO ((VTable *, char *, int, int));
    126 int   gfits_add_rows               PROTO ((FTable *, char *, int, int));
    127 char *gfits_table_print            PROTO ((FTable *,...));
    128 int   gfits_table_scale_data       PROTO ((FTable *ftable));
    129 int   gfits_table_scale_storage    PROTO ((FTable *ftable));
     105
     106char   *gfits_header_field             PROTO((Header *header, char *field, int N));
     107char   *gfits_keyword_end              PROTO((char *line));
     108int     gfits_copy_header              PROTO((Header *in, Header *out));
     109int     gfits_create_header            PROTO((Header *header));
     110int     gfits_delete                   PROTO((Header *header, char *field, int N));
     111int     gfits_fread_Xheader            PROTO((FILE *f, Header *header, int N));
     112int     gfits_fread_header             PROTO((FILE *f, Header *header));
     113void    gfits_free_header              PROTO((Header *header));
     114int     gfits_fwrite_header            PROTO((FILE *f, Header *header));
     115int     gfits_get_unsign_mode          PROTO((void));
     116int     gfits_init_header              PROTO((Header *header));
     117int     gfits_load_header              PROTO((FILE *f, Header *header));
     118int     gfits_modify                   PROTO((Header *header, char *field, char *mode, int N,...));
     119int     gfits_print                    PROTO((Header *header, char *field, char *mode, int N,...));
     120int     gfits_read_Xheader             PROTO((char *filename, Header *header, int N));
     121int     gfits_read_header              PROTO((char *filename, Header *header));
     122int     gfits_save_header              PROTO((FILE *f, Header *header));
     123int     gfits_scan                     PROTO((Header *header, char *field, char *mode, int N,...));
     124int     gfits_set_unsign_mode          PROTO((int mode));
     125int     gfits_stripwhite               PROTO((char *string));
     126int     gfits_vscan                    PROTO((Header *header, char *field, char *mode, int N, va_list argp));
     127int     gfits_write_header             PROTO((char *filename, Header *header));
     128int     gfits_data_size                PROTO((Header *header));
     129int     gfits_extended_to_primary      PROTO((Header *header, int simple, char *comment));
     130int     gfits_primary_to_extended      PROTO((Header *header, char *exttype, char *comment));
     131int     gfits_modify_extended          PROTO((Header *header, char *exttype, char *comment));
     132
    130133
    131134/******************************* Matrix functions *************/
    132 int   gfits_read_matrix            PROTO((char *, Matrix *));     
    133 int   gfits_read_portion           PROTO((char *filename, Matrix *matrix, int Nskip, int Npix));
    134 void  gfits_free_matrix            PROTO((Matrix *));
    135 int   gfits_copy_matrix            PROTO((Matrix *, Matrix *));
    136 int   gfits_write_matrix           PROTO((char *,Matrix *));
    137 int   gfits_create_matrix          PROTO((Header *, Matrix *));
    138 double  gfits_get_matrix_value     PROTO((Matrix *, int, int));
    139 void  gfits_set_matrix_value       PROTO((Matrix *, int, int, double));
    140 void  gfits_add_matrix_value       PROTO((Matrix *, int, int, double));
    141 int   gfits_multiply_matrix        PROTO((Matrix *, Matrix *, Matrix *));
    142 int   gfits_divide_matrix          PROTO((Matrix *, Matrix *, Matrix *));
    143 void  gfits_insert_array           PROTO((Matrix *, Matrix *, int, int));
    144 int   gfits_load_matrix            PROTO((FILE *f, Matrix *matrix, Header *header));
    145 int   gfits_fread_matrix           PROTO((FILE *f, Matrix *matrix, Header *header));
    146 int   gfits_read_matrix_segment    PROTO((char *filename, Matrix *matrix, char *region));
    147 int   gfits_fread_matrix_segment   PROTO((FILE *f, Matrix *matrix, Header *header, char *region));
    148 int   gfits_convert_format         PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign));
     135
     136void    gfits_add_matrix_value         PROTO((Matrix *matrix, int x, int y, double value));
     137int     gfits_convert_format           PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign));
     138int     gfits_copy_matrix              PROTO((Matrix *in, Matrix *out));
     139int     gfits_create_matrix            PROTO((Header *header, Matrix *matrix));
     140int     gfits_divide_matrix            PROTO((Matrix *M1, Matrix *M2, Matrix *M3));
     141int     gfits_fread_matrix             PROTO((FILE *f, Matrix *matrix, Header *header));
     142int     gfits_fread_matrix_segment     PROTO((FILE *f, Matrix *matrix, Header *header, char *region));
     143void    gfits_free_matrix              PROTO((Matrix *matrix));
     144int     gfits_fwrite_matrix            PROTO((FILE *f, Matrix *matrix));     
     145double  gfits_get_matrix_value         PROTO((Matrix *matrix, int x, int y));
     146void    gfits_insert_array             PROTO((Matrix *matrix, Matrix *array, int x, int y));
     147int     gfits_load_matrix              PROTO((FILE *f, Matrix *matrix, Header *header));
     148int     gfits_multiply_matrix          PROTO((Matrix *M1, Matrix *M2, Matrix *M3));
     149int     gfits_read_matrix              PROTO((char *filename, Matrix *matrix));     
     150int     gfits_read_matrix_segment      PROTO((char *filename, Matrix *matrix, char *region));
     151int     gfits_read_portion             PROTO((char *filename, Matrix *matrix, int Nskip, int Npix));
     152void    gfits_set_matrix_value         PROTO((Matrix *matrix, int x, int y, double value));
     153int     gfits_write_matrix             PROTO((char *filename, Matrix *matrix));
     154int     gfits_uncompress_image         PROTO((Header *header, Matrix *matrix, FTable *ftable, int primary));
     155int     gfits_uncompress_data          PROTO((char *zdata, int Nzdata, char *cmptype, char **optname, char **optvalue, int Nopt, char *outdata, int *Nout, int out_pixsize));
     156int     gfits_distribute_data          PROTO((Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int *ztile, float zscale, float zzero));
     157int     gfits_byteswap_zdata           PROTO((char *zdata, int Nzdata, int bitpix));
     158int     gfits_extension_is_compressed  PROTO((Header *header));
     159int     gfits_tile_size                PROTO((Matrix *matrix, int *otile, int *ztile));
    149160
    150161/******************************* Table functions *************/
    151 int   gfits_load_Theader           PROTO((FILE *f, Header *Theader));
    152 int   gfits_read_Theader           PROTO((char *, Header *));     
    153 int   gfits_read_table             PROTO((char *, FTable *));
    154 int   gfits_read_table             PROTO((char *, FTable *));
    155 int   gfits_write_Theader          PROTO((char *, Header *header));
    156 int   gfits_write_table            PROTO((char *, FTable *));
    157 int   gfits_fwrite_table           PROTO((FILE *f, FTable *table));
    158 int   gfits_fwrite_vtable          PROTO((FILE *f, VTable *table));
    159 
    160 int   gfits_bintable_format        PROTO((char *, char *, int *, int *));
    161 int   gfits_table_format           PROTO((char *, char *, int *, int *));
    162 int   gfits_save_header            PROTO((FILE *, Header *header));
    163 int   gfits_set_bintable_column    PROTO((Header *header, FTable *table, char *, void *, int));
    164 int   gfits_set_table_column       PROTO((Header *header, FTable *table, char *, void *, int));
    165 int   gfits_define_bintable_column PROTO((Header *header, char *, char *, char *, char *, double, double));
    166 int   gfits_define_table_column    PROTO((Header *header, char *, char *, char *, char *));
    167 int   gfits_read_ftable            PROTO((char *filename, FTable *table, char *extname));
    168 
    169 int   gfits_free_table             PROTO((FTable *table));
    170 int   gfits_free_vtable            PROTO((VTable *table));
    171 int   gfits_create_Theader         PROTO((Header *header, char *type));
    172 
    173 /* prototyping demanded for these four -- could be a problem on non-ANSI comp comp */
    174 int   gfits_scan                   PROTO((Header *, char *, char *, int,...));
    175 int   gfits_print                  PROTO((Header *, char *, char *, int,...));
    176 int   gfits_modify                 PROTO((Header *, char *, char *, int,...));
    177 int   gfits_table_column           PROTO((FTable *, char *, char *,...));
    178 int   gfits_table_column           PROTO((FTable *table, char *, char *,...));
    179 
    180 char *gfits_keyword_end            PROTO((char *line));
    181 int   gfits_vscan                  PROTO((Header *header, char *field, char *mode, int N, va_list argp));
    182 int   gfits_scan                   PROTO((Header *header, char *field, char *mode, int N,...));
    183 int   gfits_stripwhite             PROTO((char *string));
    184 int   gfits_matrix_size            PROTO((Header *header));
    185 
    186 int   gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval));
    187 int   gfits_get_bintable_column    PROTO((Header *header, FTable *table, char *label, void **data));
    188 int   gfits_get_table_column_type  PROTO((Header *header, char *label, char *type));
    189 int   gfits_get_table_column       PROTO((Header *header, FTable *table, char *label, void **data));
     162
     163char   *gfits_table_print              PROTO((FTable *ftable,...));
     164int     gfits_add_rows                 PROTO((FTable *ftable, char *data, int Nrow, int Nbytes));
     165int     gfits_bintable_format          PROTO((char *format, char *type, int *Nval, int *Nbytes));
     166int     gfits_create_table             PROTO((Header *header, FTable *ftable));
     167int     gfits_create_table_header      PROTO((Header *header, char *type, char *extname));
     168int     gfits_define_bintable_column   PROTO((Header *header, char *format, char *label, char *comment, char *unit, double bscale, double bzero));
     169int     gfits_define_table_column      PROTO((Header *header, char *format, char *label, char *comment, char *unit));
     170int     gfits_fread_ftable             PROTO((FILE *f, FTable *ftable, char *extname));
     171int     gfits_fread_ftable_data        PROTO((FILE *f, FTable *ftable));
     172int     gfits_fread_vtable             PROTO((FILE *f, VTable *vtable, char *extname, int Nrow, int *row));
     173int     gfits_fread_vtable_range       PROTO((FILE *f, VTable *vtable, int start, int Nrows));
     174int     gfits_free_table               PROTO((FTable *ftable));
     175int     gfits_free_vtable              PROTO((VTable *vtable));
     176int     gfits_fwrite_table             PROTO((FILE *f, FTable *table));
     177int     gfits_fwrite_vtable            PROTO((FILE *f, VTable *table));
     178int     gfits_get_bintable_column      PROTO((Header *header, FTable *table, char *label, void **data));
     179int     gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval));
     180int     gfits_get_table_column         PROTO((Header *header, FTable *table, char *label, void **data));
     181int     gfits_get_table_column_type    PROTO((Header *header, char *label, char *type));
     182int     gfits_read_ftable              PROTO((char *filename, FTable *table, char *extname));
     183int     gfits_read_table               PROTO((char *filename, FTable *ftable));
     184int     gfits_set_bintable_column      PROTO((Header *header, FTable *table, char *label, void *data, int Nrow));
     185int     gfits_set_table_column         PROTO((Header *header, FTable *table, char *label, void *data, int Nrow));
     186int     gfits_table_column             PROTO((FTable *ftable, char *field, char *mode,...));
     187int     gfits_table_format             PROTO((char *format, char *type, int *Nval, int *Nbytes));
     188int     gfits_table_scale_data         PROTO((FTable *ftable));
     189int     gfits_table_scale_storage      PROTO((FTable *ftable));
     190int     gfits_table_to_vtable          PROTO((FTable *ftable, VTable *vtable, int start, int Nkeep));
     191int     gfits_vadd_rows                PROTO((VTable *vtable, char *data, int Nrow, int Nbytes));
     192int     gfits_vtable_from_ftable       PROTO((FTable *ftable, VTable *vtable, int *row, int Nrow));
     193int     gfits_write_table              PROTO((char *filename, FTable *ftable));
     194
     195int     gfits_create_Theader           PROTO((Header *header, char *type));
     196int     gfits_fread_Theader            PROTO((FILE *f, Header *header));
     197int     gfits_fwrite_Theader           PROTO((FILE *f, Header *header));
     198int     gfits_load_Theader             PROTO((FILE *f, Header *header));
     199int     gfits_read_Theader             PROTO((char *filename, Header *header));     
     200int     gfits_write_Theader            PROTO((char *filename, Header *header));
     201
     202int     gfits_varlength_column_define  PROTO((FTable *ftable, VarLengthColumn *def, int column));
     203void   *gfits_varlength_column_pointer PROTO((FTable *ftable, VarLengthColumn *column, int row, int *length));
    190204
    191205#endif /* FITSIO */
Note: See TracChangeset for help on using the changeset viewer.