Changeset 7054
- Timestamp:
- May 3, 2006, 12:01:09 PM (20 years ago)
- Location:
- trunk/Ohana/src/libfits
- Files:
-
- 49 edited
-
doc/ChangeLog.txt (modified) (1 diff)
-
doc/sample.c (modified) (1 diff)
-
doc/sample2.c (modified) (3 diffs)
-
header/F_H_field.c (modified) (1 diff)
-
header/F_create_H.c (modified) (2 diffs)
-
header/F_delete.c (modified) (2 diffs)
-
header/F_free_H.c (modified) (1 diff)
-
header/F_init_H.c (modified) (1 diff)
-
header/F_insert_array.c (modified) (1 diff)
-
header/F_modify.c (modified) (7 diffs)
-
header/F_print.c (modified) (4 diffs)
-
header/F_read_H.c (modified) (6 diffs)
-
header/F_read_XH.c (modified) (2 diffs)
-
header/F_scan.c (modified) (8 diffs)
-
header/F_write_H.c (modified) (3 diffs)
-
header/version.c (modified) (1 diff)
-
include/gfitsio.h (modified) (1 diff)
-
matrix/F_add_M.c (modified) (2 diffs)
-
matrix/F_add_M_value.c (modified) (2 diffs)
-
matrix/F_convert_format.c (modified) (2 diffs)
-
matrix/F_copy_M.c (modified) (1 diff)
-
matrix/F_create_M.c (modified) (2 diffs)
-
matrix/F_divide_M.c (modified) (2 diffs)
-
matrix/F_free_M.c (modified) (1 diff)
-
matrix/F_get_M_value.c (modified) (1 diff)
-
matrix/F_insert_M.c (modified) (1 diff)
-
matrix/F_load_M.c (modified) (2 diffs)
-
matrix/F_matrix.c (modified) (1 diff)
-
matrix/F_multiply_M.c (modified) (2 diffs)
-
matrix/F_read_M.c (modified) (3 diffs)
-
matrix/F_read_portion.c (modified) (3 diffs)
-
matrix/F_read_segment.c (modified) (3 diffs)
-
matrix/F_set_M_value.c (modified) (1 diff)
-
matrix/F_write_M.c (modified) (3 diffs)
-
table/F_create_T.c (modified) (2 diffs)
-
table/F_create_TH.c (modified) (4 diffs)
-
table/F_define_column.c (modified) (4 diffs)
-
table/F_free_T.c (modified) (2 diffs)
-
table/F_get_T_column.c (modified) (2 diffs)
-
table/F_get_T_value.c (modified) (2 diffs)
-
table/F_get_column.c (modified) (11 diffs)
-
table/F_read_T.c (modified) (17 diffs)
-
table/F_read_TH.c (modified) (7 diffs)
-
table/F_set_column.c (modified) (8 diffs)
-
table/F_table_column.c (modified) (5 diffs)
-
table/F_table_format.c (modified) (7 diffs)
-
table/F_table_row.c (modified) (9 diffs)
-
table/F_write_T.c (modified) (5 diffs)
-
table/F_write_TH.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libfits/doc/ChangeLog.txt
r5928 r7054 1 2 - libfits 1.6 3 * in order to allow compliation with cfitsio programs, I have changed the 4 entire namespace to 'gfits' from 'fits' (actually, only fits_copy_header 5 was conflicting, but it is better to have a sufficiently different namespace). 6 All ohana programs need to migrate to the new version of libfits. 1 7 2 8 - libfits 1.5 -
trunk/Ohana/src/libfits/doc/sample.c
r7039 r7054 25 25 26 26 /* create primary header */ 27 fits_init_header (&header); header.extend = TRUE;28 fits_create_header (&header);29 fits_create_matrix (&header, &matrix);30 fits_print (&header, "NEXTEND", "%d", 1, 2);27 gfits_init_header (&header); header.extend = TRUE; 28 gfits_create_header (&header); 29 gfits_create_matrix (&header, &matrix); 30 gfits_print (&header, "NEXTEND", "%d", 1, 2); 31 31 32 32 /* define bintable header & layout */ 33 fits_create_table_header (&theader1, "BINTABLE", "ZERO_POINTS");33 gfits_create_table_header (&theader1, "BINTABLE", "ZERO_POINTS"); 34 34 35 fits_define_bintable_column (&theader1, "E", "ZP_OBS", "measured zero point", "mag", 1.0, 0.0);36 fits_define_bintable_column (&theader1, "E", "ZP_REF", "measured zero point", "mag", 1.0, 0.0);37 fits_define_bintable_column (&theader1, "J", "TIME", "time of data", "seconds since Jan 1, 1970 UT", 1.0, 0.0);38 fits_define_bintable_column (&theader1, "8A", "TCHAR", "time of data", "seconds since Jan 1, 1970 UT", 1.0, 0.0);35 gfits_define_bintable_column (&theader1, "E", "ZP_OBS", "measured zero point", "mag", 1.0, 0.0); 36 gfits_define_bintable_column (&theader1, "E", "ZP_REF", "measured zero point", "mag", 1.0, 0.0); 37 gfits_define_bintable_column (&theader1, "J", "TIME", "time of data", "seconds since Jan 1, 1970 UT", 1.0, 0.0); 38 gfits_define_bintable_column (&theader1, "8A", "TCHAR", "time of data", "seconds since Jan 1, 1970 UT", 1.0, 0.0); 39 39 40 40 /* create table, add data values */ 41 fits_create_table (&theader1, &table1);41 gfits_create_table (&theader1, &table1); 42 42 43 43 /* set table column based on array, extend NAXIS2 as needed/appropriate */ 44 fits_set_bintable_column (&theader1, &table1, "ZP_OBS", zpobs, Nrow);45 fits_set_bintable_column (&theader1, &table1, "ZP_REF", zpref, Nrow);46 fits_set_bintable_column (&theader1, &table1, "TIME", time, Nrow);47 fits_set_bintable_column (&theader1, &table1, "TCHAR", tchar, Nrow);44 gfits_set_bintable_column (&theader1, &table1, "ZP_OBS", zpobs, Nrow); 45 gfits_set_bintable_column (&theader1, &table1, "ZP_REF", zpref, Nrow); 46 gfits_set_bintable_column (&theader1, &table1, "TIME", time, Nrow); 47 gfits_set_bintable_column (&theader1, &table1, "TCHAR", tchar, Nrow); 48 48 49 49 /* define ASCII table header */ 50 fits_create_table_header (&theader2, "TABLE", "ASCII_PTS");50 gfits_create_table_header (&theader2, "TABLE", "ASCII_PTS"); 51 51 52 fits_define_table_column (&theader2, "F5.2", "ZP_OBS", "measured zero point", "mag");53 fits_define_table_column (&theader2, "F5.2", "ZP_REF", "measured zero point", "mag");54 fits_define_table_column (&theader2, "I8", "TIME", "time of data", "seconds");55 fits_define_table_column (&theader2, "A8", "TCHAR", "time of data", "YYYYMMDD");52 gfits_define_table_column (&theader2, "F5.2", "ZP_OBS", "measured zero point", "mag"); 53 gfits_define_table_column (&theader2, "F5.2", "ZP_REF", "measured zero point", "mag"); 54 gfits_define_table_column (&theader2, "I8", "TIME", "time of data", "seconds"); 55 gfits_define_table_column (&theader2, "A8", "TCHAR", "time of data", "YYYYMMDD"); 56 56 57 57 /* create table, add data values */ 58 fits_create_table (&theader2, &table2);58 gfits_create_table (&theader2, &table2); 59 59 60 fits_set_table_column (&theader2, &table2, "ZP_OBS", zpobs, Nrow);61 fits_set_table_column (&theader2, &table2, "ZP_REF", zpref, Nrow);62 fits_set_table_column (&theader2, &table2, "TIME", time, Nrow);63 fits_set_table_column (&theader2, &table2, "TCHAR", tchar, Nrow);60 gfits_set_table_column (&theader2, &table2, "ZP_OBS", zpobs, Nrow); 61 gfits_set_table_column (&theader2, &table2, "ZP_REF", zpref, Nrow); 62 gfits_set_table_column (&theader2, &table2, "TIME", time, Nrow); 63 gfits_set_table_column (&theader2, &table2, "TCHAR", tchar, Nrow); 64 64 65 65 /* write header, matrix, table1, table2 */ 66 fits_write_header (filename, &header);67 fits_write_matrix (filename, &matrix);68 fits_write_Theader (filename, &theader1);69 fits_write_table (filename, &table1);70 fits_write_Theader (filename, &theader2);71 fits_write_table (filename, &table2);66 gfits_write_header (filename, &header); 67 gfits_write_matrix (filename, &matrix); 68 gfits_write_Theader (filename, &theader1); 69 gfits_write_table (filename, &table1); 70 gfits_write_Theader (filename, &theader2); 71 gfits_write_table (filename, &table2); 72 72 73 73 } -
trunk/Ohana/src/libfits/doc/sample2.c
r7039 r7054 19 19 20 20 strcpy (filename, "test.fits"); 21 fits_read_header (filename, &header);22 fits_read_matrix (filename, &matrix);23 fits_read_ftable (filename, &table1, "ZERO_POINTS");24 fits_read_ftable (filename, &table2, "ASCII_PTS");21 gfits_read_header (filename, &header); 22 gfits_read_matrix (filename, &matrix); 23 gfits_read_ftable (filename, &table1, "ZERO_POINTS"); 24 gfits_read_ftable (filename, &table2, "ASCII_PTS"); 25 25 26 26 /* set table column based on array, extend NAXIS2 as needed/appropriate */ 27 fits_get_bintable_column (&theader1, &table1, "ZP_OBS", &zpobs);28 fits_get_bintable_column (&theader1, &table1, "ZP_REF", &zpref);29 fits_get_bintable_column (&theader1, &table1, "TIME", &time);30 fits_get_bintable_column (&theader1, &table1, "TCHAR", &tchar);31 fits_scan (&theader1, "NAXIS2", "%d", 1, &Nrow);27 gfits_get_bintable_column (&theader1, &table1, "ZP_OBS", &zpobs); 28 gfits_get_bintable_column (&theader1, &table1, "ZP_REF", &zpref); 29 gfits_get_bintable_column (&theader1, &table1, "TIME", &time); 30 gfits_get_bintable_column (&theader1, &table1, "TCHAR", &tchar); 31 gfits_scan (&theader1, "NAXIS2", "%d", 1, &Nrow); 32 32 33 33 for (i = 0; i < Nrow; i++) { … … 38 38 39 39 /* set table column based on array, extend NAXIS2 as needed/appropriate */ 40 fits_get_table_column (&theader2, &table2, "ZP_OBS", &zpobs);41 fits_get_table_column (&theader2, &table2, "ZP_REF", &zpref);42 fits_get_table_column (&theader2, &table2, "TIME", &time);43 fits_get_table_column (&theader2, &table2, "TCHAR", &tchar);44 fits_scan (&theader2, "NAXIS2", "%d", 1, &Nrow);40 gfits_get_table_column (&theader2, &table2, "ZP_OBS", &zpobs); 41 gfits_get_table_column (&theader2, &table2, "ZP_REF", &zpref); 42 gfits_get_table_column (&theader2, &table2, "TIME", &time); 43 gfits_get_table_column (&theader2, &table2, "TCHAR", &tchar); 44 gfits_scan (&theader2, "NAXIS2", "%d", 1, &Nrow); 45 45 46 46 for (i = 0; i < Nrow; i++) { … … 54 54 55 55 /* 56 fits_set_table_column (&theader2, &table2, "ZP_OBS", zpobs, Nrow);57 fits_set_table_column (&theader2, &table2, "ZP_REF", zpref, Nrow);58 fits_set_table_column (&theader2, &table2, "TIME", time, Nrow);59 fits_set_table_column (&theader2, &table2, "TCHAR", tchar, Nrow);56 gfits_set_table_column (&theader2, &table2, "ZP_OBS", zpobs, Nrow); 57 gfits_set_table_column (&theader2, &table2, "ZP_REF", zpref, Nrow); 58 gfits_set_table_column (&theader2, &table2, "TIME", time, Nrow); 59 gfits_set_table_column (&theader2, &table2, "TCHAR", tchar, Nrow); 60 60 */ -
trunk/Ohana/src/libfits/header/F_H_field.c
r7039 r7054 3 3 4 4 /*********************** fits header field ****************************/ 5 char * fits_header_field (Header *header, char *field, int N) {5 char *gfits_header_field (Header *header, char *field, int N) { 6 6 7 7 char *buf; -
trunk/Ohana/src/libfits/header/F_create_H.c
r7039 r7054 4 4 5 5 /******************** fits create header ***********************************/ 6 int fits_create_header (Header *header) {6 int gfits_create_header (Header *header) { 7 7 8 8 int i; … … 17 17 strncpy (header[0].buffer, "END", 3); 18 18 19 fits_modify (header, "SIMPLE", "%t", 1, header[0].simple);20 fits_modify (header, "BITPIX", "%d", 1, header[0].bitpix);21 fits_modify (header, "NAXIS", "%d", 1, header[0].Naxes);19 gfits_modify (header, "SIMPLE", "%t", 1, header[0].simple); 20 gfits_modify (header, "BITPIX", "%d", 1, header[0].bitpix); 21 gfits_modify (header, "NAXIS", "%d", 1, header[0].Naxes); 22 22 23 23 for (i = 0; i < header[0].Naxes; i++) { 24 24 sprintf (axis, "NAXIS%d", i + 1); 25 fits_modify (header, axis, "%d", 1, header[0].Naxis[i]);25 gfits_modify (header, axis, "%d", 1, header[0].Naxis[i]); 26 26 } 27 27 28 28 /* PCOUNT & GCOUNT are not implemented, but they are required to be here */ 29 fits_modify (header, "PCOUNT", "%d", 1, 0);30 fits_modify (header, "GCOUNT", "%d", 1, 1);31 fits_modify (header, "BSCALE", "%lf", 1, header[0].bscale);32 fits_modify (header, "BZERO", "%lf", 1, header[0].bzero);33 fits_modify (header, "EXTEND", "%t", 1, header[0].extend);29 gfits_modify (header, "PCOUNT", "%d", 1, 0); 30 gfits_modify (header, "GCOUNT", "%d", 1, 1); 31 gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale); 32 gfits_modify (header, "BZERO", "%lf", 1, header[0].bzero); 33 gfits_modify (header, "EXTEND", "%t", 1, header[0].extend); 34 34 return (TRUE); 35 35 -
trunk/Ohana/src/libfits/header/F_delete.c
r7039 r7054 3 3 4 4 /*********************** fits delete ****************************/ 5 int fits_delete (Header *header, char *field, int N) {5 int gfits_delete (Header *header, char *field, int N) { 6 6 7 7 int i, Nbytes; 8 8 char *p1, *p2; 9 9 10 p1 = fits_header_field (header, field, N);10 p1 = gfits_header_field (header, field, N); 11 11 if (p1 == NULL) return (TRUE); 12 12 13 p2 = fits_header_field (header, "END", 1);13 p2 = gfits_header_field (header, "END", 1); 14 14 if (p2 == NULL) return (FALSE); 15 15 … … 21 21 *(p2 + i) = ' '; 22 22 23 p2 = fits_header_field (header, "END", 1);23 p2 = gfits_header_field (header, "END", 1); 24 24 if (header[0].size - (p2 - header[0].buffer + FT_LINE_LENGTH) > FT_RECORD_SIZE) { 25 25 header[0].size -= FT_RECORD_SIZE; -
trunk/Ohana/src/libfits/header/F_free_H.c
r7039 r7054 3 3 4 4 /*********************** fits free header ***********************************/ 5 void fits_free_header (Header *header) {5 void gfits_free_header (Header *header) { 6 6 7 7 if (header[0].buffer == (char *) NULL) return; -
trunk/Ohana/src/libfits/header/F_init_H.c
r7039 r7054 4 4 5 5 /*********************** fits read header ***********************************/ 6 int fits_init_header (Header *header) {6 int gfits_init_header (Header *header) { 7 7 8 8 int i; -
trunk/Ohana/src/libfits/header/F_insert_array.c
r7039 r7054 3 3 4 4 /*********************** fits insert array ***********************************/ 5 void fits_insert_matrix (matrix, array, x, y)5 void gfits_insert_matrix (matrix, array, x, y) 6 6 Matrix *matrix, *array; 7 7 int x, y; -
trunk/Ohana/src/libfits/header/F_modify.c
r7039 r7054 2 2 # include <gfitsio.h> 3 3 4 char * fits_keyword_start (char *line);5 char * fits_keyword_end (char *line);4 char *gfits_keyword_start (char *line); 5 char *gfits_keyword_end (char *line); 6 6 void pad_ending (char *line, char value, int Nbyte); 7 7 8 int fits_modify (Header *header, char *field, char *mode, int N,...) {8 int gfits_modify (Header *header, char *field, char *mode, int N,...) { 9 9 10 10 /* this function expects one more argument, the value to be written */ 11 /* this function is extremely similar to fits_print, except it allows for changing an existing field. */11 /* this function is extremely similar to gfits_print, except it allows for changing an existing field. */ 12 12 13 13 char comment[82], string[82], data[82]; … … 21 21 22 22 if (mode[0] != '%') { 23 fprintf (stderr, " fits_print: weird mode: %s\n", mode);23 fprintf (stderr, "gfits_print: weird mode: %s\n", mode); 24 24 return (FALSE); 25 25 } 26 26 27 27 /* find location of desired entry */ 28 p = fits_header_field (header, field, N);28 p = gfits_header_field (header, field, N); 29 29 if (p == NULL) { 30 30 /* new entry, find the END of the header */ 31 p = fits_header_field (header, "END", 1);31 p = gfits_header_field (header, "END", 1); 32 32 if (p == NULL) return (FALSE); 33 33 … … 36 36 header[0].size += FT_RECORD_SIZE; 37 37 REALLOCATE (header[0].buffer, char, header[0].size); 38 p = fits_header_field (header, "END", 1);38 p = gfits_header_field (header, "END", 1); 39 39 if (p == NULL) return (FALSE); 40 40 memset (p + FT_LINE_LENGTH, ' ', FT_RECORD_SIZE); … … 46 46 } else { 47 47 /* old entry, save the comment region (is this skipping a character for non-strings?) */ 48 qe = fits_keyword_end (p);48 qe = gfits_keyword_end (p); 49 49 qe += 3; 50 50 qe = MIN (p + 80, qe); … … 87 87 /* just a comment associated with a value. this is assumes a fixed format position for the comment */ 88 88 if (!strcmp (mode, "%C")) { 89 qe = fits_keyword_end (p);90 qs = fits_keyword_start (p);89 qe = gfits_keyword_end (p); 90 qs = gfits_keyword_start (p); 91 91 92 92 /* keep ' on ends, if there */ … … 108 108 109 109 /* given a FITS card line, return pointer to the start of the data area */ 110 char * fits_keyword_start (char *line) {110 char *gfits_keyword_start (char *line) { 111 111 112 112 char *c; … … 127 127 128 128 /* given a FITS card line, return pointer to the end of the data area */ 129 char * fits_keyword_end (char *line) {129 char *gfits_keyword_end (char *line) { 130 130 131 131 int done; -
trunk/Ohana/src/libfits/header/F_print.c
r7039 r7054 2 2 # include <gfitsio.h> 3 3 4 int fits_print (Header *header, char *field, char *mode, int N,...) {4 int gfits_print (Header *header, char *field, char *mode, int N,...) { 5 5 6 6 /* this function expects one more argument, the value to be written */ … … 14 14 15 15 if (mode[0] != '%') { 16 fprintf (stderr, " fits_print: weird mode: %s\n", mode);16 fprintf (stderr, "gfits_print: weird mode: %s\n", mode); 17 17 return (FALSE); 18 18 } 19 19 20 20 /* this is supposed to create a new field, not modify an old one. */ 21 p = fits_header_field (header, field, N);21 p = gfits_header_field (header, field, N); 22 22 if (p != NULL) return (FALSE); 23 23 24 24 /* find the END of the header */ 25 p = fits_header_field (header, "END", 1);25 p = gfits_header_field (header, "END", 1); 26 26 if (p == NULL) return (FALSE); 27 27 … … 31 31 REALLOCATE (header[0].buffer, char, header[0].size); 32 32 /* re-find the "END" marker, in case new memory block is used */ 33 p = fits_header_field (header, "END", 1);33 p = gfits_header_field (header, "END", 1); 34 34 if (p == NULL) return (FALSE); 35 35 memset (p + FT_LINE_LENGTH, ' ', FT_RECORD_SIZE); … … 90 90 */ 91 91 92 /* can't write the comment in fits_print - usefits_modify */92 /* can't write the comment in gfits_print - use gfits_modify */ 93 93 if (!strcmp (mode, "%C")) return (FALSE); 94 94 -
trunk/Ohana/src/libfits/header/F_read_H.c
r7039 r7054 4 4 5 5 /*********************** fits read header ***********************************/ 6 int fits_read_header (char *filename, Header *header) {6 int gfits_read_header (char *filename, Header *header) { 7 7 8 8 FILE *f; … … 13 13 return (FALSE); 14 14 } 15 if (! fits_load_header (f, header)) {15 if (!gfits_load_header (f, header)) { 16 16 fclose (f); 17 17 return (FALSE); … … 22 22 } 23 23 24 int fits_load_header (FILE *f, Header *header) {24 int gfits_load_header (FILE *f, Header *header) { 25 25 26 26 int i, done, Nbytes, t1, t2; … … 46 46 } 47 47 48 p = fits_header_field (header, "END", 1);48 p = gfits_header_field (header, "END", 1); 49 49 if (p != NULL) 50 50 done = TRUE; … … 57 57 header[0].Naxis[i] = 0; 58 58 59 fits_scan (header, "SIMPLE", "%t", 1, &header[0].simple);60 fits_scan (header, "BITPIX", "%d", 1, &header[0].bitpix);61 fits_scan (header, "NAXIS", "%d", 1, &header[0].Naxes);59 gfits_scan (header, "SIMPLE", "%t", 1, &header[0].simple); 60 gfits_scan (header, "BITPIX", "%d", 1, &header[0].bitpix); 61 gfits_scan (header, "NAXIS", "%d", 1, &header[0].Naxes); 62 62 63 fits_scan (header, "EXTEND", "%t", 1, &header[0].extend);64 fits_scan (header, "UNSIGN", "%t", 1, &header[0].unsign);65 fits_scan (header, "BSCALE", "%lf", 1, &header[0].bscale);66 fits_scan (header, "BZERO", "%lf", 1, &header[0].bzero);63 gfits_scan (header, "EXTEND", "%t", 1, &header[0].extend); 64 gfits_scan (header, "UNSIGN", "%t", 1, &header[0].unsign); 65 gfits_scan (header, "BSCALE", "%lf", 1, &header[0].bscale); 66 gfits_scan (header, "BZERO", "%lf", 1, &header[0].bzero); 67 67 68 fits_scan (header, "NAXIS1", "%d", 1, &header[0].Naxis[0]);69 fits_scan (header, "NAXIS2", "%d", 1, &header[0].Naxis[1]);70 fits_scan (header, "NAXIS3", "%d", 1, &header[0].Naxis[2]);71 fits_scan (header, "NAXIS4", "%d", 1, &header[0].Naxis[3]);72 fits_scan (header, "NAXIS5", "%d", 1, &header[0].Naxis[4]);73 fits_scan (header, "NAXIS6", "%d", 1, &header[0].Naxis[5]);74 fits_scan (header, "NAXIS7", "%d", 1, &header[0].Naxis[6]);75 fits_scan (header, "NAXIS8", "%d", 1, &header[0].Naxis[7]);76 fits_scan (header, "NAXIS9", "%d", 1, &header[0].Naxis[8]);77 fits_scan (header, "NAXIS10", "%d", 1, &header[0].Naxis[9]);68 gfits_scan (header, "NAXIS1", "%d", 1, &header[0].Naxis[0]); 69 gfits_scan (header, "NAXIS2", "%d", 1, &header[0].Naxis[1]); 70 gfits_scan (header, "NAXIS3", "%d", 1, &header[0].Naxis[2]); 71 gfits_scan (header, "NAXIS4", "%d", 1, &header[0].Naxis[3]); 72 gfits_scan (header, "NAXIS5", "%d", 1, &header[0].Naxis[4]); 73 gfits_scan (header, "NAXIS6", "%d", 1, &header[0].Naxis[5]); 74 gfits_scan (header, "NAXIS7", "%d", 1, &header[0].Naxis[6]); 75 gfits_scan (header, "NAXIS8", "%d", 1, &header[0].Naxis[7]); 76 gfits_scan (header, "NAXIS9", "%d", 1, &header[0].Naxis[8]); 77 gfits_scan (header, "NAXIS10", "%d", 1, &header[0].Naxis[9]); 78 78 79 79 return (TRUE); … … 81 81 } 82 82 83 int fits_fread_header (FILE *f, Header *header) {83 int gfits_fread_header (FILE *f, Header *header) { 84 84 85 85 int status; 86 86 87 status = fits_load_header (f, header);87 status = gfits_load_header (f, header); 88 88 return (status); 89 89 } -
trunk/Ohana/src/libfits/header/F_read_XH.c
r7039 r7054 4 4 5 5 /*********************** fits read header ***********************************/ 6 int fits_read_Xheader (char *filename, Header *header, int N) {6 int gfits_read_Xheader (char *filename, Header *header, int N) { 7 7 8 8 /* read header for extension number N */ … … 21 21 for (j = -1; j < N; j++) { 22 22 /* load data for this header */ 23 if (! fits_load_header (f, &theader)) {23 if (!gfits_load_header (f, &theader)) { 24 24 fclose (f); 25 25 return (FALSE); 26 26 } 27 27 28 Nmatrix = fits_matrix_size (&theader);28 Nmatrix = gfits_matrix_size (&theader); 29 29 30 30 /* skip to next header */ 31 31 fseek (f, Nmatrix, SEEK_CUR); 32 32 Nskip += (Nmatrix + theader.size); 33 fits_free_header (&theader);33 gfits_free_header (&theader); 34 34 } 35 35 36 if (! fits_load_header (f, header)) {36 if (!gfits_load_header (f, header)) { 37 37 fclose (f); 38 38 return (FALSE); -
trunk/Ohana/src/libfits/header/F_scan.c
r7039 r7054 2 2 # include <gfitsio.h> 3 3 4 char * fits_keyword_start (char *line);5 char * fits_keyword_end (char *line);4 char *gfits_keyword_start (char *line); 5 char *gfits_keyword_end (char *line); 6 6 7 int fits_scan (Header *header, char *field, char *mode, int N,...) {7 int gfits_scan (Header *header, char *field, char *mode, int N,...) { 8 8 9 9 int status; … … 11 11 12 12 va_start (argp, N); 13 status = fits_vscan (header, field, mode, N, argp);13 status = gfits_vscan (header, field, mode, N, argp); 14 14 va_end (argp); 15 15 return (status); 16 16 } 17 17 18 int fits_vscan (Header *header, char *field, char *mode, int N, va_list argp) {18 int gfits_vscan (Header *header, char *field, char *mode, int N, va_list argp) { 19 19 20 20 char *p, *q, *s, tmp[81]; … … 23 23 24 24 /* find the correct line with field */ 25 p = fits_header_field (header, field, N);25 p = gfits_header_field (header, field, N); 26 26 if (p == NULL) return (FALSE); 27 27 … … 37 37 /* comment from data line */ 38 38 if (!strcmp (mode, "%C")) { 39 q = fits_keyword_end (p) + 3;39 q = gfits_keyword_end (p) + 3; 40 40 q = MIN (p + 80, q); 41 41 bzero (tmp, 81); 42 42 Nchar = MIN (80, p + 80 - q); 43 43 memcpy (tmp, q, Nchar); 44 fits_stripwhite (tmp);44 gfits_stripwhite (tmp); 45 45 strcpy (va_arg (argp, char *), tmp); 46 46 return (TRUE); … … 49 49 /* extract data into char array (exclude containing ' chars) */ 50 50 if (!strcmp (mode, "%s")) { 51 s = fits_keyword_start (p); /* points at first char (not ') */52 q = fits_keyword_end (p); /* points at following space or ' */51 s = gfits_keyword_start (p); /* points at first char (not ') */ 52 q = gfits_keyword_end (p); /* points at following space or ' */ 53 53 54 54 Nchar = MAX (0, (q - s)); 55 55 bzero (tmp, 81); 56 56 memcpy (tmp, s, Nchar); 57 fits_stripwhite (tmp);57 gfits_stripwhite (tmp); 58 58 strcpy (va_arg (argp, char *), tmp); 59 59 return (TRUE); … … 62 62 /* boolean data, requires int target */ 63 63 if (!strcmp (mode, "%t")) { 64 s = fits_keyword_start (p);64 s = gfits_keyword_start (p); 65 65 if (*s == 'T') { 66 66 *va_arg (argp, int *) = TRUE; … … 75 75 /* remaining options are numerical data */ 76 76 /* need to interpret 1.0d5 as 1.0e5 */ 77 s = fits_keyword_start (p); /* points at first char (not ') */78 q = fits_keyword_end (p); /* points at following space or ' */77 s = gfits_keyword_start (p); /* points at first char (not ') */ 78 q = gfits_keyword_end (p); /* points at following space or ' */ 79 79 value = strtod (s, &q); 80 80 if ((*q == 'd') || (*q == 'D')) … … 100 100 101 101 /* Strip whitespace from the start and end of STRING. */ 102 int fits_stripwhite (char *string) {102 int gfits_stripwhite (char *string) { 103 103 104 104 int i; -
trunk/Ohana/src/libfits/header/F_write_H.c
r7039 r7054 3 3 4 4 /*********************** fits write header ***********************************/ 5 int fits_write_header (char *filename, Header *header) {5 int gfits_write_header (char *filename, Header *header) { 6 6 7 7 FILE *f; … … 25 25 26 26 /*********************** fits write header ***********************************/ 27 int fits_save_header (FILE *f, Header *header) {27 int gfits_save_header (FILE *f, Header *header) { 28 28 29 29 int Nbytes, status; … … 41 41 42 42 43 int fits_fwrite_header (FILE *f, Header *header) {43 int gfits_fwrite_header (FILE *f, Header *header) { 44 44 45 45 int status; 46 status = fits_save_header (f, header);46 status = gfits_save_header (f, header); 47 47 return (status); 48 48 } -
trunk/Ohana/src/libfits/header/version.c
r7039 r7054 3 3 static char *name = "$Name: not supported by cvs2svn $"; 4 4 5 char * fits_version () {5 char *gfits_version () { 6 6 return (name); 7 7 } -
trunk/Ohana/src/libfits/include/gfitsio.h
r7039 r7054 86 86 # endif 87 87 88 char * fits_version PROTO(());88 char *gfits_version PROTO(()); 89 89 90 90 /******************************* Header functions *************/ 91 int fits_read_header PROTO((char *, Header *));91 int gfits_read_header PROTO((char *, Header *)); 92 92 // int fits_copy_header PROTO((Header *, Header *)); 93 93 int gfits_copy_header PROTO((Header *, Header *)); 94 void fits_free_header PROTO((Header *));95 int fits_write_header PROTO((char *, Header *));96 int fits_create_header PROTO((Header *));97 int fits_delete PROTO((Header *, char *, int));98 char * fits_header_field PROTO((Header *, char *, int));99 int fits_read_Xheader PROTO((char *filename, Header *header, int N));100 int fits_load_header PROTO((FILE *f, Header *header));94 void gfits_free_header PROTO((Header *)); 95 int gfits_write_header PROTO((char *, Header *)); 96 int gfits_create_header PROTO((Header *)); 97 int gfits_delete PROTO((Header *, char *, int)); 98 char *gfits_header_field PROTO((Header *, char *, int)); 99 int gfits_read_Xheader PROTO((char *filename, Header *header, int N)); 100 int gfits_load_header PROTO((FILE *f, Header *header)); 101 101 102 int fits_fread_header PROTO((FILE *, Header *));103 int fits_fread_Theader PROTO((FILE *, Header *));104 int fits_fread_ftable PROTO((FILE *, FTable *, char *));105 int fits_fread_vtable_range PROTO((FILE *f, VTable *table, int start, int Nrows));106 int fits_fread_vtable PROTO((FILE *f, VTable *table, char *extname, int Nrow, int *row));107 int fits_fread_ftable_data PROTO((FILE *f, FTable *table));108 int fits_fwrite_header PROTO((FILE *, Header *));109 int fits_fwrite_Theader PROTO((FILE *, Header *));110 int fits_fwrite_matrix PROTO((FILE *, Matrix *));111 int fits_fwrite_table PROTO((FILE *, FTable *));112 int fits_fwrite_vtable PROTO((FILE *, VTable *));102 int gfits_fread_header PROTO((FILE *, Header *)); 103 int gfits_fread_Theader PROTO((FILE *, Header *)); 104 int gfits_fread_ftable PROTO((FILE *, FTable *, char *)); 105 int gfits_fread_vtable_range PROTO((FILE *f, VTable *table, int start, int Nrows)); 106 int gfits_fread_vtable PROTO((FILE *f, VTable *table, char *extname, int Nrow, int *row)); 107 int gfits_fread_ftable_data PROTO((FILE *f, FTable *table)); 108 int gfits_fwrite_header PROTO((FILE *, Header *)); 109 int gfits_fwrite_Theader PROTO((FILE *, Header *)); 110 int gfits_fwrite_matrix PROTO((FILE *, Matrix *)); 111 int gfits_fwrite_table PROTO((FILE *, FTable *)); 112 int gfits_fwrite_vtable PROTO((FILE *, VTable *)); 113 113 114 int fits_matrix_size PROTO ((Header *));115 int fits_init_header PROTO ((Header *));116 int fits_create_table_header PROTO ((Header *, char *, char *));117 int fits_vtable_from_ftable PROTO ((FTable *ftable, VTable *vtable, int *row, int Nrow));118 int fits_table_to_vtable PROTO ((FTable *ftable, VTable *vtable, int start, int Nkeep));119 int fits_create_table PROTO ((Header *, FTable *));120 int fits_vadd_rows PROTO ((VTable *, char *, int, int));121 int fits_add_rows PROTO ((FTable *, char *, int, int));122 char * fits_table_print PROTO ((FTable *,...));114 int gfits_matrix_size PROTO ((Header *)); 115 int gfits_init_header PROTO ((Header *)); 116 int gfits_create_table_header PROTO ((Header *, char *, char *)); 117 int gfits_vtable_from_ftable PROTO ((FTable *ftable, VTable *vtable, int *row, int Nrow)); 118 int gfits_table_to_vtable PROTO ((FTable *ftable, VTable *vtable, int start, int Nkeep)); 119 int gfits_create_table PROTO ((Header *, FTable *)); 120 int gfits_vadd_rows PROTO ((VTable *, char *, int, int)); 121 int gfits_add_rows PROTO ((FTable *, char *, int, int)); 122 char *gfits_table_print PROTO ((FTable *,...)); 123 123 124 124 /******************************* Matrix functions *************/ 125 int fits_read_matrix PROTO((char *, Matrix *));126 int fits_read_portion PROTO((char *filename, Matrix *matrix, int Nskip, int Npix));127 void fits_free_matrix PROTO((Matrix *));128 int fits_copy_matrix PROTO((Matrix *, Matrix *));129 int fits_write_matrix PROTO((char *,Matrix *));130 int fits_create_matrix PROTO((Header *, Matrix *));131 double fits_get_matrix_value PROTO((Matrix *, int, int));132 void fits_set_matrix_value PROTO((Matrix *, int, int, double));133 void fits_add_matrix_value PROTO((Matrix *, int, int, double));134 int fits_multiply_matrix PROTO((Matrix *, Matrix *, Matrix *));135 int fits_divide_matrix PROTO((Matrix *, Matrix *, Matrix *));136 void fits_insert_array PROTO((Matrix *, Matrix *, int, int));137 int fits_load_matrix PROTO((FILE *f, Matrix *matrix, Header *header));138 int fits_fread_matrix PROTO((FILE *f, Matrix *matrix, Header *header));139 int fits_read_segment PROTO((char *filename, Matrix *matrix, char *region));140 int fits_convert_format PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign));125 int gfits_read_matrix PROTO((char *, Matrix *)); 126 int gfits_read_portion PROTO((char *filename, Matrix *matrix, int Nskip, int Npix)); 127 void gfits_free_matrix PROTO((Matrix *)); 128 int gfits_copy_matrix PROTO((Matrix *, Matrix *)); 129 int gfits_write_matrix PROTO((char *,Matrix *)); 130 int gfits_create_matrix PROTO((Header *, Matrix *)); 131 double gfits_get_matrix_value PROTO((Matrix *, int, int)); 132 void gfits_set_matrix_value PROTO((Matrix *, int, int, double)); 133 void gfits_add_matrix_value PROTO((Matrix *, int, int, double)); 134 int gfits_multiply_matrix PROTO((Matrix *, Matrix *, Matrix *)); 135 int gfits_divide_matrix PROTO((Matrix *, Matrix *, Matrix *)); 136 void gfits_insert_array PROTO((Matrix *, Matrix *, int, int)); 137 int gfits_load_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 138 int gfits_fread_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 139 int gfits_read_segment PROTO((char *filename, Matrix *matrix, char *region)); 140 int gfits_convert_format PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign)); 141 141 142 142 /******************************* Table functions *************/ 143 int fits_load_Theader PROTO((FILE *f, Header *Theader));144 int fits_read_Theader PROTO((char *, Header *));145 int fits_read_table PROTO((char *, FTable *));146 int fits_read_table PROTO((char *, FTable *));147 int fits_write_Theader PROTO((char *, Header *header));148 int fits_write_table PROTO((char *, FTable *));149 int fits_fwrite_table PROTO((FILE *f, FTable *table));150 int fits_fwrite_vtable PROTO((FILE *f, VTable *table));143 int gfits_load_Theader PROTO((FILE *f, Header *Theader)); 144 int gfits_read_Theader PROTO((char *, Header *)); 145 int gfits_read_table PROTO((char *, FTable *)); 146 int gfits_read_table PROTO((char *, FTable *)); 147 int gfits_write_Theader PROTO((char *, Header *header)); 148 int gfits_write_table PROTO((char *, FTable *)); 149 int gfits_fwrite_table PROTO((FILE *f, FTable *table)); 150 int gfits_fwrite_vtable PROTO((FILE *f, VTable *table)); 151 151 152 int fits_bintable_format PROTO((char *, char *, int *, int *));153 int fits_table_format PROTO((char *, char *, int *, int *));154 int fits_save_header PROTO((FILE *, Header *header));155 int fits_set_bintable_column PROTO((Header *header, FTable *table, char *, void *, int));156 int fits_set_table_column PROTO((Header *header, FTable *table, char *, void *, int));157 int fits_define_bintable_column PROTO((Header *header, char *, char *, char *, char *, double, double));158 int fits_define_table_column PROTO((Header *header, char *, char *, char *, char *));159 int fits_read_ftable PROTO((char *filename, FTable *table, char *extname));152 int gfits_bintable_format PROTO((char *, char *, int *, int *)); 153 int gfits_table_format PROTO((char *, char *, int *, int *)); 154 int gfits_save_header PROTO((FILE *, Header *header)); 155 int gfits_set_bintable_column PROTO((Header *header, FTable *table, char *, void *, int)); 156 int gfits_set_table_column PROTO((Header *header, FTable *table, char *, void *, int)); 157 int gfits_define_bintable_column PROTO((Header *header, char *, char *, char *, char *, double, double)); 158 int gfits_define_table_column PROTO((Header *header, char *, char *, char *, char *)); 159 int gfits_read_ftable PROTO((char *filename, FTable *table, char *extname)); 160 160 161 int fits_free_table PROTO((FTable *table));162 int fits_free_vtable PROTO((VTable *table));163 int fits_create_Theader PROTO((Header *header, char *type));161 int gfits_free_table PROTO((FTable *table)); 162 int gfits_free_vtable PROTO((VTable *table)); 163 int gfits_create_Theader PROTO((Header *header, char *type)); 164 164 165 165 /* prototyping demanded for these four -- could be a problem on non-ANSI comp comp */ 166 int fits_scan PROTO((Header *, char *, char *, int,...));167 int fits_print PROTO((Header *, char *, char *, int,...));168 int fits_modify PROTO((Header *, char *, char *, int,...));169 int fits_table_column PROTO((FTable *, char *, char *,...));170 int fits_table_column PROTO((FTable *table, char *, char *,...));166 int gfits_scan PROTO((Header *, char *, char *, int,...)); 167 int gfits_print PROTO((Header *, char *, char *, int,...)); 168 int gfits_modify PROTO((Header *, char *, char *, int,...)); 169 int gfits_table_column PROTO((FTable *, char *, char *,...)); 170 int gfits_table_column PROTO((FTable *table, char *, char *,...)); 171 171 172 char * fits_keyword_end PROTO((char *line));173 int fits_vscan PROTO((Header *header, char *field, char *mode, int N, va_list argp));174 int fits_scan PROTO((Header *header, char *field, char *mode, int N,...));175 int fits_stripwhite PROTO((char *string));176 int fits_matrix_size PROTO((Header *header));172 char *gfits_keyword_end PROTO((char *line)); 173 int gfits_vscan PROTO((Header *header, char *field, char *mode, int N, va_list argp)); 174 int gfits_scan PROTO((Header *header, char *field, char *mode, int N,...)); 175 int gfits_stripwhite PROTO((char *string)); 176 int gfits_matrix_size PROTO((Header *header)); 177 177 178 int fits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval));179 int fits_get_bintable_column PROTO((Header *header, FTable *table, char *label, void **data));180 int fits_get_table_column_type PROTO((Header *header, char *label, char *type));181 int fits_get_table_column PROTO((Header *header, FTable *table, char *label, void **data));178 int gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval)); 179 int gfits_get_bintable_column PROTO((Header *header, FTable *table, char *label, void **data)); 180 int gfits_get_table_column_type PROTO((Header *header, char *label, char *type)); 181 int gfits_get_table_column PROTO((Header *header, FTable *table, char *label, void **data)); 182 182 183 183 #endif /* FITSIO */ -
trunk/Ohana/src/libfits/matrix/F_add_M.c
r7039 r7054 3 3 4 4 /*********************** fits insert array ***********************************/ 5 void fits_add_matrix (matrix, array, x, y)5 void gfits_add_matrix (matrix, array, x, y) 6 6 Matrix *matrix, *array; 7 7 int x, y; … … 23 23 for (i = 0; i < array[0].Naxis[0]; i++) { 24 24 for (j = 0; j < array[0].Naxis[1]; j++) { 25 V = fits_get_matrix_value (array, i, j);26 V += fits_get_matrix_value (matrix, x + i, y + j);27 fits_set_matrix_value (matrix, x + i, y + j, V);25 V = gfits_get_matrix_value (array, i, j); 26 V += gfits_get_matrix_value (matrix, x + i, y + j); 27 gfits_set_matrix_value (matrix, x + i, y + j, V); 28 28 } 29 29 } -
trunk/Ohana/src/libfits/matrix/F_add_M_value.c
r7039 r7054 3 3 4 4 /***************** fits add matrix value ***********************************/ 5 void fits_add_matrix_value (matrix, x, y, Value)5 void gfits_add_matrix_value (matrix, x, y, Value) 6 6 Matrix *matrix; 7 7 int x, y; … … 11 11 double value; 12 12 13 value = fits_get_matrix_value (matrix, x, y);13 value = gfits_get_matrix_value (matrix, x, y); 14 14 value += Value; 15 fits_set_matrix_value (matrix, x, y, value);15 gfits_set_matrix_value (matrix, x, y, value); 16 16 17 17 } -
trunk/Ohana/src/libfits/matrix/F_convert_format.c
r7039 r7054 29 29 30 30 /*********************** fits convert format ***********************************/ 31 int fits_convert_format (Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign) {31 int gfits_convert_format (Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign) { 32 32 33 33 unsigned long i, nbytes, Npixels; … … 49 49 matrix[0].bzero = header[0].bzero = outZero; 50 50 matrix[0].unsign = header[0].unsign = outUnsign; 51 matrix[0].size = fits_matrix_size (header);52 fits_modify (header, "BITPIX", "%d", 1, outBitpix);53 fits_modify (header, "BSCALE", "%lf", 1, outScale);54 fits_modify (header, "BZERO", "%lf", 1, outZero);55 fits_modify (header, "UNSIGN", "%t", 1, outUnsign);51 matrix[0].size = gfits_matrix_size (header); 52 gfits_modify (header, "BITPIX", "%d", 1, outBitpix); 53 gfits_modify (header, "BSCALE", "%lf", 1, outScale); 54 gfits_modify (header, "BZERO", "%lf", 1, outZero); 55 gfits_modify (header, "UNSIGN", "%t", 1, outUnsign); 56 56 57 57 Npixels = header[0].Naxis[0]*header[0].Naxis[1]; -
trunk/Ohana/src/libfits/matrix/F_copy_M.c
r7039 r7054 3 3 4 4 /*********************** fits copy header ***********************************/ 5 int fits_copy_matrix (Matrix *matrix1, Matrix *matrix2) {5 int gfits_copy_matrix (Matrix *matrix1, Matrix *matrix2) { 6 6 7 7 int i; -
trunk/Ohana/src/libfits/matrix/F_create_M.c
r7039 r7054 3 3 4 4 /*********************** fits create matrix *******************************/ 5 int fits_create_matrix (header, matrix)5 int gfits_create_matrix (header, matrix) 6 6 Header *header; 7 7 Matrix *matrix; … … 18 18 matrix[0].Naxis[i] = header[0].Naxis[i]; 19 19 20 Nbytes = fits_matrix_size (header);20 Nbytes = gfits_matrix_size (header); 21 21 ALLOCATE (matrix[0].buffer, char, MAX (Nbytes, 1)); 22 22 bzero (matrix[0].buffer, Nbytes); -
trunk/Ohana/src/libfits/matrix/F_divide_M.c
r7039 r7054 3 3 4 4 /********************* fits divide matrix ***********************************/ 5 int fits_divide_matrix (Matrix *M1, Matrix *M2, Matrix *M3) {5 int gfits_divide_matrix (Matrix *M1, Matrix *M2, Matrix *M3) { 6 6 7 7 int i,j; … … 14 14 for (i = 0; i < M1[0].Naxis[0]; i++) { 15 15 for (j = 0; j < M1[0].Naxis[1]; j++) { 16 value = fits_get_matrix_value (M1, i, j);17 val2 = fits_get_matrix_value (M2, i, j);16 value = gfits_get_matrix_value (M1, i, j); 17 val2 = gfits_get_matrix_value (M2, i, j); 18 18 if (val2 != 0) 19 19 value = value / val2; 20 20 else 21 21 value = 0.0; 22 fits_set_matrix_value (M3, i, j, value);22 gfits_set_matrix_value (M3, i, j, value); 23 23 } 24 24 } -
trunk/Ohana/src/libfits/matrix/F_free_M.c
r7039 r7054 3 3 4 4 /*********************** fits free matrix ***********************************/ 5 void fits_free_matrix (Matrix *matrix) {5 void gfits_free_matrix (Matrix *matrix) { 6 6 7 7 if (matrix[0].buffer == (char *) NULL) return; -
trunk/Ohana/src/libfits/matrix/F_get_M_value.c
r7039 r7054 3 3 4 4 /***************** fits get matrix value ***********************************/ 5 double fits_get_matrix_value (matrix, x, y)5 double gfits_get_matrix_value (matrix, x, y) 6 6 Matrix *matrix; 7 7 int x, y; -
trunk/Ohana/src/libfits/matrix/F_insert_M.c
r7039 r7054 3 3 4 4 /*********************** fits insert array ***********************************/ 5 void fits_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 */ -
trunk/Ohana/src/libfits/matrix/F_load_M.c
r7039 r7054 2 2 # include <gfitsio.h> 3 3 4 int fits_fread_matrix (FILE *f, Matrix *matrix, Header *header) {4 int gfits_fread_matrix (FILE *f, Matrix *matrix, Header *header) { 5 5 6 6 int status; 7 7 8 status = fits_load_matrix (f, matrix, header);8 status = gfits_load_matrix (f, matrix, header); 9 9 return (status); 10 10 } 11 11 12 12 /*********************** fits read matrix ***********************************/ 13 int fits_load_matrix (FILE *f, Matrix *matrix, Header *header) {13 int gfits_load_matrix (FILE *f, Matrix *matrix, Header *header) { 14 14 15 15 int i, nbytes, Nbytes; … … 25 25 matrix[0].Naxis[i] = header[0].Naxis[i]; 26 26 27 Nbytes = fits_matrix_size (header);27 Nbytes = gfits_matrix_size (header); 28 28 ALLOCATE (matrix[0].buffer, char, Nbytes); 29 29 matrix[0].size = Nbytes; -
trunk/Ohana/src/libfits/matrix/F_matrix.c
r7039 r7054 2 2 # include <gfitsio.h> 3 3 4 int fits_matrix_size (Header *header) {4 int gfits_matrix_size (Header *header) { 5 5 6 6 int i, Nrec, size; -
trunk/Ohana/src/libfits/matrix/F_multiply_M.c
r7039 r7054 3 3 4 4 /******************* fits multiply matrix ***********************************/ 5 int fits_multiply_matrix (Matrix *M1, Matrix *M2, Matrix *M3) {5 int gfits_multiply_matrix (Matrix *M1, Matrix *M2, Matrix *M3) { 6 6 7 7 int i,j; … … 14 14 for (i = 0; i < M1[0].Naxis[0]; i++) { 15 15 for (j = 0; j < M1[0].Naxis[1]; j++) { 16 value = fits_get_matrix_value (M1, i, j);17 value *= fits_get_matrix_value (M2, i, j);18 fits_set_matrix_value (M3, i, j, value);16 value = gfits_get_matrix_value (M1, i, j); 17 value *= gfits_get_matrix_value (M2, i, j); 18 gfits_set_matrix_value (M3, i, j, value); 19 19 } 20 20 } -
trunk/Ohana/src/libfits/matrix/F_read_M.c
r7039 r7054 3 3 4 4 /*********************** fits read matrix ***********************************/ 5 int fits_read_matrix (char *filename, Matrix *matrix) {5 int gfits_read_matrix (char *filename, Matrix *matrix) { 6 6 7 7 FILE *f; … … 9 9 int status; 10 10 11 status = fits_read_header (filename, &header);11 status = gfits_read_header (filename, &header); 12 12 if (!status) { 13 13 fprintf (stderr, "error reading header of FITS file %s\n", filename); … … 20 20 fseek (f, header.size, 0); 21 21 22 status = fits_load_matrix (f, matrix, &header);22 status = gfits_load_matrix (f, matrix, &header); 23 23 24 24 fclose (f); -
trunk/Ohana/src/libfits/matrix/F_read_portion.c
r7039 r7054 9 9 /*********************** fits read matrix ***********************************/ 10 10 /** the result of this function is a matrix with dimension Npix * 1 **/ 11 int fits_read_portion (char *filename, Matrix *matrix, int Nskip, int Npix) {11 int gfits_read_portion (char *filename, Matrix *matrix, int Nskip, int Npix) { 12 12 13 13 FILE *f; … … 17 17 int perpix; 18 18 19 status = fits_read_header (filename, &header);19 status = gfits_read_header (filename, &header); 20 20 if (!status) { 21 21 fprintf (stderr, "error reading header of FITS file %s\n", filename); … … 96 96 # endif 97 97 98 fits_free_header (&header);98 gfits_free_header (&header); 99 99 100 100 if (nbytes < Nbytes - 2880) { /* this is a bad FITS error: image is not OK */ -
trunk/Ohana/src/libfits/matrix/F_read_segment.c
r7039 r7054 6 6 7 7 /*********************** fits read matrix ***********************************/ 8 int fits_read_segment (char *filename, Matrix *matrix, char *region) {8 int gfits_read_segment (char *filename, Matrix *matrix, char *region) { 9 9 10 10 FILE *f; … … 16 16 int perpix; 17 17 18 status = fits_read_header (filename, &header);18 status = gfits_read_header (filename, &header); 19 19 if (!status) { 20 20 fprintf (stderr, "error reading header of FITS file %s\n", filename); … … 128 128 # endif 129 129 130 fits_free_header (&header);130 gfits_free_header (&header); 131 131 132 132 if (nbytes < Nbytes - 2880) { /* this is a bad FITS error: image is not OK */ -
trunk/Ohana/src/libfits/matrix/F_set_M_value.c
r7039 r7054 3 3 4 4 /****************** fits set matrix value ***********************************/ 5 void fits_set_matrix_value (matrix, x, y, Value)5 void gfits_set_matrix_value (matrix, x, y, Value) 6 6 Matrix *matrix; 7 7 int x, y; -
trunk/Ohana/src/libfits/matrix/F_write_M.c
r7039 r7054 3 3 4 4 /*********************** fits write matrix ***********************************/ 5 int fits_write_matrix (char *filename, Matrix *matrix) {5 int gfits_write_matrix (char *filename, Matrix *matrix) { 6 6 7 7 FILE *f; … … 13 13 fseek (f, 0, SEEK_END); /* write matrix to end of file! */ 14 14 15 status = fits_fwrite_matrix (f, matrix);15 status = gfits_fwrite_matrix (f, matrix); 16 16 fclose (f); 17 17 return (status); … … 19 19 20 20 /*********************** fits write matrix ***********************************/ 21 int fits_fwrite_matrix (FILE *f, Matrix *matrix) {21 int gfits_fwrite_matrix (FILE *f, Matrix *matrix) { 22 22 23 23 int i, status, nbytes, Nbytes; -
trunk/Ohana/src/libfits/table/F_create_T.c
r7039 r7054 3 3 4 4 /*********************** fits create table *******************************/ 5 int fits_create_table (Header *header, FTable *table) {5 int gfits_create_table (Header *header, FTable *table) { 6 6 7 7 int Nbytes; 8 8 char type[80]; 9 9 10 fits_scan (header, "XTENSION", "%s", 1, type);10 gfits_scan (header, "XTENSION", "%s", 1, type); 11 11 12 12 table[0].header = header; 13 13 14 Nbytes = fits_matrix_size (header);14 Nbytes = gfits_matrix_size (header); 15 15 ALLOCATE (table[0].buffer, char, MAX (Nbytes, 1)); 16 16 if (!strcmp (type, "TABLE")) { … … 27 27 28 28 /*********************** fits create table *******************************/ 29 int fits_create_vtable (Header *header, VTable *table, int Nrow) {29 int gfits_create_vtable (Header *header, VTable *table, int Nrow) { 30 30 31 31 int i, Nx, Ny; 32 32 char type[80]; 33 33 34 fits_scan (header, "XTENSION", "%s", 1, type);34 gfits_scan (header, "XTENSION", "%s", 1, type); 35 35 36 36 table[0].header = header; 37 37 Nx = table[0].header[0].Naxis[0]; 38 38 Ny = table[0].header[0].Naxis[0]; 39 table[0].size = fits_matrix_size (header);39 table[0].size = gfits_matrix_size (header); 40 40 table[0].pad = table[0].size - Nx*Ny; 41 41 -
trunk/Ohana/src/libfits/table/F_create_TH.c
r7039 r7054 7 7 8 8 /*********************** fits create Theader *********************************/ 9 int fits_create_Theader (Header *header, char *type) {9 int gfits_create_Theader (Header *header, char *type) { 10 10 11 11 int i; … … 19 19 strncpy (header[0].buffer, "END", 3); 20 20 21 fits_modify (header, "XTENSION", "%s", 1, type);22 fits_modify (header, "BITPIX", "%d", 1, header[0].bitpix);23 fits_modify (header, "NAXIS", "%d", 1, header[0].Naxes);21 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 24 25 25 for (i = 0; i < header[0].Naxes; i++) { 26 26 sprintf (axis, "NAXIS%d", i + 1); 27 fits_modify (header, axis, "%d", 1, header[0].Naxis[i], 1);27 gfits_modify (header, axis, "%d", 1, header[0].Naxis[i], 1); 28 28 } 29 29 30 30 /* PCOUNT & GCOUNT are not implemented, but they are required to be here */ 31 fits_modify (header, "PCOUNT", "%d", 1, 0);32 fits_modify (header, "GCOUNT", "%d", 1, 1);31 gfits_modify (header, "PCOUNT", "%d", 1, 0); 32 gfits_modify (header, "GCOUNT", "%d", 1, 1); 33 33 if (!strcmp (type, "IMAGE")) { 34 fits_modify (header, "BSCALE", "%lf", 1, header[0].bscale);35 fits_modify (header, "BZERO", "%lf", 1, header[0].bzero);34 gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale); 35 gfits_modify (header, "BZERO", "%lf", 1, header[0].bzero); 36 36 } 37 37 … … 40 40 41 41 /*********************** fits create table header *********************************/ 42 int fits_create_table_header (Header *header, char *type, char *extname) {42 int gfits_create_table_header (Header *header, char *type, char *extname) { 43 43 44 44 int i, valid; … … 71 71 72 72 /* required keywords */ 73 fits_modify (header, "XTENSION", "%s", 1, type);74 fits_modify (header, "BITPIX", "%d", 1, header[0].bitpix);75 fits_modify (header, "NAXIS", "%d", 1, header[0].Naxes);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 76 77 77 for (i = 0; i < header[0].Naxes; i++) { 78 78 sprintf (axis, "NAXIS%d", i + 1); 79 fits_modify (header, axis, "%d", 1, header[0].Naxis[i], 1);79 gfits_modify (header, axis, "%d", 1, header[0].Naxis[i], 1); 80 80 } 81 81 82 82 /* PCOUNT & GCOUNT are not implemented, but they are required to be here */ 83 fits_modify (header, "PCOUNT", "%d", 1, 0);84 fits_modify (header, "GCOUNT", "%d", 1, 1);83 gfits_modify (header, "PCOUNT", "%d", 1, 0); 84 gfits_modify (header, "GCOUNT", "%d", 1, 1); 85 85 if (!strcmp (type, "IMAGE")) { 86 fits_modify (header, "BSCALE", "%lf", 1, header[0].bscale);87 fits_modify (header, "BZERO", "%lf", 1, header[0].bzero);86 gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale); 87 gfits_modify (header, "BZERO", "%lf", 1, header[0].bzero); 88 88 } 89 89 90 fits_modify (header, "TFIELDS", "%d", 1, 0);91 fits_modify (header, "EXTNAME", "%s", 1, extname);90 gfits_modify (header, "TFIELDS", "%d", 1, 0); 91 gfits_modify (header, "EXTNAME", "%s", 1, extname); 92 92 93 93 return (TRUE); -
trunk/Ohana/src/libfits/table/F_define_column.c
r7039 r7054 3 3 4 4 /***********************/ 5 int fits_define_bintable_column (Header *header, char *format, char *label, char *comment, char *unit, double bscale, double bzero) {5 int gfits_define_bintable_column (Header *header, char *format, char *label, char *comment, char *unit, double bscale, double bzero) { 6 6 7 7 int Nfields, Nbytes, Nval, Naxis1; 8 8 char type[16], field[16]; 9 9 10 if (! fits_bintable_format (format, type, &Nval, &Nbytes)) return (FALSE);10 if (!gfits_bintable_format (format, type, &Nval, &Nbytes)) return (FALSE); 11 11 12 12 Nfields = 0; 13 fits_scan (header, "TFIELDS", "%d", 1, &Nfields);14 fits_scan (header, "NAXIS1", "%d", 1, &Naxis1);13 gfits_scan (header, "TFIELDS", "%d", 1, &Nfields); 14 gfits_scan (header, "NAXIS1", "%d", 1, &Naxis1); 15 15 Nfields ++; 16 16 Naxis1 += Nbytes*Nval; 17 17 18 18 sprintf (field, "TTYPE%d", Nfields); 19 fits_modify (header, field, "%s", 1, label);20 fits_modify (header, field, "%C", 1, comment);19 gfits_modify (header, field, "%s", 1, label); 20 gfits_modify (header, field, "%C", 1, comment); 21 21 sprintf (field, "TUNIT%d", Nfields); 22 fits_modify (header, field, "%s", 1, unit);22 gfits_modify (header, field, "%s", 1, unit); 23 23 sprintf (field, "TFORM%d", Nfields); 24 fits_modify (header, field, "%s", 1, format);24 gfits_modify (header, field, "%s", 1, format); 25 25 sprintf (field, "TSCAL%d", Nfields); 26 fits_modify (header, field, "%lf", 1, bscale);26 gfits_modify (header, field, "%lf", 1, bscale); 27 27 sprintf (field, "TZERO%d", Nfields); 28 fits_modify (header, field, "%lf", 1, bzero);28 gfits_modify (header, field, "%lf", 1, bzero); 29 29 30 30 /* update TFIELDS & NAXIS1 */ 31 fits_modify (header, "TFIELDS", "%d", 1, Nfields);32 fits_modify (header, "NAXIS1", "%d", 1, Naxis1);31 gfits_modify (header, "TFIELDS", "%d", 1, Nfields); 32 gfits_modify (header, "NAXIS1", "%d", 1, Naxis1); 33 33 header[0].Naxis[0] = Naxis1; 34 34 … … 37 37 38 38 /***********************/ 39 int fits_define_table_column (Header *header, char *format, char *label, char *comment, char *unit) {39 int gfits_define_table_column (Header *header, char *format, char *label, char *comment, char *unit) { 40 40 41 41 int Nstart, Nfields, Nbytes, Nval, Naxis1; … … 43 43 44 44 strcpy (cformat, format); 45 if (! fits_table_format (cformat, type, &Nval, &Nbytes)) return (FALSE);45 if (!gfits_table_format (cformat, type, &Nval, &Nbytes)) return (FALSE); 46 46 47 47 Nfields = 0; 48 fits_scan (header, "TFIELDS", "%d", 1, &Nfields);49 fits_scan (header, "NAXIS1", "%d", 1, &Naxis1);48 gfits_scan (header, "TFIELDS", "%d", 1, &Nfields); 49 gfits_scan (header, "NAXIS1", "%d", 1, &Naxis1); 50 50 Nstart = Naxis1 + 1; 51 51 Nfields ++; … … 53 53 54 54 sprintf (field, "TTYPE%d", Nfields); 55 fits_modify (header, field, "%s", 1, label);56 fits_modify (header, field, "%C", 1, comment);55 gfits_modify (header, field, "%s", 1, label); 56 gfits_modify (header, field, "%C", 1, comment); 57 57 sprintf (field, "TUNIT%d", Nfields); 58 fits_modify (header, field, "%s", 1, unit);58 gfits_modify (header, field, "%s", 1, unit); 59 59 sprintf (field, "TFORM%d", Nfields); 60 fits_modify (header, field, "%s", 1, format);60 gfits_modify (header, field, "%s", 1, format); 61 61 62 62 sprintf (field, "TBCOL%d", Nfields); 63 fits_modify (header, field, "%d", 1, Nstart);63 gfits_modify (header, field, "%d", 1, Nstart); 64 64 65 fits_modify (header, "TFIELDS", "%d", 1, Nfields);66 fits_modify (header, "NAXIS1", "%d", 1, Naxis1);65 gfits_modify (header, "TFIELDS", "%d", 1, Nfields); 66 gfits_modify (header, "NAXIS1", "%d", 1, Naxis1); 67 67 header[0].Naxis[0] = Naxis1; 68 68 -
trunk/Ohana/src/libfits/table/F_free_T.c
r7039 r7054 2 2 # include <gfitsio.h> 3 3 4 int fits_free_table (FTable *table) {4 int gfits_free_table (FTable *table) { 5 5 6 6 if (table[0].buffer == (char *) NULL) return (TRUE); … … 10 10 } 11 11 12 int fits_free_vtable (VTable *table) {12 int gfits_free_vtable (VTable *table) { 13 13 14 14 int i; -
trunk/Ohana/src/libfits/table/F_get_T_column.c
r7039 r7054 3 3 4 4 /*********************** fits get table column *****************************/ 5 void fits_get_table_column (table, X, mode, values)5 void gfits_get_table_column (table, X, mode, values) 6 6 Table *table; 7 7 int X; … … 23 23 24 24 sprintf (field, "TBCOL%d\0", X); 25 fits_scan (&table[0].header, field, "%d", &start, 1);25 gfits_scan (&table[0].header, field, "%d", &start, 1); 26 26 start --; 27 27 sprintf (field, "TFORM%d\0", X); 28 fits_scan (&table[0].header, field, "%s", Tform, 1);28 gfits_scan (&table[0].header, field, "%s", Tform, 1); 29 29 Nchar = atof (&Tform[1]); 30 30 -
trunk/Ohana/src/libfits/table/F_get_T_value.c
r7039 r7054 4 4 /*********************** fits get table value ********************************/ 5 5 6 void fits_get_table_value (table, X, Y, mode, value)6 void gfits_get_table_value (table, X, Y, mode, value) 7 7 Table *table; 8 8 int X, Y; … … 17 17 18 18 sprintf (field, "TBCOL%d\0", X); 19 fits_scan (&table[0].header, field, "%d", &start, 1);19 gfits_scan (&table[0].header, field, "%d", &start, 1); 20 20 start --; 21 21 22 22 sprintf (field, "TFORM%d\0", X); 23 fits_scan (&table[0].header, field, "%s", Tform, 1);23 gfits_scan (&table[0].header, field, "%s", Tform, 1); 24 24 Nchar = atof (&Tform[1]); 25 25 -
trunk/Ohana/src/libfits/table/F_get_column.c
r7039 r7054 13 13 14 14 /***********************/ 15 int fits_get_bintable_column_type (Header *header, char *label, char *type, int *Nval) {15 int gfits_get_bintable_column_type (Header *header, char *label, char *type, int *Nval) { 16 16 17 17 int i, N, Nfields, Nbytes; … … 23 23 /* find label in header */ 24 24 tlabel[0] = 0; 25 fits_scan (header, "TFIELDS", "%d", 1, &Nfields);26 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 27 sprintf (field, "TTYPE%d", i); 28 fits_scan (header, field, "%s", 1, tlabel);29 } 30 if (strcmp (label, tlabel)) return (FALSE); 31 N = i - 1; 32 33 sprintf (field, "TFORM%d", N); 34 fits_scan (header, field, "%s", 1, format);35 36 if (! fits_bintable_format (format, type, Nval, &Nbytes)) return (FALSE);37 return (TRUE); 38 } 39 40 /***********************/ 41 int fits_get_bintable_column (Header *header, FTable *table, char *label, void **data) {25 gfits_scan (header, "TFIELDS", "%d", 1, &Nfields); 26 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 27 sprintf (field, "TTYPE%d", i); 28 gfits_scan (header, field, "%s", 1, tlabel); 29 } 30 if (strcmp (label, tlabel)) return (FALSE); 31 N = i - 1; 32 33 sprintf (field, "TFORM%d", N); 34 gfits_scan (header, field, "%s", 1, format); 35 36 if (!gfits_bintable_format (format, type, Nval, &Nbytes)) return (FALSE); 37 return (TRUE); 38 } 39 40 /***********************/ 41 int gfits_get_bintable_column (Header *header, FTable *table, char *label, void **data) { 42 42 43 43 int i, N, Nfields, Nval, Nbytes, Nx, Ny, Nstart, Nv, Nb; … … 52 52 /* find label in header */ 53 53 tlabel[0] = 0; 54 fits_scan (header, "TFIELDS", "%d", 1, &Nfields);55 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 56 sprintf (field, "TTYPE%d", i); 57 fits_scan (header, field, "%s", 1, tlabel);54 gfits_scan (header, "TFIELDS", "%d", 1, &Nfields); 55 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 56 sprintf (field, "TTYPE%d", i); 57 gfits_scan (header, field, "%s", 1, tlabel); 58 58 } 59 59 if (strcmp (label, tlabel)) return (FALSE); … … 65 65 /* interpret format */ 66 66 sprintf (field, "TSCAL%d", Nfields); 67 fits_scan (header, field, "%lf", 1, &Bscale);67 gfits_scan (header, field, "%lf", 1, &Bscale); 68 68 sprintf (field, "TZERO%d", Nfields); 69 fits_scan (header, field, "%lf", 1, &Bzero);70 sprintf (field, "TFORM%d", N); 71 fits_scan (header, field, "%s", 1, format);72 73 if (! fits_bintable_format (format, type, &Nval, &Nbytes)) return (FALSE);69 gfits_scan (header, field, "%lf", 1, &Bzero); 70 sprintf (field, "TFORM%d", N); 71 gfits_scan (header, field, "%s", 1, format); 72 73 if (!gfits_bintable_format (format, type, &Nval, &Nbytes)) return (FALSE); 74 74 75 75 /* check existing table dimensions */ 76 fits_scan (header, "NAXIS1", "%d", 1, &Nx);77 fits_scan (header, "NAXIS2", "%d", 1, &Ny);76 gfits_scan (header, "NAXIS1", "%d", 1, &Nx); 77 gfits_scan (header, "NAXIS2", "%d", 1, &Ny); 78 78 79 79 /* scan columns to find insert point */ … … 81 81 for (i = 1; i < N; i++) { 82 82 sprintf (field, "TFORM%d", i); 83 fits_scan (header, field, "%s", 1, format);84 fits_bintable_format (format, tmpline, &Nv, &Nb);83 gfits_scan (header, field, "%s", 1, format); 84 gfits_bintable_format (format, tmpline, &Nv, &Nb); 85 85 Nstart += Nv*Nb; 86 86 } … … 163 163 164 164 /***********************/ 165 int fits_get_table_column_type (Header *header, char *label, char *type) {165 int gfits_get_table_column_type (Header *header, char *label, char *type) { 166 166 167 167 int i, N, Nfields, Nval, Nbytes; … … 173 173 /* find label in header */ 174 174 tlabel[0] = 0; 175 fits_scan (header, "TFIELDS", "%d", 1, &Nfields);176 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 177 sprintf (field, "TTYPE%d", i); 178 fits_scan (header, field, "%s", 1, tlabel);175 gfits_scan (header, "TFIELDS", "%d", 1, &Nfields); 176 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 177 sprintf (field, "TTYPE%d", i); 178 gfits_scan (header, field, "%s", 1, tlabel); 179 179 } 180 180 if (strcmp (label, tlabel)) return (FALSE); … … 183 183 /* interpret format */ 184 184 sprintf (field, "TFORM%d", N); 185 fits_scan (header, field, "%s", 1, format);186 187 if (! fits_table_format (format, type, &Nval, &Nbytes)) return (FALSE);188 return (TRUE); 189 } 190 191 /***********************/ 192 int fits_get_table_column (Header *header, FTable *table, char *label, void **data) {185 gfits_scan (header, field, "%s", 1, format); 186 187 if (!gfits_table_format (format, type, &Nval, &Nbytes)) return (FALSE); 188 return (TRUE); 189 } 190 191 /***********************/ 192 int gfits_get_table_column (Header *header, FTable *table, char *label, void **data) { 193 193 194 194 int i, N, Nfields, Nval, Nbytes, Nx, Ny, Nstart, Nv, Nb; … … 202 202 /* find label in header */ 203 203 tlabel[0] = 0; 204 fits_scan (header, "TFIELDS", "%d", 1, &Nfields);205 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 206 sprintf (field, "TTYPE%d", i); 207 fits_scan (header, field, "%s", 1, tlabel);204 gfits_scan (header, "TFIELDS", "%d", 1, &Nfields); 205 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 206 sprintf (field, "TTYPE%d", i); 207 gfits_scan (header, field, "%s", 1, tlabel); 208 208 } 209 209 if (strcmp (label, tlabel)) return (FALSE); … … 212 212 /* interpret format */ 213 213 sprintf (field, "TFORM%d", N); 214 fits_scan (header, field, "%s", 1, format);215 216 if (! fits_table_format (format, type, &Nval, &Nbytes)) return (FALSE);214 gfits_scan (header, field, "%s", 1, format); 215 216 if (!gfits_table_format (format, type, &Nval, &Nbytes)) return (FALSE); 217 217 strcpy (cformat, format); 218 218 219 219 /* check existing table dimensions */ 220 fits_scan (header, "NAXIS1", "%d", 1, &Nx);221 fits_scan (header, "NAXIS2", "%d", 1, &Ny);220 gfits_scan (header, "NAXIS1", "%d", 1, &Nx); 221 gfits_scan (header, "NAXIS2", "%d", 1, &Ny); 222 222 223 223 /* scan columns to find insert point */ … … 225 225 for (i = 1; i < N; i++) { 226 226 sprintf (field, "TFORM%d", i); 227 fits_scan (header, field, "%s", 1, format);228 fits_table_format (format, tmp, &Nv, &Nb);227 gfits_scan (header, field, "%s", 1, format); 228 gfits_table_format (format, tmp, &Nv, &Nb); 229 229 Nstart += Nv*Nb; 230 230 } -
trunk/Ohana/src/libfits/table/F_read_T.c
r7039 r7054 3 3 4 4 /*********************** fits read table ***********************************/ 5 int fits_read_ftable (char *filename, FTable *table, char *extname) {5 int gfits_read_ftable (char *filename, FTable *table, char *extname) { 6 6 7 7 int status; … … 11 11 if (f == NULL) return (FALSE); 12 12 13 status = fits_fread_ftable (f, table, extname);13 status = gfits_fread_ftable (f, table, extname); 14 14 fclose (f); 15 15 return (status); … … 17 17 18 18 /*********************** fits read table ***********************************/ 19 int fits_fread_ftable (FILE *f, FTable *table, char *extname) {19 int gfits_fread_ftable (FILE *f, FTable *table, char *extname) { 20 20 21 21 int j, found, Nbytes; … … 29 29 for (j = -1; !found; j++) { 30 30 /* load data for this header */ 31 if (! fits_load_header (f, header)) return (FALSE);31 if (!gfits_load_header (f, header)) return (FALSE); 32 32 33 33 /* check if this is the correct extension or not */ 34 34 bzero (tname, 80); 35 fits_scan (header, "EXTNAME", "%s", 1, tname);35 gfits_scan (header, "EXTNAME", "%s", 1, tname); 36 36 if (!strcmp (tname, extname)) { 37 if ( fits_fread_ftable_data (f, table)) return (TRUE);38 fits_free_header (header);37 if (gfits_fread_ftable_data (f, table)) return (TRUE); 38 gfits_free_header (header); 39 39 return (FALSE); 40 40 } 41 41 42 42 /* skip to next header */ 43 Nbytes = fits_matrix_size (header);43 Nbytes = gfits_matrix_size (header); 44 44 fseek (f, Nbytes, SEEK_CUR); 45 fits_free_header (header);45 gfits_free_header (header); 46 46 } 47 47 return (TRUE); … … 49 49 50 50 /*********************** fits read ftable data ***********************************/ 51 int fits_fread_ftable_data (FILE *f, FTable *table) {51 int gfits_fread_ftable_data (FILE *f, FTable *table) { 52 52 53 53 int Nbytes, Nread; 54 54 55 55 /* find buffer size */ 56 Nbytes = fits_matrix_size (table[0].header);56 Nbytes = gfits_matrix_size (table[0].header); 57 57 ALLOCATE (table[0].buffer, char, Nbytes); 58 58 59 59 Nread = fread (table[0].buffer, sizeof (char), Nbytes, f); 60 60 if (Nread != Nbytes) { 61 fits_free_table (table);61 gfits_free_table (table); 62 62 return (FALSE); 63 63 } … … 67 67 68 68 /*********************** fits read ftable data ***********************************/ 69 int fits_fread_vtable_range (FILE *f, VTable *table, int start, int Nrows) {69 int gfits_fread_vtable_range (FILE *f, VTable *table, int start, int Nrows) { 70 70 71 71 int i, Nbytes, Nread, Nskip, Nx, Ny; … … 75 75 Nx = table[0].header[0].Naxis[0]; 76 76 Ny = table[0].header[0].Naxis[1]; 77 table[0].size = fits_matrix_size (table[0].header);77 table[0].size = gfits_matrix_size (table[0].header); 78 78 table[0].pad = table[0].size - Nx*Ny; 79 79 … … 105 105 106 106 /*********************** fits read virtual table ***********************************/ 107 int fits_fread_vtable (FILE *f, VTable *table, char *extname, int Nrow, int *row) {107 int gfits_fread_vtable (FILE *f, VTable *table, char *extname, int Nrow, int *row) { 108 108 109 109 int i, j, Nbytes, Nread; … … 117 117 for (j = -1; TRUE; j++) { 118 118 /* load data for this header */ 119 if (! fits_load_header (f, header)) return (FALSE);119 if (!gfits_load_header (f, header)) return (FALSE); 120 120 121 121 /* find buffer size */ 122 Nbytes = fits_matrix_size (header);122 Nbytes = gfits_matrix_size (header); 123 123 124 124 /* check if this is the correct extension or not */ 125 125 bzero (tname, 80); 126 fits_scan (header, "EXTNAME", "%s", 1, tname);126 gfits_scan (header, "EXTNAME", "%s", 1, tname); 127 127 if (strcmp (tname, extname)) { 128 128 /* skip to next header */ 129 129 fseek (f, Nbytes, SEEK_CUR); 130 fits_free_header (header);130 gfits_free_header (header); 131 131 continue; 132 132 } … … 134 134 /* file pointer is at beginning of desired table data */ 135 135 start = ftell (f); 136 fits_scan (header, "NAXIS1", "%d", 1, &Nx);137 fits_scan (header, "NAXIS2", "%d", 1, &Ny);136 gfits_scan (header, "NAXIS1", "%d", 1, &Nx); 137 gfits_scan (header, "NAXIS2", "%d", 1, &Ny); 138 138 for (i = 0; i < Nrow; i++) { 139 139 if (row[i] > Ny) { return (FALSE); } … … 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 = fits_matrix_size (table[0].header);154 table[0].size = gfits_matrix_size (table[0].header); 155 155 table[0].pad = table[0].size - Nx*Ny; 156 156 return (TRUE); … … 162 162 /* a poor function: read only the first table, regardless of name */ 163 163 /* keep until we are sure ohana code does not use it */ 164 int fits_read_table (char *filename, FTable *table) {164 int gfits_read_table (char *filename, FTable *table) { 165 165 166 166 FILE *f; … … 168 168 int status, i, nbytes, Nbytes, matrix_size; 169 169 170 if (! fits_read_header (filename, &header)) {170 if (!gfits_read_header (filename, &header)) { 171 171 fprintf (stderr, "error reading header of FITS file %s\n", filename); 172 172 return (FALSE); 173 173 } 174 174 175 if (! fits_read_Theader (filename, &table[0].header)) {175 if (!gfits_read_Theader (filename, &table[0].header)) { 176 176 fprintf (stderr, "error reading Theader of FITS file %s\n", filename); 177 177 return (FALSE); … … 179 179 180 180 if ((f = fopen (filename, "r")) == NULL) { 181 fits_free_header (&header);182 fits_free_header (&table[0].header);183 return (FALSE); 184 } 185 186 matrix_size = fits_matrix_size (&header);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 187 188 188 Nbytes = header.size + matrix_size + table[0].header.size; 189 189 fseek (f, Nbytes, 0); 190 fits_free_header (&header);190 gfits_free_header (&header); 191 191 192 fits_scan (&table[0].header, "TFIELDS", "%d", 1, &table[0].Nfields);192 gfits_scan (&table[0].header, "TFIELDS", "%d", 1, &table[0].Nfields); 193 193 194 194 /* place the field sizes in the structure? */ … … 198 198 table[0].Naxis[i] = table[0].header.Naxis[i]; 199 199 200 Nbytes = fits_matrix_size (&table[0].header);200 Nbytes = gfits_matrix_size (&table[0].header); 201 201 ALLOCATE (table[0].buffer, char, Nbytes); 202 202 nbytes = fread (table[0].buffer, sizeof(char), Nbytes, f); … … 213 213 214 214 215 int fits_fread_header_extname (FILE *f, Header *header, char *extname) {215 int gfits_fread_header_extname (FILE *f, Header *header, char *extname) { 216 216 217 217 int Nbytes; … … 219 219 220 220 fseek (f, 0, SEEK_SET); 221 fits_fread_header (f, header);221 gfits_fread_header (f, header); 222 222 223 223 if (!strcasecmp (extname, "PHU")) return (TRUE); 224 224 225 Nbytes = fits_matrix_size (header);225 Nbytes = gfits_matrix_size (header); 226 226 fseek (f, Nbytes, SEEK_CUR); 227 227 228 while ( fits_fread_header (f, header)) {229 fits_scan (header, "EXTNAME", "%s", 1, current);228 while (gfits_fread_header (f, header)) { 229 gfits_scan (header, "EXTNAME", "%s", 1, current); 230 230 if (!strcmp (current, extname)) return (TRUE); 231 Nbytes = fits_matrix_size (header);231 Nbytes = gfits_matrix_size (header); 232 232 fseek (f, Nbytes, SEEK_CUR); 233 233 } -
trunk/Ohana/src/libfits/table/F_read_TH.c
r7039 r7054 3 3 4 4 /*********************** fits read Theader ***********************************/ 5 int fits_read_Theader (char *filename, Header *Theader) {5 int gfits_read_Theader (char *filename, Header *Theader) { 6 6 7 7 FILE *f; … … 9 9 int status, Nbytes; 10 10 11 status = fits_read_header (filename, &header);11 status = gfits_read_header (filename, &header); 12 12 if (!status) { 13 13 fprintf (stderr, "error reading header of FITS file %s\n", filename); … … 18 18 if (f == NULL) { 19 19 Theader[0].buffer = NULL; 20 fits_free_header (&header);20 gfits_free_header (&header); 21 21 return (FALSE); 22 22 } 23 23 24 Nbytes = fits_matrix_size (&header);24 Nbytes = gfits_matrix_size (&header); 25 25 fseek (f, Nbytes, SEEK_SET); 26 fits_free_header (&header);26 gfits_free_header (&header); 27 27 28 status = fits_load_Theader (f, Theader);28 status = gfits_load_Theader (f, Theader); 29 29 fclose (f); 30 30 return (status); … … 33 33 /* load table from STREAM positioned at beginning of table header */ 34 34 /*********************** fits load Theader ***********************************/ 35 int fits_load_Theader (FILE *f, Header *Theader) {35 int gfits_load_Theader (FILE *f, Header *Theader) { 36 36 37 37 char *p; … … 49 49 if (Nbytes != FT_RECORD_SIZE) 50 50 done = TRUE; 51 p = fits_header_field (Theader, "END", 1);51 p = gfits_header_field (Theader, "END", 1); 52 52 if (p != NULL) 53 53 done = TRUE; … … 60 60 61 61 status = TRUE; 62 status &= fits_scan (Theader, "BITPIX", "%d", 1, &Theader[0].bitpix);63 status &= fits_scan (Theader, "NAXIS", "%d", 1, &Theader[0].Naxes);62 status &= gfits_scan (Theader, "BITPIX", "%d", 1, &Theader[0].bitpix); 63 status &= gfits_scan (Theader, "NAXIS", "%d", 1, &Theader[0].Naxes); 64 64 if (!status) return (FALSE); 65 65 66 fits_scan (Theader, "NAXIS1", "%d", 1, &Theader[0].Naxis[0]);67 fits_scan (Theader, "NAXIS2", "%d", 1, &Theader[0].Naxis[1]);68 fits_scan (Theader, "NAXIS3", "%d", 1, &Theader[0].Naxis[2]);69 fits_scan (Theader, "NAXIS4", "%d", 1, &Theader[0].Naxis[3]);70 fits_scan (Theader, "NAXIS5", "%d", 1, &Theader[0].Naxis[4]);71 fits_scan (Theader, "NAXIS6", "%d", 1, &Theader[0].Naxis[5]);72 fits_scan (Theader, "NAXIS7", "%d", 1, &Theader[0].Naxis[6]);73 fits_scan (Theader, "NAXIS8", "%d", 1, &Theader[0].Naxis[7]);74 fits_scan (Theader, "NAXIS9", "%d", 1, &Theader[0].Naxis[8]);75 fits_scan (Theader, "NAXIS10", "%d", 1, &Theader[0].Naxis[9]);66 gfits_scan (Theader, "NAXIS1", "%d", 1, &Theader[0].Naxis[0]); 67 gfits_scan (Theader, "NAXIS2", "%d", 1, &Theader[0].Naxis[1]); 68 gfits_scan (Theader, "NAXIS3", "%d", 1, &Theader[0].Naxis[2]); 69 gfits_scan (Theader, "NAXIS4", "%d", 1, &Theader[0].Naxis[3]); 70 gfits_scan (Theader, "NAXIS5", "%d", 1, &Theader[0].Naxis[4]); 71 gfits_scan (Theader, "NAXIS6", "%d", 1, &Theader[0].Naxis[5]); 72 gfits_scan (Theader, "NAXIS7", "%d", 1, &Theader[0].Naxis[6]); 73 gfits_scan (Theader, "NAXIS8", "%d", 1, &Theader[0].Naxis[7]); 74 gfits_scan (Theader, "NAXIS9", "%d", 1, &Theader[0].Naxis[8]); 75 gfits_scan (Theader, "NAXIS10", "%d", 1, &Theader[0].Naxis[9]); 76 76 77 77 return (TRUE); … … 79 79 80 80 /*********************** fits fread Theader ***********************************/ 81 int fits_fread_Theader (FILE *f, Header *Theader) {81 int gfits_fread_Theader (FILE *f, Header *Theader) { 82 82 83 83 int status; 84 84 85 status = fits_load_Theader (f, Theader);85 status = gfits_load_Theader (f, Theader); 86 86 return (status); 87 87 } -
trunk/Ohana/src/libfits/table/F_set_column.c
r7039 r7054 13 13 14 14 /***********************/ 15 int fits_set_bintable_column (Header *header, FTable *table, char *label, void *data, int Nrow) {15 int gfits_set_bintable_column (Header *header, FTable *table, char *label, void *data, int Nrow) { 16 16 17 17 int i, N, Nfields, Nval, Nbytes, Nx, Ny, nbytes, Nstart, Nv, Nb; … … 26 26 /* find label in header */ 27 27 tlabel[0] = 0; 28 fits_scan (header, "TFIELDS", "%d", 1, &Nfields);28 gfits_scan (header, "TFIELDS", "%d", 1, &Nfields); 29 29 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 30 30 sprintf (field, "TTYPE%d", i); 31 fits_scan (header, field, "%s", 1, tlabel);31 gfits_scan (header, field, "%s", 1, tlabel); 32 32 } 33 33 if (strcmp (label, tlabel)) return (FALSE); … … 36 36 /* interpret format */ 37 37 sprintf (field, "TSCAL%d", N); 38 fits_scan (header, field, "%lf", 1, &Bscale);38 gfits_scan (header, field, "%lf", 1, &Bscale); 39 39 sprintf (field, "TZERO%d", N); 40 fits_scan (header, field, "%lf", 1, &Bzero);40 gfits_scan (header, field, "%lf", 1, &Bzero); 41 41 sprintf (field, "TFORM%d", N); 42 fits_scan (header, field, "%s", 1, format);43 44 if (! fits_bintable_format (format, type, &Nval, &Nbytes)) return (FALSE);42 gfits_scan (header, field, "%s", 1, format); 43 44 if (!gfits_bintable_format (format, type, &Nval, &Nbytes)) return (FALSE); 45 45 46 46 /* check existing table dimensions */ 47 fits_scan (header, "NAXIS1", "%d", 1, &Nx);48 fits_scan (header, "NAXIS2", "%d", 1, &Ny);47 gfits_scan (header, "NAXIS1", "%d", 1, &Nx); 48 gfits_scan (header, "NAXIS2", "%d", 1, &Ny); 49 49 if (Ny == 0) { 50 50 Ny = Nrow; 51 51 header[0].Naxis[1] = Ny; 52 fits_modify (header, "NAXIS2", "%d", 1, Ny);53 54 nbytes = fits_matrix_size (header);52 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 53 54 nbytes = gfits_matrix_size (header); 55 55 REALLOCATE (table[0].buffer, char, MAX (nbytes, 1)); 56 56 bzero (table[0].buffer, nbytes); … … 63 63 for (i = 1; i < N; i++) { 64 64 sprintf (field, "TFORM%d", i); 65 fits_scan (header, field, "%s", 1, format);66 fits_bintable_format (format, tmpline, &Nv, &Nb);65 gfits_scan (header, field, "%s", 1, format); 66 gfits_bintable_format (format, tmpline, &Nv, &Nb); 67 67 Nstart += Nv*Nb; 68 68 } … … 153 153 154 154 /***********************/ 155 int fits_set_table_column (Header *header, FTable *table, char *label, void *data, int Nrow) {155 int gfits_set_table_column (Header *header, FTable *table, char *label, void *data, int Nrow) { 156 156 157 157 int i, N, Nfields, Nval, Nbytes, Nx, Ny, nbytes, Nstart, Nv, Nb; … … 164 164 /* find label in header */ 165 165 tlabel[0] = 0; 166 fits_scan (header, "TFIELDS", "%d", 1, &Nfields);166 gfits_scan (header, "TFIELDS", "%d", 1, &Nfields); 167 167 for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) { 168 168 sprintf (field, "TTYPE%d", i); 169 fits_scan (header, field, "%s", 1, tlabel);169 gfits_scan (header, field, "%s", 1, tlabel); 170 170 } 171 171 if (strcmp (label, tlabel)) return (FALSE); … … 174 174 /* interpret format */ 175 175 sprintf (field, "TFORM%d", N); 176 fits_scan (header, field, "%s", 1, format);177 178 if (! fits_table_format (format, type, &Nval, &Nbytes)) return (FALSE);176 gfits_scan (header, field, "%s", 1, format); 177 178 if (!gfits_table_format (format, type, &Nval, &Nbytes)) return (FALSE); 179 179 strcpy (cformat, format); 180 180 181 181 /* check existing table dimensions */ 182 fits_scan (header, "NAXIS1", "%d", 1, &Nx);183 fits_scan (header, "NAXIS2", "%d", 1, &Ny);182 gfits_scan (header, "NAXIS1", "%d", 1, &Nx); 183 gfits_scan (header, "NAXIS2", "%d", 1, &Ny); 184 184 if (Ny == 0) { 185 185 Ny = Nrow; 186 186 header[0].Naxis[1] = Ny; 187 fits_modify (header, "NAXIS2", "%d", 1, Ny);188 189 nbytes = fits_matrix_size (header);187 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 188 189 nbytes = gfits_matrix_size (header); 190 190 REALLOCATE (table[0].buffer, char, MAX (nbytes, 1)); 191 191 bzero (table[0].buffer, nbytes); … … 198 198 for (i = 1; i < N; i++) { 199 199 sprintf (field, "TFORM%d", i); 200 fits_scan (header, field, "%s", 1, format);201 fits_table_format (format, tmp, &Nv, &Nb);200 gfits_scan (header, field, "%s", 1, format); 201 gfits_table_format (format, tmp, &Nv, &Nb); 202 202 Nstart += Nv*Nb; 203 203 } -
trunk/Ohana/src/libfits/table/F_table_column.c
r7039 r7054 3 3 4 4 /*********************** fits table column ****************************/ 5 int fits_table_column (Table *table, char *field, char *mode,...) {5 int gfits_table_column (Table *table, char *field, char *mode,...) { 6 6 /* we expect one more field: the pointer to the array we read in */ 7 7 … … 19 19 for (i = 0; i < table[0].Nfields; i++) { 20 20 sprintf (string, "TTYPE%d\0", i+1); 21 fits_scan (&table[0].header, string, "%s", 1, this_field);21 gfits_scan (&table[0].header, string, "%s", 1, this_field); 22 22 if (!strcmp (field, this_field)) { 23 23 break; … … 33 33 34 34 sprintf (string, "TBCOL%d\0", N); 35 fits_scan (&table[0].header, string, "%d", 1, &start);35 gfits_scan (&table[0].header, string, "%d", 1, &start); 36 36 sprintf (string, "TFORM%d\0", N); 37 fits_scan (&table[0].header, string, "%s", 1, form);37 gfits_scan (&table[0].header, string, "%s", 1, form); 38 38 /* we could use some error checking from the FITS table form, but 39 39 it is not immediately crucial */ … … 43 43 } else { 44 44 sprintf (string, "TBCOL%d\0", N+1); 45 fits_scan (&table[0].header, string, "%d", 1, &end);45 gfits_scan (&table[0].header, string, "%d", 1, &end); 46 46 } 47 47 width = end - start; … … 88 88 break; 89 89 default: 90 fprintf (stderr, "unknown fits_table_column mode: %s\n", mode);90 fprintf (stderr, "unknown gfits_table_column mode: %s\n", mode); 91 91 return (FALSE); 92 92 } -
trunk/Ohana/src/libfits/table/F_table_format.c
r7039 r7054 3 3 4 4 /***********************/ 5 int fits_bintable_format (char *format, char *type, int *Nval, int *Nbytes) {5 int gfits_bintable_format (char *format, char *type, int *Nval, int *Nbytes) { 6 6 7 7 char *Lchar, *Fchar; … … 53 53 54 54 /***********************/ 55 int fits_table_format (char *format, char *type, int *Nval, int *Nbytes) {55 int gfits_table_format (char *format, char *type, int *Nval, int *Nbytes) { 56 56 57 57 char Fchar, Size[80], Type; … … 90 90 91 91 /** extract a table subset to a vtable ***/ 92 int fits_table_to_vtable (FTable *ftable, VTable *vtable, int start, int Nkeep) {92 int gfits_table_to_vtable (FTable *ftable, VTable *vtable, int start, int Nkeep) { 93 93 94 /* fits_table_to_vtable (f, v, 0, Ny - 1) - keep all of table95 fits_table_to_vtable (f, v, 0, 0) - keep none of table94 /* gfits_table_to_vtable (f, v, 0, Ny - 1) - keep all of table 95 gfits_table_to_vtable (f, v, 0, 0) - keep none of table 96 96 */ 97 97 98 98 int i, Nx, Ny; 99 99 100 fits_scan (ftable[0].header, "NAXIS1", "%d", 1, &Nx);101 fits_scan (ftable[0].header, "NAXIS2", "%d", 1, &Ny);100 gfits_scan (ftable[0].header, "NAXIS1", "%d", 1, &Nx); 101 gfits_scan (ftable[0].header, "NAXIS2", "%d", 1, &Ny); 102 102 103 103 if (start + Nkeep > Ny) return (FALSE); … … 122 122 123 123 /** convert specified rows to vtable */ 124 int fits_vtable_from_ftable (FTable *ftable, VTable *vtable, int *row, int Nrow) {124 int gfits_vtable_from_ftable (FTable *ftable, VTable *vtable, int *row, int Nrow) { 125 125 126 126 int i, N, Nx, Ny; 127 127 128 fits_scan (ftable[0].header, "NAXIS1", "%d", 1, &Nx);129 fits_scan (ftable[0].header, "NAXIS2", "%d", 1, &Ny);128 gfits_scan (ftable[0].header, "NAXIS1", "%d", 1, &Nx); 129 gfits_scan (ftable[0].header, "NAXIS2", "%d", 1, &Ny); 130 130 131 131 /* make empty vtable from table */ … … 150 150 151 151 /* use table def to format a complete string */ 152 char * fits_table_print (FTable *table,...) {152 char *gfits_table_print (FTable *table,...) { 153 153 154 154 int i, Nx, Nfields; … … 159 159 va_start (argp, table); 160 160 161 fits_scan (table[0].header, "NAXIS1", "%d", 1, &Nx);162 fits_scan (table[0].header, "TFIELDS", "%d", 1, &Nfields);161 gfits_scan (table[0].header, "NAXIS1", "%d", 1, &Nx); 162 gfits_scan (table[0].header, "TFIELDS", "%d", 1, &Nfields); 163 163 164 164 ALLOCATE (line, char, Nx + 1); … … 168 168 169 169 sprintf (field, "TFORM%d", i); 170 fits_scan (table[0].header, field, "%s", 1, format); /* get field format */171 fits_table_format (format, type, &Nval, &Nbytes); /* convert to c-style */170 gfits_scan (table[0].header, field, "%s", 1, format); /* get field format */ 171 gfits_table_format (format, type, &Nval, &Nbytes); /* convert to c-style */ 172 172 Nchar = Nval * Nbytes; 173 173 if (!strcmp (type, "int")) { -
trunk/Ohana/src/libfits/table/F_table_row.c
r7039 r7054 3 3 4 4 /*********************** fits table column ****************************/ 5 int fits_add_rows (FTable *table, char *data, int Nrow, int Nbytes) {5 int gfits_add_rows (FTable *table, char *data, int Nrow, int Nbytes) { 6 6 7 7 int Nx, Ny; … … 11 11 header = table[0].header; 12 12 13 fits_scan (header, "NAXIS1", "%d", 1, &Nx);14 fits_scan (header, "NAXIS2", "%d", 1, &Ny);13 gfits_scan (header, "NAXIS1", "%d", 1, &Nx); 14 gfits_scan (header, "NAXIS2", "%d", 1, &Ny); 15 15 16 16 if (header[0].Naxis[1] != Ny) return (FALSE); … … 23 23 Ny += Nrow; 24 24 header[0].Naxis[1] = Ny; 25 fits_modify (header, "NAXIS2", "%d", 1, Ny);25 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 26 26 27 nbytes = fits_matrix_size (header);27 nbytes = gfits_matrix_size (header); 28 28 REALLOCATE (table[0].buffer, char, MAX (nbytes, 1)); 29 29 table[0].size = nbytes; … … 35 35 36 36 /*********************** fits add (real) rows to virtual table ****************************/ 37 int fits_vadd_rows (VTable *table, char *data, int Nrow, int Nbytes) {37 int gfits_vadd_rows (VTable *table, char *data, int Nrow, int Nbytes) { 38 38 39 39 int i, Nx, Ny; … … 43 43 header = table[0].header; 44 44 45 fits_scan (header, "NAXIS1", "%d", 1, &Nx);46 fits_scan (header, "NAXIS2", "%d", 1, &Ny);45 gfits_scan (header, "NAXIS1", "%d", 1, &Nx); 46 gfits_scan (header, "NAXIS2", "%d", 1, &Ny); 47 47 48 48 if (header[0].Naxis[1] != Ny) return (FALSE); … … 64 64 Ny += Nrow; 65 65 header[0].Naxis[1] = Ny; 66 fits_modify (header, "NAXIS2", "%d", 1, Ny);66 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 67 67 68 table[0].size = fits_matrix_size (table[0].header);68 table[0].size = gfits_matrix_size (table[0].header); 69 69 table[0].pad = table[0].size - Nx*Ny; 70 70 … … 73 73 74 74 /*********************** fits table column ****************************/ 75 int fits_delete_rows (FTable *table, int Nstart, int Nrow) {75 int gfits_delete_rows (FTable *table, int Nstart, int Nrow) { 76 76 77 77 int Nx, Ny, N0, N1, N2; … … 81 81 header = table[0].header; 82 82 83 fits_scan (header, "NAXIS1", "%d", 1, &Nx);84 fits_scan (header, "NAXIS2", "%d", 1, &Ny);83 gfits_scan (header, "NAXIS1", "%d", 1, &Nx); 84 gfits_scan (header, "NAXIS2", "%d", 1, &Ny); 85 85 86 86 if (header[0].Naxis[1] != Ny) return (FALSE); … … 97 97 Ny -= Nrow; 98 98 header[0].Naxis[1] = Ny; 99 fits_modify (header, "NAXIS2", "%d", 1, Ny);99 gfits_modify (header, "NAXIS2", "%d", 1, Ny); 100 100 101 nbytes = fits_matrix_size (header);101 nbytes = gfits_matrix_size (header); 102 102 REALLOCATE (table[0].buffer, char, MAX (nbytes, 1)); 103 103 table[0].size = nbytes; -
trunk/Ohana/src/libfits/table/F_write_T.c
r7039 r7054 3 3 4 4 /*********************** fits write header *********************************/ 5 int fits_write_table (char *filename, FTable *table) {5 int gfits_write_table (char *filename, FTable *table) { 6 6 7 7 FILE *f; … … 14 14 15 15 status = fseek (f, 0, SEEK_END); /* write table to end of file! */ 16 status = fits_fwrite_table (f, table);16 status = gfits_fwrite_table (f, table); 17 17 18 18 fclose (f); … … 21 21 22 22 /*********************** fits write table *********************************/ 23 int fits_fwrite_table (FILE *f, FTable *table) {23 int gfits_fwrite_table (FILE *f, FTable *table) { 24 24 25 25 int Nbytes; … … 32 32 33 33 /*********************** fits write virtual table *********************************/ 34 int fits_fwrite_vtable (FILE *f, VTable *table) {34 int gfits_fwrite_vtable (FILE *f, VTable *table) { 35 35 36 36 int i, Nx, Ny, Npad, offset, start; … … 40 40 Nrow = table[0].Nrow; 41 41 row = table[0].row; 42 fits_scan (table[0].header, "NAXIS1", "%d", 1, &Nx);43 fits_scan (table[0].header, "NAXIS2", "%d", 1, &Ny);42 gfits_scan (table[0].header, "NAXIS1", "%d", 1, &Nx); 43 gfits_scan (table[0].header, "NAXIS2", "%d", 1, &Ny); 44 44 45 45 /* file pointer is at beginning of desired table data */ -
trunk/Ohana/src/libfits/table/F_write_TH.c
r7039 r7054 3 3 4 4 /*********************** fits write header *********************************/ 5 int fits_write_Theader (char *filename, Header *header) {5 int gfits_write_Theader (char *filename, Header *header) { 6 6 7 7 FILE *f; … … 14 14 15 15 status = fseek (f, 0, SEEK_END); /* write header to end of file! */ 16 status = fits_fwrite_Theader (f, header);16 status = gfits_fwrite_Theader (f, header); 17 17 18 18 fclose (f); … … 21 21 22 22 /*********************** fits write header *********************************/ 23 int fits_fwrite_Theader (FILE *f, Header *header) {23 int gfits_fwrite_Theader (FILE *f, Header *header) { 24 24 25 25 int Nbytes;
Note:
See TracChangeset
for help on using the changeset viewer.
