Changeset 38441 for trunk/Ohana/src/libfits/include/gfitsio.h
- Timestamp:
- Jun 12, 2015, 6:18:23 PM (11 years ago)
- Location:
- trunk/Ohana
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
src/libfits/include/gfitsio.h (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana
-
Property svn:mergeinfo
set to
/branches/eam_branches/ohana.20150429 merged eligible
-
Property svn:mergeinfo
set to
-
trunk/Ohana/src/libfits/include/gfitsio.h
r38255 r38441 73 73 off_t datasize; // size of the buffer (including block padding at the end) 74 74 off_t validsize; // size of the valid portion of the table (< validsize if file is short) 75 off_t heap_start; // byte offset to start of HEAP 75 76 } FTable; 76 77 … … 85 86 } VTable; 86 87 87 typedef struct { 88 int maxlen; // max size of all table rows 89 int nbytes; // number of bytes per column element 90 int Nstart; // byte offset of this column relative to first column 91 off_t heap_start; // byte offset to start of HEAP 92 char format; // data format character (one of: XLABIJEDCM) 93 char mode; // access data pointer type (one of P or Q) 88 // description / metadata needed for a single varlength column. A varlength column has a 89 // 2-element array giving the (length,offset) of data in the heap. Below, 'real data' are 90 // the values in the heap; 'metadata' are the values in the main table. 91 typedef struct { 92 int column; // field number (of the metadata) 93 char format; // format character for real data (one of: XLABIJKEDCM) 94 char mode; // format character for metadata (one of P [float] or Q [double]) 95 int maxlen; // max size of all table rows for this column 96 int nbytes; // number of bytes per real data column element 97 int offset; // byte offset of the metadata column relative to first column 94 98 } VarLengthColumn; 99 100 typedef struct { 101 char ttype[16]; // TTYPE field of original table 102 char ttype_cmt[80]; // comment associated with TTYPE 103 char tunit[16]; // TUNIT field of original table 104 char tunit_cmt[80]; // comment associated with TUNIT 105 char tformat[16]; // TFORM field of original table 106 char tformat_cmt[80]; // comment associated with TFORM 107 char zctype[80]; // compression type for this field 108 VarLengthColumn zdef; // description of the output variable length column 109 110 char datatype[80]; // named data type associated with ttype (eg, 18J -> int, 18D -> double) 111 int Nvalues; // number of values per row (eg 18J -> 18 int values) 112 int pixsize; // number of bytes per value of this row (eg, 18J -> 4 bytes) 113 int rowsize; // number of bytes for a full row (Nvalues * pixsize) 114 int offset; // byte offset of the real data column relative to first column 115 } TableField; 95 116 96 117 # ifndef PROTO … … 106 127 char *gfits_keyword_end PROTO((char *line)); 107 128 int gfits_copy_header PROTO((Header *in, Header *out)); 129 int gfits_copy_header_ptr PROTO((Header *in, Header *out)); 108 130 int gfits_create_header PROTO((Header *header)); 109 131 int gfits_delete PROTO((Header *header, char *field, int N)); … … 117 139 int gfits_modify PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(printf, 3, 5); 118 140 int gfits_print PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(printf, 3, 5); 119 int gfits_modify_alt PROTO((Header *header, char *field, char *mode, int N,...)); 120 int gfits_print_alt PROTO((Header *header, char *field, char *mode, int N,...)); 141 int gfits_modify_alt PROTO((Header *header, char *field, char *mode, int N,...)); // do not use a FORMAT: non-standard fmt chars 142 int gfits_print_alt PROTO((Header *header, char *field, char *mode, int N,...)); // do not use a FORMAT: non-standard fmt chars 121 143 int gfits_find_Xheader PROTO((FILE *f, Header *header, char *extname)); 122 144 int gfits_read_Xheader PROTO((char *filename, Header *header, int N)); … … 124 146 int gfits_save_header PROTO((FILE *f, Header *header)); 125 147 int gfits_scan PROTO((Header *header, char *field, char *mode, int N,...)) OHANA_FORMAT(scanf, 3, 5); 126 int gfits_scan_alt PROTO((Header *header, char *field, char *mode, int N,...)); 148 int gfits_scan_alt PROTO((Header *header, char *field, char *mode, int N,...)); // do not use a FORMAT: non-standard fmt chars 127 149 int gfits_set_unsign_mode PROTO((int mode)); 128 150 int gfits_stripwhite PROTO((char *string)); … … 133 155 off_t gfits_data_min_size PROTO((Header *header)); 134 156 off_t gfits_data_pad_size PROTO((off_t rawsize)); 157 off_t gfits_heap_start PROTO((Header *header)); 135 158 int gfits_extended_to_primary PROTO((Header *header, int simple, char *comment)); 136 159 int gfits_primary_to_extended PROTO((Header *header, char *exttype, char *comment)); … … 166 189 void gfits_set_matrix_value PROTO((Matrix *matrix, off_t x, off_t y, double value)); 167 190 int gfits_write_matrix PROTO((char *filename, Matrix *matrix)); 191 168 192 int gfits_uncompress_image PROTO((Header *header, Matrix *matrix, FTable *ftable)); 169 int gfits_uncompress_data PROTO((char *zdata, int Nzdata, char *cmptype, char **optname, char **optvalue, int Nopt, char *outdata, int *Nout, int out_pixsize)); 170 int gfits_distribute_data PROTO((Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int oblank, int *ztile, int zblank, float zscale, float zzero)); 171 int gfits_byteswap_zdata PROTO((char *zdata, int Nzdata, int bitpix)); 193 int gfits_uncompress_data PROTO((char *zdata, int Nzdata, char *cmptype, char **optname, char **optvalue, int Nopt, char *outdata, int *Nout, int Nout_alloc, int out_pixsize)); 194 int gfits_distribute_data PROTO((Matrix *matrix, char *data, int Ndata, int bitpix, int *otile, int oblank, int *ztile, int zblank, float zscale, float zzero)); 195 196 int gfits_compress_data PROTO((char *zdata, int *Nzdata, char *cmptype, char **optname, char **optvalue, int Nopt, char *rawdata, int Nraw, int raw_pixsize, int Nx, int Ny)); 197 int gfits_compress_image PROTO((Header *header, Matrix *matrix, FTable *ftable, int *Ztile, char *zcmptype)); 198 int gfits_collect_data PROTO((Matrix *matrix, char *raw, int Nraw, int raw_pixsize, int *otile, int oblank, int *ztile, int zblank, float zscale, float zzero)); 199 200 int gfits_copy_keywords_compress PROTO((Header *srchead, Header *tgthead)); 172 201 int gfits_swap_raw PROTO((Matrix *matrix)); 173 int gfits_extension_is_compressed PROTO((Header *header)); 202 174 203 off_t gfits_tile_size PROTO((Matrix *matrix, int *otile, int *ztile)); 204 int gfits_imtile_maxsize PROTO((Matrix *matrix, int *ztile)); 205 int gfits_imtile_count PROTO((Matrix *matrix, int *ztile, int *ntile)); 206 int gfits_imtile_start PROTO((Matrix *matrix, int *otile)); 207 int gfits_imtile_next PROTO((Matrix *matrix, int *ztile, int *ntile, int *otile)); 208 209 int gfits_extension_is_compressed_image PROTO((Header *header)); 210 int gfits_extension_is_compressed_table PROTO((Header *header)); 211 int gfits_byteswap_zdata PROTO((char *zdata, int Nzdata, int pixsize)); 212 int gfits_compressed_data_pixsize PROTO((char *cmptype, int out_bitpix, char **optname, char **optvalue, int Noptions)); 175 213 int gfits_uncompressed_data_pixsize PROTO((char *cmptype, int out_bitpix, char **optname, char **optvalue, int Noptions)); 176 int gfits_vartable_heap_pixsize PROTO((char format)); 214 int gfits_uncompressed_data_bitpix PROTO((char *cmptype, int out_bitpix, char **optname, char **optvalue, int Noptions)); 215 int gfits_vartable_heap_pixsize PROTO((char format)); 216 int gfits_cmptype_valid PROTO((char *cmptype)); 217 218 int gfits_varlength_column_add_data PROTO((FTable *table, char *data, off_t Ndata, int row, VarLengthColumn *column)); 219 void *gfits_varlength_column_pointer PROTO((FTable *ftable, VarLengthColumn *column, off_t row, off_t *length)); 220 int gfits_varlength_column_define PROTO((FTable *ftable, VarLengthColumn *def, int column)); 221 int gfits_varlength_column_finish PROTO((FTable *ftable, VarLengthColumn *def)); 222 int gfits_byteswap_varlength_column PROTO((FTable *ftable, int column)); 177 223 178 224 /******************************* Table functions *************/ … … 183 229 char *gfits_table_print PROTO((FTable *ftable,...)); 184 230 int gfits_add_rows PROTO((FTable *ftable, char *data, off_t Nrow, off_t Nbytes)); 231 int gfits_set_table_rows PROTO((Header *header, FTable *table, off_t Nrows)); 185 232 int gfits_bintable_format PROTO((char *format, char *type, int *Nval, int *Nbytes)); 186 233 int gfits_create_table PROTO((Header *header, FTable *ftable)); … … 199 246 int gfits_fwrite_ftable_range PROTO((FILE *f, FTable *table, off_t start, off_t Nrows, off_t Ndisk, off_t Ntotal)); 200 247 int gfits_get_bintable_column PROTO((Header *header, FTable *table, char *label, void **data)); 248 int gfits_get_bintable_column_raw PROTO((Header *header, FTable *table, char *label, void **data, char nativeOrder)); 201 249 int gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval)); 250 void *gfits_get_bintable_column_data PROTO((Header *header, FTable *table, char *label, char *type, off_t *Nrow, int *Ncol)); 202 251 int gfits_get_bintable_column_type_by_N PROTO((Header *header, int N, char *type, int *Nval)); 203 void *gfits_get_bintable_column_data PROTO((Header *header, FTable *table, char *label, char *type, off_t *Nrow, int *Ncol));252 void *gfits_get_bintable_column_data_raw PROTO((Header *header, FTable *table, char *label, char *type, off_t *Nrow, int *Ncol, char nativeOrder)); 204 253 int gfits_get_table_column PROTO((Header *header, FTable *table, char *label, void **data)); 205 254 int gfits_get_table_column_type PROTO((Header *header, char *label, char *type)); … … 207 256 int gfits_read_table PROTO((char *filename, FTable *ftable)); 208 257 int gfits_set_bintable_column PROTO((Header *header, FTable *table, char *label, void *data, off_t Nrow)); 209 int gfits_set_bintable_column_reformat PROTO((Header *header, FTable *table, char *label, char *intype, void *data, off_t Nrow ));258 int gfits_set_bintable_column_reformat PROTO((Header *header, FTable *table, char *label, char *intype, void *data, off_t Nrow, char nativeOrder)); 210 259 int gfits_set_table_column PROTO((Header *header, FTable *table, char *label, void *data, off_t Nrow)); 211 260 int gfits_table_column PROTO((FTable *ftable, char *field, char *mode,...)) OHANA_FORMAT(printf, 3, 4); … … 219 268 int gfits_copy_ftable PROTO((FTable *in, FTable *out)); 220 269 int gfits_copy_vtable PROTO((VTable *in, VTable *out)); 270 int gfits_copy_ftable_ptr PROTO((FTable *in, FTable *out)); 221 271 222 272 int gfits_create_Theader PROTO((Header *header, char *type)); … … 227 277 int gfits_write_Theader PROTO((char *filename, Header *header)); 228 278 229 int gfits_varlength_column_define PROTO((FTable *ftable, VarLengthColumn *def, int column)); 230 void *gfits_varlength_column_pointer PROTO((FTable *ftable, VarLengthColumn *column, off_t row, off_t *length)); 279 int gfits_compress_table PROTO((FTable *srctable, FTable *tgttable, int ztilelen, char *zcmptype)); 280 int gfits_uncompress_table PROTO((FTable *srctable, FTable *tgttable)); 281 282 // XXX EAM for testing 283 int gfits_dump_raw_table (FTable *table, char *message); 284 int gfits_dump_cmp_table (FTable *table, char *message); 285 231 286 232 287 #endif /* FITSIO */
Note:
See TracChangeset
for help on using the changeset viewer.
