Changeset 15487 for trunk/Ohana/src/libfits/include/gfitsio.h
- Timestamp:
- Nov 6, 2007, 5:09:52 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/libfits/include/gfitsio.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libfits/include/gfitsio.h
r15038 r15487 1 1 /* FITS specific macros and structures */ 2 3 # include <assert.h> 2 4 3 5 # ifndef GFITSIO … … 48 50 int Naxis[FT_MAX_NAXES]; 49 51 int size; 52 int pcount; 53 int gcount; 50 54 double bzero; 51 55 double bscale; … … 84 88 } VTable; 85 89 90 typedef 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 86 98 # ifndef PROTO 87 99 # define PROTO(A) A 88 100 # endif 89 101 90 char *gfits_version PROTO(());102 char *gfits_version PROTO((void)); 91 103 92 104 /******************************* 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 106 char *gfits_header_field PROTO((Header *header, char *field, int N)); 107 char *gfits_keyword_end PROTO((char *line)); 108 int gfits_copy_header PROTO((Header *in, Header *out)); 109 int gfits_create_header PROTO((Header *header)); 110 int gfits_delete PROTO((Header *header, char *field, int N)); 111 int gfits_fread_Xheader PROTO((FILE *f, Header *header, int N)); 112 int gfits_fread_header PROTO((FILE *f, Header *header)); 113 void gfits_free_header PROTO((Header *header)); 114 int gfits_fwrite_header PROTO((FILE *f, Header *header)); 115 int gfits_get_unsign_mode PROTO((void)); 116 int gfits_init_header PROTO((Header *header)); 117 int gfits_load_header PROTO((FILE *f, Header *header)); 118 int gfits_modify PROTO((Header *header, char *field, char *mode, int N,...)); 119 int gfits_print PROTO((Header *header, char *field, char *mode, int N,...)); 120 int gfits_read_Xheader PROTO((char *filename, Header *header, int N)); 121 int gfits_read_header PROTO((char *filename, Header *header)); 122 int gfits_save_header PROTO((FILE *f, Header *header)); 123 int gfits_scan PROTO((Header *header, char *field, char *mode, int N,...)); 124 int gfits_set_unsign_mode PROTO((int mode)); 125 int gfits_stripwhite PROTO((char *string)); 126 int gfits_vscan PROTO((Header *header, char *field, char *mode, int N, va_list argp)); 127 int gfits_write_header PROTO((char *filename, Header *header)); 128 int gfits_data_size PROTO((Header *header)); 129 int gfits_extended_to_primary PROTO((Header *header, int simple, char *comment)); 130 int gfits_primary_to_extended PROTO((Header *header, char *exttype, char *comment)); 131 int gfits_modify_extended PROTO((Header *header, char *exttype, char *comment)); 132 130 133 131 134 /******************************* 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 136 void gfits_add_matrix_value PROTO((Matrix *matrix, int x, int y, double value)); 137 int gfits_convert_format PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign)); 138 int gfits_copy_matrix PROTO((Matrix *in, Matrix *out)); 139 int gfits_create_matrix PROTO((Header *header, Matrix *matrix)); 140 int gfits_divide_matrix PROTO((Matrix *M1, Matrix *M2, Matrix *M3)); 141 int gfits_fread_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 142 int gfits_fread_matrix_segment PROTO((FILE *f, Matrix *matrix, Header *header, char *region)); 143 void gfits_free_matrix PROTO((Matrix *matrix)); 144 int gfits_fwrite_matrix PROTO((FILE *f, Matrix *matrix)); 145 double gfits_get_matrix_value PROTO((Matrix *matrix, int x, int y)); 146 void gfits_insert_array PROTO((Matrix *matrix, Matrix *array, int x, int y)); 147 int gfits_load_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 148 int gfits_multiply_matrix PROTO((Matrix *M1, Matrix *M2, Matrix *M3)); 149 int gfits_read_matrix PROTO((char *filename, Matrix *matrix)); 150 int gfits_read_matrix_segment PROTO((char *filename, Matrix *matrix, char *region)); 151 int gfits_read_portion PROTO((char *filename, Matrix *matrix, int Nskip, int Npix)); 152 void gfits_set_matrix_value PROTO((Matrix *matrix, int x, int y, double value)); 153 int gfits_write_matrix PROTO((char *filename, Matrix *matrix)); 154 int gfits_uncompress_image PROTO((Header *header, Matrix *matrix, FTable *ftable, int primary)); 155 int gfits_uncompress_data PROTO((char *zdata, int Nzdata, char *cmptype, char **optname, char **optvalue, int Nopt, char *outdata, int *Nout, int out_pixsize)); 156 int gfits_distribute_data PROTO((Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int *ztile, float zscale, float zzero)); 157 int gfits_byteswap_zdata PROTO((char *zdata, int Nzdata, int bitpix)); 158 int gfits_extension_is_compressed PROTO((Header *header)); 159 int gfits_tile_size PROTO((Matrix *matrix, int *otile, int *ztile)); 149 160 150 161 /******************************* 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 163 char *gfits_table_print PROTO((FTable *ftable,...)); 164 int gfits_add_rows PROTO((FTable *ftable, char *data, int Nrow, int Nbytes)); 165 int gfits_bintable_format PROTO((char *format, char *type, int *Nval, int *Nbytes)); 166 int gfits_create_table PROTO((Header *header, FTable *ftable)); 167 int gfits_create_table_header PROTO((Header *header, char *type, char *extname)); 168 int gfits_define_bintable_column PROTO((Header *header, char *format, char *label, char *comment, char *unit, double bscale, double bzero)); 169 int gfits_define_table_column PROTO((Header *header, char *format, char *label, char *comment, char *unit)); 170 int gfits_fread_ftable PROTO((FILE *f, FTable *ftable, char *extname)); 171 int gfits_fread_ftable_data PROTO((FILE *f, FTable *ftable)); 172 int gfits_fread_vtable PROTO((FILE *f, VTable *vtable, char *extname, int Nrow, int *row)); 173 int gfits_fread_vtable_range PROTO((FILE *f, VTable *vtable, int start, int Nrows)); 174 int gfits_free_table PROTO((FTable *ftable)); 175 int gfits_free_vtable PROTO((VTable *vtable)); 176 int gfits_fwrite_table PROTO((FILE *f, FTable *table)); 177 int gfits_fwrite_vtable PROTO((FILE *f, VTable *table)); 178 int gfits_get_bintable_column PROTO((Header *header, FTable *table, char *label, void **data)); 179 int gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval)); 180 int gfits_get_table_column PROTO((Header *header, FTable *table, char *label, void **data)); 181 int gfits_get_table_column_type PROTO((Header *header, char *label, char *type)); 182 int gfits_read_ftable PROTO((char *filename, FTable *table, char *extname)); 183 int gfits_read_table PROTO((char *filename, FTable *ftable)); 184 int gfits_set_bintable_column PROTO((Header *header, FTable *table, char *label, void *data, int Nrow)); 185 int gfits_set_table_column PROTO((Header *header, FTable *table, char *label, void *data, int Nrow)); 186 int gfits_table_column PROTO((FTable *ftable, char *field, char *mode,...)); 187 int gfits_table_format PROTO((char *format, char *type, int *Nval, int *Nbytes)); 188 int gfits_table_scale_data PROTO((FTable *ftable)); 189 int gfits_table_scale_storage PROTO((FTable *ftable)); 190 int gfits_table_to_vtable PROTO((FTable *ftable, VTable *vtable, int start, int Nkeep)); 191 int gfits_vadd_rows PROTO((VTable *vtable, char *data, int Nrow, int Nbytes)); 192 int gfits_vtable_from_ftable PROTO((FTable *ftable, VTable *vtable, int *row, int Nrow)); 193 int gfits_write_table PROTO((char *filename, FTable *ftable)); 194 195 int gfits_create_Theader PROTO((Header *header, char *type)); 196 int gfits_fread_Theader PROTO((FILE *f, Header *header)); 197 int gfits_fwrite_Theader PROTO((FILE *f, Header *header)); 198 int gfits_load_Theader PROTO((FILE *f, Header *header)); 199 int gfits_read_Theader PROTO((char *filename, Header *header)); 200 int gfits_write_Theader PROTO((char *filename, Header *header)); 201 202 int gfits_varlength_column_define PROTO((FTable *ftable, VarLengthColumn *def, int column)); 203 void *gfits_varlength_column_pointer PROTO((FTable *ftable, VarLengthColumn *column, int row, int *length)); 190 204 191 205 #endif /* FITSIO */
Note:
See TracChangeset
for help on using the changeset viewer.
