Changeset 15312
- Timestamp:
- Oct 14, 2007, 1:54:24 PM (19 years ago)
- Location:
- branches/eam_branch_20071015/Ohana/src
- Files:
-
- 2 added
- 35 edited
-
addstar/src/LoadStars.c (modified) (3 diffs)
-
gastro2/src/gstars2.c (modified) (1 diff)
-
getstar/src/ReadImageFiles.c (modified) (4 diffs)
-
imregister/imphot/rtext.c (modified) (1 diff)
-
libdvo/src/dvo_catalog_mef.c (modified) (4 diffs)
-
libdvo/src/dvo_catalog_split.c (modified) (4 diffs)
-
libdvo/src/dvo_convert.c (modified) (3 diffs)
-
libdvo/src/dvo_image_raw.c (modified) (1 diff)
-
libdvo/src/fits_db.c (modified) (1 diff)
-
libfits/doc/notes-compress.txt (modified) (3 diffs)
-
libfits/header/F_create_H.c (modified) (1 diff)
-
libfits/header/F_read_H.c (modified) (1 diff)
-
libfits/header/F_read_XH.c (modified) (1 diff)
-
libfits/include/gfitsio.h (modified) (2 diffs)
-
libfits/matrix/F_compress_M.c (added)
-
libfits/matrix/F_convert_format.c (modified) (1 diff)
-
libfits/matrix/F_create_M.c (modified) (1 diff)
-
libfits/matrix/F_get_M_value.c (modified) (1 diff)
-
libfits/matrix/F_insert_M.c (modified) (1 diff)
-
libfits/matrix/F_load_M.c (modified) (1 diff)
-
libfits/matrix/F_matrix.c (modified) (2 diffs)
-
libfits/matrix/F_set_M_value.c (modified) (1 diff)
-
libfits/table/F_create_T.c (modified) (2 diffs)
-
libfits/table/F_read_T.c (modified) (7 diffs)
-
libfits/table/F_read_TH.c (modified) (1 diff)
-
libfits/table/F_set_column.c (modified) (2 diffs)
-
libfits/table/F_table_format.c (modified) (1 diff)
-
libfits/table/F_table_row.c (modified) (3 diffs)
-
libfits/table/F_table_varlength.c (added)
-
opihi/cmd.data/read_vectors.c (modified) (1 diff)
-
opihi/dvo/cmpread.c (modified) (1 diff)
-
opihi/dvo/imbox.c (modified) (1 diff)
-
opihi/pantasks/task_trange.c (modified) (1 diff)
-
tools/src/ckfits.c (modified) (1 diff)
-
tools/src/fields.c (modified) (1 diff)
-
tools/src/ftable.c (modified) (5 diffs)
-
tools/src/mefhead.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20071015/Ohana/src/addstar/src/LoadStars.c
r15275 r15312 102 102 103 103 // advance to the next header 104 Nskip = gfits_ matrix_size (headers[i]);104 Nskip = gfits_data_size (headers[i]); 105 105 fseek (f, Nskip, SEEK_CUR); 106 106 if (i == NHEADERS - 1) { … … 139 139 extsize[0][i] = headers[i][0].size; 140 140 } else { 141 extsize[0][i] = headers[i][0].size + gfits_ matrix_size (headers[i]);141 extsize[0][i] = headers[i][0].size + gfits_data_size (headers[i]); 142 142 } 143 143 gfits_scan (headers[i], "EXTTYPE", "%s", 1, exttype); … … 181 181 // extension matched to the header in the PHU 182 182 if (Nimage == 0) { 183 extsize[0][0] = headers[0][0].size + gfits_ matrix_size (headers[0]);184 extsize[0][1] = headers[1][0].size + gfits_ matrix_size (headers[1]);183 extsize[0][0] = headers[0][0].size + gfits_data_size (headers[0]); 184 extsize[0][1] = headers[1][0].size + gfits_data_size (headers[1]); 185 185 gfits_scan (headers[1], ExtnameKeyword, "%s", 1, extname); 186 186 if (!strcmp (extname, "SMPFILE")) { -
branches/eam_branch_20071015/Ohana/src/gastro2/src/gstars2.c
r14590 r15312 128 128 gfits_scan (&Target[0].header, "NAXIS", "%t", 1, &naxis); 129 129 if ((naxis == 0) && !TEXTMODE) { 130 Nskip = gfits_ matrix_size (&Target[0].header);130 Nskip = gfits_data_size (&Target[0].header); 131 131 fseek (f, Nskip, SEEK_CUR); 132 132 stars = rfits (f, &Nstars); -
branches/eam_branch_20071015/Ohana/src/getstar/src/ReadImageFiles.c
r15275 r15312 87 87 // the first header is already loaded 88 88 headers[0] = header; 89 Nskip = gfits_ matrix_size (header);89 Nskip = gfits_data_size (header); 90 90 fseek (f, Nskip, SEEK_CUR); 91 91 … … 98 98 done = TRUE; 99 99 } else { 100 Nskip = gfits_ matrix_size (headers[i]);100 Nskip = gfits_data_size (headers[i]); 101 101 fseek (f, Nskip, SEEK_CUR); 102 102 } … … 129 129 // now examine the headers, count the table entries, find corresponding headers 130 130 for (i = 0; i < Nheader; i++) { 131 extsize[i] = headers[i][0].size + gfits_ matrix_size (headers[i]);131 extsize[i] = headers[i][0].size + gfits_data_size (headers[i]); 132 132 gfits_scan (headers[i], "EXTTYPE", "%s", 1, tmpword); 133 133 … … 163 163 // extension matched to the header in the PHU 164 164 if (Nimage == 0) { 165 extsize[0] = headers[0][0].size + gfits_ matrix_size (headers[0]);166 extsize[1] = headers[1][0].size + gfits_ matrix_size (headers[1]);165 extsize[0] = headers[0][0].size + gfits_data_size (headers[0]); 166 extsize[1] = headers[1][0].size + gfits_data_size (headers[1]); 167 167 gfits_scan (headers[1], "EXTNAME", "%s", 1, tmpword); 168 168 if (!strcmp (tmpword, "SMPFILE")) { -
branches/eam_branch_20071015/Ohana/src/imregister/imphot/rtext.c
r7080 r15312 43 43 gfits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage); 44 44 db[0].theader.Naxis[1] = Nimage; 45 db[0].ftable.size = gfits_ matrix_size (&db[0].theader);45 db[0].ftable.size = gfits_data_size (&db[0].theader); 46 46 47 47 return (TRUE); -
branches/eam_branch_20071015/Ohana/src/libdvo/src/dvo_catalog_mef.c
r12391 r15312 51 51 } 52 52 } else { 53 Nbytes = gfits_ matrix_size (&header);53 Nbytes = gfits_data_size (&header); 54 54 fseek (f, Nbytes, SEEK_CUR); 55 55 } … … 73 73 } 74 74 } else { 75 Nbytes = gfits_ matrix_size (&header);75 Nbytes = gfits_data_size (&header); 76 76 fseek (f, Nbytes, SEEK_CUR); 77 77 } … … 94 94 } 95 95 } else { 96 Nbytes = gfits_ matrix_size (&header);96 Nbytes = gfits_data_size (&header); 97 97 fseek (f, Nbytes, SEEK_CUR); 98 98 } … … 139 139 } else { 140 140 /* no real need to skip the data array here... */ 141 Nbytes = gfits_ matrix_size (&header);141 Nbytes = gfits_data_size (&header); 142 142 fseek (f, Nbytes, SEEK_CUR); 143 143 if (primary != NULL) free (primary); -
branches/eam_branch_20071015/Ohana/src/libdvo/src/dvo_catalog_split.c
r13325 r15312 585 585 586 586 /* skip past matrix (already at end of header) */ 587 Nskip = gfits_ matrix_size (&catalog[0].header);587 Nskip = gfits_data_size (&catalog[0].header); 588 588 fseek (catalog[0].f, Nskip, SEEK_CUR); 589 589 … … 615 615 616 616 /* skip past PHU header and matrix */ 617 Nskip = catfile[0].header.size + gfits_ matrix_size (&catfile[0].header);617 Nskip = catfile[0].header.size + gfits_data_size (&catfile[0].header); 618 618 fseek (catfile[0].f, Nskip, SEEK_SET); 619 619 … … 642 642 header.Naxis[1] = Nlines; 643 643 644 vtable.size = gfits_ matrix_size (&header);644 vtable.size = gfits_data_size (&header); 645 645 vtable.Nrow = Nout; 646 646 vtable.pad = vtable.size - Nx*Ny; … … 705 705 706 706 /* skip past PHU header and matrix */ 707 Nskip = catfile[0].header.size + gfits_ matrix_size (&catfile[0].header);707 Nskip = catfile[0].header.size + gfits_data_size (&catfile[0].header); 708 708 fseek (catfile[0].f, Nskip, SEEK_SET); 709 709 -
branches/eam_branch_20071015/Ohana/src/libdvo/src/dvo_convert.c
r15275 r15312 245 245 gfits_modify (theader, "NAXIS2", "%d", 1, Nimage); 246 246 theader[0].Naxis[1] = Nimage; 247 ftable[0].size = gfits_ matrix_size (theader);247 ftable[0].size = gfits_data_size (theader); 248 248 return (TRUE); 249 249 } … … 266 266 gfits_modify (theader, "NAXIS2", "%d", 1, Nimage); \ 267 267 theader[0].Naxis[1] = Nimage; \ 268 ftable[0].size = gfits_ matrix_size (theader); \268 ftable[0].size = gfits_data_size (theader); \ 269 269 return (TRUE); } 270 270 … … 344 344 gfits_modify (theader, "NAXIS2", "%d", 1, Nimage); \ 345 345 theader[0].Naxis[1] = Nimage; \ 346 vtable[0].size = gfits_ matrix_size (theader); \346 vtable[0].size = gfits_data_size (theader); \ 347 347 return (TRUE); } 348 348 -
branches/eam_branch_20071015/Ohana/src/libdvo/src/dvo_image_raw.c
r15275 r15312 88 88 gfits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage); 89 89 db[0].theader.Naxis[1] = Nimage; 90 db[0].ftable.size = gfits_ matrix_size (&db[0].theader);90 db[0].ftable.size = gfits_data_size (&db[0].theader); 91 91 db[0].swapped = FALSE; /* table does not have internal byte-order */ 92 92 return (TRUE); -
branches/eam_branch_20071015/Ohana/src/libdvo/src/fits_db.c
r13182 r15312 126 126 } 127 127 } else { 128 Nskip = gfits_ matrix_size (&db[0].header);128 Nskip = gfits_data_size (&db[0].header); 129 129 Fseek (db[0].f, Nskip, SEEK_CUR); 130 130 } -
branches/eam_branch_20071015/Ohana/src/libfits/doc/notes-compress.txt
r15275 r15312 1 2 TFORMn : rPt(e_max) 3 r is 0, 1, or absent 4 P is literal 5 t is datatype character for binary tables 6 e_max is the largest record in the column 7 8 data column actually contains: 2 32bit values: 9 Length + Offset 10 11 THEAP : offset from start of data to start of heap 12 (note that the heap starts at NAXIS1 x NAXIS2, not Nx2880 bytes). 13 14 total size of heap segment (gap + heap data) is PCOUNT 1 15 2 16 I need to implement (at least) support for read of compressed images. … … 16 30 level ones as needed. 17 31 18 * possible needed APIs :32 * possible needed APIs & upgrades: 19 33 20 34 - gfits_image_is_compressed (Header *header) … … 30 44 compress the given image returning the table data 31 45 46 o include PCOUNT in data area size (gfits_matrix_size) 32 47 48 o read heap when reading table (gfits_fread_table_data) 49 50 - void *gfits_varlength_column_pointer (FTable *ftable, VarLengthColumn *column, int row); 51 52 o int gfits_varlength_column_define (FTable *ftable, VarLengthColumn *def, int column); 53 54 -
branches/eam_branch_20071015/Ohana/src/libfits/header/F_create_H.c
r7054 r15312 22 22 23 23 for (i = 0; i < header[0].Naxes; i++) { 24 s printf (axis, "NAXIS%d", i + 1);24 snprintf (axis, 10, "NAXIS%d", i + 1); 25 25 gfits_modify (header, axis, "%d", 1, header[0].Naxis[i]); 26 26 } -
branches/eam_branch_20071015/Ohana/src/libfits/header/F_read_H.c
r12902 r15312 76 76 gfits_scan (header, "NAXIS10", "%d", 1, &header[0].Naxis[9]); 77 77 78 // XXX what about GCOUNT??? 79 if (!gfits_scan (header, "PCOUNT", "%d", 1, &header[0].pcount)) { 80 header[0].pcount = 0; 81 } 82 78 83 return (TRUE); 79 84 -
branches/eam_branch_20071015/Ohana/src/libfits/header/F_read_XH.c
r13145 r15312 45 45 } 46 46 47 Nmatrix = gfits_ matrix_size (&theader);47 Nmatrix = gfits_data_size (&theader); 48 48 49 49 /* skip to next header */ -
branches/eam_branch_20071015/Ohana/src/libfits/include/gfitsio.h
r15275 r15312 48 48 int Naxis[FT_MAX_NAXES]; 49 49 int size; 50 int pcount; 51 int gcount; 50 52 double bzero; 51 53 double bscale; … … 84 86 } VTable; 85 87 88 typedef struct { 89 int length; 90 int offset; 91 int maxlen; 92 int nbytes; 93 char format; 94 } VarLengthColumn; 95 86 96 # ifndef PROTO 87 97 # define PROTO(A) A 88 98 # endif 89 99 90 char *gfits_version PROTO(());100 char *gfits_version PROTO((void)); 91 101 92 102 /******************************* 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 103 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)); 104 char *gfits_header_field PROTO((Header *header, char *field, int N)); 105 char *gfits_keyword_end PROTO((char *line)); 106 int gfits_copy_header PROTO((Header *in, Header *out)); 107 int gfits_create_header PROTO((Header *header)); 108 int gfits_delete_field PROTO((Header *header, char *field, int N)); 109 int gfits_fread_Xheader PROTO((FILE *f, Header *header, int N)); 110 int gfits_fread_header PROTO((FILE *f, Header *header)); 111 void gfits_free_header PROTO((Header *header)); 112 int gfits_fwrite_header PROTO((FILE *f, Header *header)); 113 int gfits_get_unsign_mode PROTO((void)); 114 int gfits_init_header PROTO((Header *header)); 115 int gfits_load_header PROTO((FILE *f, Header *header)); 116 int gfits_modify PROTO((Header *header, char *field, char *mode, int N,...)); 117 int gfits_print PROTO((Header *header, char *field, char *mode, int N,...)); 118 int gfits_read_Xheader PROTO((char *filename, Header *header, int N)); 119 int gfits_read_header PROTO((char *filename, Header *header)); 120 int gfits_save_header PROTO((FILE *f, Header *header)); 121 int gfits_scan PROTO((Header *header, char *field, char *mode, int N,...)); 122 int gfits_set_unsign_mode PROTO((int mode)); 123 int gfits_stripwhite PROTO((char *string)); 124 int gfits_vscan PROTO((Header *header, char *field, char *mode, int N, va_list argp)); 125 int gfits_write_header PROTO((char *filename, Header *header)); 126 int gfits_matrix_size PROTO((Header *header)); 130 127 131 128 /******************************* 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)); 129 130 void gfits_add_matrix_value PROTO((Matrix *matrix, int x, int y, double value)); 131 int gfits_convert_format PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign)); 132 int gfits_copy_matrix PROTO((Matrix *in, Matrix *out)); 133 int gfits_create_matrix PROTO((Header *header, Matrix *matrix)); 134 int gfits_divide_matrix PROTO((Matrix *M1, Matrix *M2, Matrix *M3)); 135 int gfits_fread_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 136 int gfits_fread_matrix_segment PROTO((FILE *f, Matrix *matrix, Header *header, char *region)); 137 void gfits_free_matrix PROTO((Matrix *matrix)); 138 int gfits_fwrite_matrix PROTO((FILE *f, Matrix *matrix)); 139 double gfits_get_matrix_value PROTO((Matrix *matrix, int x, int y)); 140 void gfits_insert_array PROTO((Matrix *matrix, Matrix *array, int x, int y)); 141 int gfits_load_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 142 int gfits_multiply_matrix PROTO((Matrix *M1, Matrix *M2, Matrix *M3)); 143 int gfits_read_matrix PROTO((char *filename, Matrix *matrix)); 144 int gfits_read_matrix_segment PROTO((char *filename, Matrix *matrix, char *region)); 145 int gfits_read_portion PROTO((char *filename, Matrix *matrix, int Nskip, int Npix)); 146 void gfits_set_matrix_value PROTO((Matrix *matrix, int x, int y, double value)); 147 int gfits_write_matrix PROTO((char *filename, Matrix *matrix)); 149 148 150 149 /******************************* 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 150 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)); 151 char *gfits_table_print PROTO((FTable *ftable,...)); 152 int gfits_add_rows PROTO((FTable *ftable, char *data, int Nrow, int Nbytes)); 153 int gfits_bintable_format PROTO((char *format, char *type, int *Nval, int *Nbytes)); 154 int gfits_create_table PROTO((Header *header, FTable *ftable)); 155 int gfits_create_table_header PROTO((Header *header, char *type, char *extname)); 156 int gfits_define_bintable_column PROTO((Header *header, char *format, char *label, char *comment, char *unit, double bscale, double bzero)); 157 int gfits_define_table_column PROTO((Header *header, char *format, char *label, char *comment, char *unit)); 158 int gfits_fread_ftable PROTO((FILE *f, FTable *ftable, char *extname)); 159 int gfits_fread_ftable_data PROTO((FILE *f, FTable *ftable)); 160 int gfits_fread_vtable PROTO((FILE *f, VTable *vtable, char *extname, int Nrow, int *row)); 161 int gfits_fread_vtable_range PROTO((FILE *f, VTable *vtable, int start, int Nrows)); 162 int gfits_free_table PROTO((FTable *ftable)); 163 int gfits_free_vtable PROTO((VTable *vtable)); 164 int gfits_fwrite_table PROTO((FILE *f, FTable *table)); 165 int gfits_fwrite_vtable PROTO((FILE *f, VTable *table)); 166 int gfits_get_bintable_column PROTO((Header *header, FTable *table, char *label, void **data)); 167 int gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval)); 168 int gfits_get_table_column PROTO((Header *header, FTable *table, char *label, void **data)); 169 int gfits_get_table_column_type PROTO((Header *header, char *label, char *type)); 170 int gfits_read_ftable PROTO((char *filename, FTable *table, char *extname)); 171 int gfits_read_table PROTO((char *filename, FTable *ftable)); 172 int gfits_set_bintable_column PROTO((Header *header, FTable *table, char *label, void *data, int Nrow)); 173 int gfits_set_table_column PROTO((Header *header, FTable *table, char *label, void *data, int Nrow)); 174 int gfits_table_column PROTO((FTable *ftable, char *field, char *mode,...)); 175 int gfits_table_format PROTO((char *format, char *type, int *Nval, int *Nbytes)); 176 int gfits_table_scale_data PROTO((FTable *ftable)); 177 int gfits_table_scale_storage PROTO((FTable *ftable)); 178 int gfits_table_to_vtable PROTO((FTable *ftable, VTable *vtable, int start, int Nkeep)); 179 int gfits_vadd_rows PROTO((VTable *vtable, char *data, int Nrow, int Nbytes)); 180 int gfits_vtable_from_ftable PROTO((FTable *ftable, VTable *vtable, int *row, int Nrow)); 181 int gfits_write_table PROTO((char *filename, FTable *ftable)); 168 182 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)); 183 int gfits_create_Theader PROTO((Header *header, char *type)); 184 int gfits_fread_Theader PROTO((FILE *f, Header *header)); 185 int gfits_fwrite_Theader PROTO((FILE *f, Header *header)); 186 int gfits_load_Theader PROTO((FILE *f, Header *header)); 187 int gfits_read_Theader PROTO((char *filename, Header *header)); 188 int gfits_write_Theader PROTO((char *filename, Header *header)); 190 189 191 190 #endif /* FITSIO */ -
branches/eam_branch_20071015/Ohana/src/libfits/matrix/F_convert_format.c
r7054 r15312 49 49 matrix[0].bzero = header[0].bzero = outZero; 50 50 matrix[0].unsign = header[0].unsign = outUnsign; 51 matrix[0].size = gfits_ matrix_size (header);51 matrix[0].size = gfits_data_size (header); 52 52 gfits_modify (header, "BITPIX", "%d", 1, outBitpix); 53 53 gfits_modify (header, "BSCALE", "%lf", 1, outScale); -
branches/eam_branch_20071015/Ohana/src/libfits/matrix/F_create_M.c
r7054 r15312 18 18 matrix[0].Naxis[i] = header[0].Naxis[i]; 19 19 20 Nbytes = gfits_ matrix_size (header);20 Nbytes = gfits_data_size (header); 21 21 ALLOCATE (matrix[0].buffer, char, MAX (Nbytes, 1)); 22 22 bzero (matrix[0].buffer, Nbytes); -
branches/eam_branch_20071015/Ohana/src/libfits/matrix/F_get_M_value.c
r7054 r15312 3 3 4 4 /***************** fits get matrix value ***********************************/ 5 double gfits_get_matrix_value (matrix, x, y) 6 Matrix *matrix; 7 int x, y; 8 { 5 double gfits_get_matrix_value (Matrix *matrix, int x, int y) { 9 6 10 7 double value; -
branches/eam_branch_20071015/Ohana/src/libfits/matrix/F_insert_M.c
r7054 r15312 3 3 4 4 /*********************** fits insert array ***********************************/ 5 void gfits_insert_matrix (Matrix *matrix, Matrix *array, int x, int y) {5 void gfits_insert_matrix (Matrix *matrix, Matrix *array, int x, int y) { 6 6 7 7 /* there is no check here to match BITPIX, BZERO, or BSCALE */ -
branches/eam_branch_20071015/Ohana/src/libfits/matrix/F_load_M.c
r7054 r15312 25 25 matrix[0].Naxis[i] = header[0].Naxis[i]; 26 26 27 Nbytes = gfits_ matrix_size (header);27 Nbytes = gfits_data_size (header); 28 28 ALLOCATE (matrix[0].buffer, char, Nbytes); 29 29 matrix[0].size = Nbytes; -
branches/eam_branch_20071015/Ohana/src/libfits/matrix/F_matrix.c
r7054 r15312 2 2 # include <gfitsio.h> 3 3 4 int gfits_ matrix_size (Header *header) {4 int gfits_data_size (Header *header) { 5 5 6 6 int i, Nrec, size; … … 13 13 size *= header[0].Naxis[i]; 14 14 15 // XXX do I multiply this times gcount? 16 size += header[0].pcount; 17 15 18 /* round up to next complete block */ 16 19 if (size % FT_RECORD_SIZE) { -
branches/eam_branch_20071015/Ohana/src/libfits/matrix/F_set_M_value.c
r7054 r15312 3 3 4 4 /****************** fits set matrix value ***********************************/ 5 void gfits_set_matrix_value (matrix, x, y, Value) 6 Matrix *matrix; 7 int x, y; 8 double Value; 9 { 5 void gfits_set_matrix_value (Matrix *matrix, int x, int y, double Value) { 10 6 11 7 int pixel; -
branches/eam_branch_20071015/Ohana/src/libfits/table/F_create_T.c
r7054 r15312 12 12 table[0].header = header; 13 13 14 Nbytes = gfits_ matrix_size (header);14 Nbytes = gfits_data_size (header); 15 15 ALLOCATE (table[0].buffer, char, MAX (Nbytes, 1)); 16 16 if (!strcmp (type, "TABLE")) { … … 37 37 Nx = table[0].header[0].Naxis[0]; 38 38 Ny = table[0].header[0].Naxis[0]; 39 table[0].size = gfits_ matrix_size (header);39 table[0].size = gfits_data_size (header); 40 40 table[0].pad = table[0].size - Nx*Ny; 41 41 -
branches/eam_branch_20071015/Ohana/src/libfits/table/F_read_T.c
r7054 r15312 41 41 42 42 /* skip to next header */ 43 Nbytes = gfits_ matrix_size (header);43 Nbytes = gfits_data_size (header); 44 44 fseek (f, Nbytes, SEEK_CUR); 45 45 gfits_free_header (header); … … 54 54 55 55 /* find buffer size */ 56 Nbytes = gfits_ matrix_size (table[0].header);56 Nbytes = gfits_data_size (table[0].header); 57 57 ALLOCATE (table[0].buffer, char, Nbytes); 58 58 … … 75 75 Nx = table[0].header[0].Naxis[0]; 76 76 Ny = table[0].header[0].Naxis[1]; 77 table[0].size = gfits_ matrix_size (table[0].header);77 table[0].size = gfits_data_size (table[0].header); 78 78 table[0].pad = table[0].size - Nx*Ny; 79 79 … … 120 120 121 121 /* find buffer size */ 122 Nbytes = gfits_ matrix_size (header);122 Nbytes = gfits_data_size (header); 123 123 124 124 /* check if this is the correct extension or not */ … … 152 152 ALLOCATE (table[0].row, int, MAX (1, Nrow)); 153 153 for (i = 0; i < Nrow; i++) table[0].row[i] = row[i]; 154 table[0].size = gfits_ matrix_size (table[0].header);154 table[0].size = gfits_data_size (table[0].header); 155 155 table[0].pad = table[0].size - Nx*Ny; 156 156 return (TRUE); 157 157 } 158 158 } 159 160 # if (0)161 /*********************** fits read table ***********************************/162 /* a poor function: read only the first table, regardless of name */163 /* keep until we are sure ohana code does not use it */164 int gfits_read_table (char *filename, FTable *table) {165 166 FILE *f;167 Header header;168 int status, i, nbytes, Nbytes, matrix_size;169 170 if (!gfits_read_header (filename, &header)) {171 fprintf (stderr, "error reading header of FITS file %s\n", filename);172 return (FALSE);173 }174 175 if (!gfits_read_Theader (filename, &table[0].header)) {176 fprintf (stderr, "error reading Theader of FITS file %s\n", filename);177 return (FALSE);178 }179 180 if ((f = fopen (filename, "r")) == NULL) {181 gfits_free_header (&header);182 gfits_free_header (&table[0].header);183 return (FALSE);184 }185 186 matrix_size = gfits_matrix_size (&header);187 188 Nbytes = header.size + matrix_size + table[0].header.size;189 fseek (f, Nbytes, 0);190 gfits_free_header (&header);191 192 gfits_scan (&table[0].header, "TFIELDS", "%d", 1, &table[0].Nfields);193 194 /* place the field sizes in the structure? */195 table[0].bitpix = table[0].header.bitpix;196 table[0].Naxes = table[0].header.Naxes;197 for (i = 0; i < FT_MAX_NAXES; i++)198 table[0].Naxis[i] = table[0].header.Naxis[i];199 200 Nbytes = gfits_matrix_size (&table[0].header);201 ALLOCATE (table[0].buffer, char, Nbytes);202 nbytes = fread (table[0].buffer, sizeof(char), Nbytes, f);203 if (nbytes != Nbytes) {204 fprintf (stderr, "error reading in table data from FITS file %s\n", filename);205 fclose (f);206 return (FALSE);207 }208 table[0].size = Nbytes;209 fclose (f);210 return (TRUE);211 }212 # endif213 214 159 215 160 int gfits_fread_header_extname (FILE *f, Header *header, char *extname) { … … 223 168 if (!strcasecmp (extname, "PHU")) return (TRUE); 224 169 225 Nbytes = gfits_ matrix_size (header);170 Nbytes = gfits_data_size (header); 226 171 fseek (f, Nbytes, SEEK_CUR); 227 172 … … 229 174 gfits_scan (header, "EXTNAME", "%s", 1, current); 230 175 if (!strcmp (current, extname)) return (TRUE); 231 Nbytes = gfits_ matrix_size (header);176 Nbytes = gfits_data_size (header); 232 177 fseek (f, Nbytes, SEEK_CUR); 233 178 } -
branches/eam_branch_20071015/Ohana/src/libfits/table/F_read_TH.c
r7054 r15312 22 22 } 23 23 24 Nbytes = gfits_ matrix_size (&header);24 Nbytes = gfits_data_size (&header); 25 25 fseek (f, Nbytes, SEEK_SET); 26 26 gfits_free_header (&header); -
branches/eam_branch_20071015/Ohana/src/libfits/table/F_set_column.c
r7054 r15312 52 52 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 53 53 54 nbytes = gfits_ matrix_size (header);54 nbytes = gfits_data_size (header); 55 55 REALLOCATE (table[0].buffer, char, MAX (nbytes, 1)); 56 56 bzero (table[0].buffer, nbytes); … … 187 187 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 188 188 189 nbytes = gfits_ matrix_size (header);189 nbytes = gfits_data_size (header); 190 190 REALLOCATE (table[0].buffer, char, MAX (nbytes, 1)); 191 191 bzero (table[0].buffer, nbytes); -
branches/eam_branch_20071015/Ohana/src/libfits/table/F_table_format.c
r15275 r15312 25 25 if (*Fchar == 'E') { *Nbytes = 4; strcpy (type, "float"); *Nval = Nv; } 26 26 if (*Fchar == 'D') { *Nbytes = 8; strcpy (type, "double"); *Nval = Nv; } 27 if (*Fchar == 'P') { *Nbytes = 8; strcpy (type, " float");*Nval = 2*Nv; }27 if (*Fchar == 'P') { *Nbytes = 8; strcpy (type, "var"); *Nval = 2*Nv; } 28 28 if (*Fchar == 'C') { *Nbytes = 8; strcpy (type, "float"); *Nval = 2*Nv; } 29 29 if (*Fchar == 'M') { *Nbytes = 16; strcpy (type, "double"); *Nval = 2*Nv; } -
branches/eam_branch_20071015/Ohana/src/libfits/table/F_table_row.c
r7054 r15312 25 25 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 26 26 27 nbytes = gfits_ matrix_size (header);27 nbytes = gfits_data_size (header); 28 28 REALLOCATE (table[0].buffer, char, MAX (nbytes, 1)); 29 29 table[0].size = nbytes; … … 66 66 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 67 67 68 table[0].size = gfits_ matrix_size (table[0].header);68 table[0].size = gfits_data_size (table[0].header); 69 69 table[0].pad = table[0].size - Nx*Ny; 70 70 … … 99 99 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 100 100 101 nbytes = gfits_ matrix_size (header);101 nbytes = gfits_data_size (header); 102 102 REALLOCATE (table[0].buffer, char, MAX (nbytes, 1)); 103 103 table[0].size = nbytes; -
branches/eam_branch_20071015/Ohana/src/opihi/cmd.data/read_vectors.c
r7917 r15312 172 172 for (i = 0; i <= Nextend; i++) { 173 173 if (!gfits_load_header (f, &header)) return (FALSE); 174 Nbytes = gfits_ matrix_size (&header);174 Nbytes = gfits_data_size (&header); 175 175 /* skip the prior data buffers */ 176 176 if (i < Nextend) { -
branches/eam_branch_20071015/Ohana/src/opihi/dvo/cmpread.c
r8648 r15312 83 83 } else { 84 84 gprint (GP_ERR, "reading from FITS cmp file %s\n", argv[2]); 85 Nbytes = gfits_ matrix_size (&header);85 Nbytes = gfits_data_size (&header); 86 86 fseek (f, Nbytes, SEEK_CUR); 87 87 stars = cmpReadFits (f, &Nstars); -
branches/eam_branch_20071015/Ohana/src/opihi/dvo/imbox.c
r13479 r15312 79 79 } 80 80 skip: 81 Nskip = gfits_ matrix_size (&header);81 Nskip = gfits_data_size (&header); 82 82 fseek (f, Nskip, SEEK_CUR); 83 83 gfits_free_header (&header); -
branches/eam_branch_20071015/Ohana/src/opihi/pantasks/task_trange.c
r14590 r15312 57 57 } 58 58 59 /* allow a syntax which means something like "every hour at MM:SS" 60 this could by something like *:MM:SS ? */ 61 59 62 /* test for HH:MM:SS */ 60 63 if (hms_to_sec (argv[1], &range.start)) { -
branches/eam_branch_20071015/Ohana/src/tools/src/ckfits.c
r12333 r15312 20 20 } 21 21 22 Ntotal = gfits_ matrix_size (&header);22 Ntotal = gfits_data_size (&header); 23 23 24 24 Ndata = abs(header.bitpix / 8); -
branches/eam_branch_20071015/Ohana/src/tools/src/fields.c
r12333 r15312 85 85 } 86 86 87 Nbytes = gfits_ matrix_size (&header);87 Nbytes = gfits_data_size (&header); 88 88 fseek (f, Nbytes, SEEK_CUR); 89 89 Nextend ++; -
branches/eam_branch_20071015/Ohana/src/tools/src/ftable.c
r12399 r15312 87 87 88 88 /* load table data array */ 89 Nbytes = gfits_ matrix_size (table.header);89 Nbytes = gfits_data_size (table.header); 90 90 ALLOCATE (table.buffer, char, Nbytes); 91 91 Nread = fread (table.buffer, sizeof (char), Nbytes, f); … … 175 175 exit (1); 176 176 } 177 Nbytes = gfits_ matrix_size (&header);177 Nbytes = gfits_data_size (&header); 178 178 fseek (f, Nbytes, SEEK_CUR); 179 179 */ … … 234 234 } 235 235 236 Nbytes = gfits_ matrix_size (&header);236 Nbytes = gfits_data_size (&header); 237 237 fseek (f, Nbytes, SEEK_CUR); 238 238 … … 270 270 271 271 /* skip first data array */ 272 Nbytes = gfits_ matrix_size (header);272 Nbytes = gfits_data_size (header); 273 273 fseek (f, Nbytes, SEEK_CUR); 274 274 … … 280 280 if ((Extname != NULL) && (!strcmp (Extname, extname))) return (f); 281 281 282 Nbytes = gfits_ matrix_size (header);282 Nbytes = gfits_data_size (header); 283 283 fseek (f, Nbytes, SEEK_CUR); 284 284 gfits_free_header (header); -
branches/eam_branch_20071015/Ohana/src/tools/src/mefhead.c
r12333 r15312 42 42 } 43 43 /* skip matrix */ 44 Nmatrix = gfits_ matrix_size (&header);44 Nmatrix = gfits_data_size (&header); 45 45 fseek (g, Nmatrix, SEEK_CUR); 46 46 … … 64 64 65 65 /* skip matrix */ 66 Nmatrix = gfits_ matrix_size (&header);66 Nmatrix = gfits_data_size (&header); 67 67 fseek (g, Nmatrix, SEEK_CUR); 68 68
Note:
See TracChangeset
for help on using the changeset viewer.
