Changeset 15487
- Timestamp:
- Nov 6, 2007, 5:09:52 PM (19 years ago)
- Location:
- trunk/Ohana/src
- Files:
-
- 11 added
- 53 edited
-
addstar/src/FilterStars.c (modified) (1 diff)
-
addstar/src/LoadStars.c (modified) (3 diffs)
-
addstar/src/ReadStarsFITS.c (modified) (4 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_convert_elixir.c (modified) (1 diff)
-
libdvo/src/dvo_image_raw.c (modified) (1 diff)
-
libdvo/src/fits_db.c (modified) (1 diff)
-
libfits/Makefile (modified) (5 diffs)
-
libfits/doc/notes-compress.txt (modified) (3 diffs)
-
libfits/extern (added)
-
libfits/extern/fits_hcompress.c (added)
-
libfits/extern/fits_hdecompress.c (added)
-
libfits/extern/pliocomp.c (added)
-
libfits/extern/ricecomp.c (added)
-
libfits/extern/ricecomp.h (added)
-
libfits/header/F_convert_H.c (added)
-
libfits/header/F_copy_H.c (modified) (1 diff)
-
libfits/header/F_create_H.c (modified) (1 diff)
-
libfits/header/F_init_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) (3 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/matrix/F_uncompress_data.c (added)
-
libfits/table/F_create_T.c (modified) (2 diffs)
-
libfits/table/F_create_TH.c (modified) (5 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) (7 diffs)
-
libfits/table/F_table_row.c (modified) (3 diffs)
-
libfits/table/F_table_varlength.c (added)
-
misc/src/fakedist.c (modified) (1 diff)
-
misc/src/fakedump.c (modified) (1 diff)
-
misc/src/smaeder.c (modified) (1 diff)
-
misc/src/usmaeder.c (modified) (1 diff)
-
mosastro/src/mkheader.c (modified) (1 diff)
-
mosastro/src/mkmosaic.c (modified) (1 diff)
-
opihi/cmd.data/rd.c (modified) (7 diffs)
-
opihi/cmd.data/read_vectors.c (modified) (5 diffs)
-
opihi/cmd.data/wd.c (modified) (1 diff)
-
opihi/dimm/Image.c (modified) (1 diff)
-
opihi/doc/rd-upgrades.txt (added)
-
opihi/dvo/cmpread.c (modified) (1 diff)
-
opihi/dvo/imbox.c (modified) (1 diff)
-
opihi/lib.shell/BufferOps.c (modified) (2 diffs)
-
opihi/pantasks/task_trange.c (modified) (1 diff)
-
tools/Makefile (modified) (5 diffs)
-
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
-
trunk/Ohana/src/addstar/src/FilterStars.c
r15038 r15487 45 45 stars[N].dt = MTIME; 46 46 47 stars[N].M = MIN (stars[N].M + MTIME, NO_MAG); 47 if ((stars[N].M > 25.0) && (stars[N].M < 32.0)) { 48 fprintf (stderr, "*"); 49 } 50 51 if (stars[N].M >= 0.001*NO_MAG) { 52 stars[N].M = 0.001*NO_MAG; 53 } else { 54 stars[N].M = stars[N].M + MTIME; 55 } 56 57 if (stars[N].M > 32.77) { 58 fprintf (stderr, "*"); 59 } 60 48 61 stars[N].dM = MIN (stars[N].dM, NO_ERR); 49 62 50 stars[N].Mgal = MIN (stars[N].Mgal + MTIME, NO_MAG);63 stars[N].Mgal = MIN (stars[N].Mgal + MTIME, 0.001*NO_MAG); 51 64 52 65 if (SUBPIX) { -
trunk/Ohana/src/addstar/src/LoadStars.c
r15210 r15487 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")) { -
trunk/Ohana/src/addstar/src/ReadStarsFITS.c
r15038 r15487 96 96 stars[i].dX = ps1data[i].dX; 97 97 stars[i].dY = ps1data[i].dY; 98 stars[i].M = ps1data[i].M + ZeroPt; 98 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 99 stars[i].M = 0.001*NO_MAG; 100 } else { 101 stars[i].M = ps1data[i].M + ZeroPt; 102 } 99 103 stars[i].dM = ps1data[i].dM; 100 104 stars[i].Mpeak = ps1data[i].Mpeak; … … 134 138 135 139 /* these are not used */ 136 stars[i].Map = NO_MAG;137 stars[i].Mgal = NO_MAG;140 stars[i].Map = 0.001*NO_MAG; 141 stars[i].Mgal = 0.001*NO_MAG; 138 142 stars[i].dophot = 0; 139 143 } … … 160 164 stars[i].dX = ps1data[i].dX; 161 165 stars[i].dY = ps1data[i].dY; 162 stars[i].M = ps1data[i].M + ZeroPt; 166 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 167 stars[i].M = 0.001*NO_MAG; 168 } else { 169 stars[i].M = ps1data[i].M + ZeroPt; 170 } 163 171 stars[i].dM = ps1data[i].dM; 164 172 stars[i].Mpeak = ps1data[i].Mpeak; … … 205 213 206 214 /* these are not used */ 207 stars[i].Map = NO_MAG;208 stars[i].Mgal = NO_MAG;215 stars[i].Map = 0.001*NO_MAG; 216 stars[i].Mgal = 0.001*NO_MAG; 209 217 stars[i].dophot = 0; 210 218 } -
trunk/Ohana/src/gastro2/src/gstars2.c
r14590 r15487 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); -
trunk/Ohana/src/getstar/src/ReadImageFiles.c
r15037 r15487 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")) { -
trunk/Ohana/src/imregister/imphot/rtext.c
r7080 r15487 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); -
trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c
r12391 r15487 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); -
trunk/Ohana/src/libdvo/src/dvo_catalog_split.c
r13325 r15487 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 -
trunk/Ohana/src/libdvo/src/dvo_convert.c
r15035 r15487 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 -
trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c
r15038 r15487 63 63 out[i].dD = in[i].dD * 100.0; 64 64 out[i].M = in[i].M * 1000.0; 65 if (out[i].M < 0) { 66 fprintf (stderr, "."); 67 } 65 68 out[i].dM = in[i].dM * 1000.0; 66 69 out[i].dt = in[i].dt * 1000.0; -
trunk/Ohana/src/libdvo/src/dvo_image_raw.c
r15035 r15487 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); -
trunk/Ohana/src/libdvo/src/fits_db.c
r13182 r15487 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 } -
trunk/Ohana/src/libfits/Makefile
r12879 r15487 10 10 MATR = $(HOME)/matrix 11 11 TABL = $(HOME)/table 12 EXT = $(HOME)/extern 12 13 INC = $(HOME)/include 13 14 MAN = $(HOME)/doc … … 15 16 16 17 # programs may add their own internal requirements here 17 FULL_CFLAGS = $(BASE_CFLAGS) -fPIC 18 FULL_CPPFLAGS = $(BASE_CPPFLAGS) 18 FULL_CFLAGS = $(BASE_CFLAGS) -fPIC -Wall -Werror 19 FULL_CPPFLAGS = $(BASE_CPPFLAGS) -I$(EXT) 19 20 FULL_LDFLAGS = $(BASE_LDFLAGS) 20 21 … … 32 33 $(HEAD)/F_copy_H.$(ARCH).o $(HEAD)/F_delete.$(ARCH).o \ 33 34 $(HEAD)/F_read_XH.$(ARCH).o $(HEAD)/F_init_H.$(ARCH).o \ 34 $(HEAD)/ version.$(ARCH).o35 $(HEAD)/F_convert_H.$(ARCH).o $(HEAD)/version.$(ARCH).o 35 36 36 37 MATRIX_OBJ = \ … … 43 44 $(MATR)/F_convert_format.$(ARCH).o $(MATR)/F_read_segment.$(ARCH).o \ 44 45 $(MATR)/F_read_portion.$(ARCH).o $(MATR)/F_load_M.$(ARCH).o \ 45 $(MATR)/F_matrix.$(ARCH).o 46 $(MATR)/F_matrix.$(ARCH).o $(MATR)/F_compress_M.$(ARCH).o \ 47 $(MATR)/F_uncompress_data.$(ARCH).o 46 48 47 49 TABLE_OBJ = \ … … 51 53 $(TABL)/F_define_column.$(ARCH).o $(TABL)/F_table_format.$(ARCH).o \ 52 54 $(TABL)/F_set_column.$(ARCH).o $(TABL)/F_get_column.$(ARCH).o \ 53 $(TABL)/F_table_row.$(ARCH).o $(TABL)/F_free_T.$(ARCH).o 55 $(TABL)/F_table_row.$(ARCH).o $(TABL)/F_free_T.$(ARCH).o \ 56 $(TABL)/F_table_varlength.$(ARCH).o 54 57 55 OBJS = $(HEADER_OBJ) $(MATRIX_OBJ) $(TABLE_OBJ) 58 EXTERN_OBJ = \ 59 $(EXT)/fits_hcompress.$(ARCH).o \ 60 $(EXT)/fits_hdecompress.$(ARCH).o \ 61 $(EXT)/pliocomp.$(ARCH).o \ 62 $(EXT)/ricecomp.$(ARCH).o 63 64 OBJS = $(HEADER_OBJ) $(MATRIX_OBJ) $(TABLE_OBJ) $(EXTERN_OBJ) 65 66 extern: $(EXTERN_OBJ) 56 67 57 68 $(OBJS): $(INCS) -
trunk/Ohana/src/libfits/doc/notes-compress.txt
r15240 r15487 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 -
trunk/Ohana/src/libfits/header/F_copy_H.c
r7039 r15487 8 8 9 9 out[0].simple = in[0].simple; 10 out[0].unsign = in[0].unsign; 11 out[0].extend = in[0].extend; 10 12 out[0].bitpix = in[0].bitpix; 11 out[0].extend = in[0].extend; 12 out[0].unsign = in[0].unsign; 13 out[0].size = in[0].size; 14 out[0].bscale = in[0].bscale; 15 out[0].bzero = in[0].bzero; 13 16 14 out[0].Naxes = in[0].Naxes; 17 15 for (i = 0; i < FT_MAX_NAXES; i++) 18 16 out[0].Naxis[i] = in[0].Naxis[i]; 17 18 out[0].size = in[0].size; 19 20 out[0].pcount = in[0].pcount; 21 out[0].gcount = in[0].gcount; 22 out[0].bzero = in[0].bzero; 23 out[0].bscale = in[0].bscale; 19 24 20 25 ALLOCATE (out[0].buffer, char, out[0].size); -
trunk/Ohana/src/libfits/header/F_create_H.c
r7054 r15487 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 } 27 27 28 /* PCOUNT & GCOUNT are not implemented, but they are required to be here */ 29 gfits_modify (header, "PCOUNT", "%d", 1, 0); 30 gfits_modify (header, "GCOUNT", "%d", 1, 1); 28 gfits_modify (header, "PCOUNT", "%d", 1, header[0].pcount); 29 gfits_modify (header, "GCOUNT", "%d", 1, header[0].gcount); 31 30 gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale); 32 31 gfits_modify (header, "BZERO", "%lf", 1, header[0].bzero); -
trunk/Ohana/src/libfits/header/F_init_H.c
r12902 r15487 11 11 header[0].extend = FALSE; 12 12 header[0].unsign = FALSE; 13 header[0].bscale = 1; 14 header[0].bzero = 0; 13 header[0].pcount = 0; 14 header[0].gcount = 1; 15 header[0].bscale = 1.0; 16 header[0].bzero = 0.0; 15 17 header[0].bitpix = 8; 16 18 header[0].Naxes = 0; -
trunk/Ohana/src/libfits/header/F_read_H.c
r12902 r15487 76 76 gfits_scan (header, "NAXIS10", "%d", 1, &header[0].Naxis[9]); 77 77 78 if (!gfits_scan (header, "PCOUNT", "%d", 1, &header[0].pcount)) { 79 header[0].pcount = 0; 80 } 81 if (!gfits_scan (header, "GCOUNT", "%d", 1, &header[0].gcount)) { 82 header[0].gcount = 1; 83 } 84 78 85 return (TRUE); 79 86 -
trunk/Ohana/src/libfits/header/F_read_XH.c
r13145 r15487 45 45 } 46 46 47 Nmatrix = gfits_ matrix_size (&theader);47 Nmatrix = gfits_data_size (&theader); 48 48 49 49 /* skip to next header */ -
trunk/Ohana/src/libfits/include/gfitsio.h
r15038 r15487 1 1 /* FITS specific macros and structures */ 2 3 # include <assert.h> 2 4 3 5 # ifndef GFITSIO … … 48 50 int Naxis[FT_MAX_NAXES]; 49 51 int size; 52 int pcount; 53 int gcount; 50 54 double bzero; 51 55 double bscale; … … 84 88 } VTable; 85 89 90 typedef struct { 91 int maxlen; // max size of all table rows 92 int nbytes; // number of bytes per column element 93 int Nstart; // byte offset of this column 94 int heap_start; // byte offset to start of HEAP 95 char format; // data format character (one of: XLABIJEDCM) 96 } VarLengthColumn; 97 86 98 # ifndef PROTO 87 99 # define PROTO(A) A 88 100 # endif 89 101 90 char *gfits_version PROTO(());102 char *gfits_version PROTO((void)); 91 103 92 104 /******************************* Header functions *************/ 93 int gfits_read_header PROTO((char *, Header *)); 94 // int fits_copy_header PROTO((Header *, Header *)); 95 int gfits_copy_header PROTO((Header *, Header *)); 96 void gfits_free_header PROTO((Header *)); 97 int gfits_write_header PROTO((char *, Header *)); 98 int gfits_create_header PROTO((Header *)); 99 int gfits_delete PROTO((Header *, char *, int)); 100 char *gfits_header_field PROTO((Header *, char *, int)); 101 int gfits_read_Xheader PROTO((char *filename, Header *header, int N)); 102 int gfits_fread_Xheader PROTO((FILE *f, Header *header, int N)); 103 int gfits_load_header PROTO((FILE *f, Header *header)); 104 105 int gfits_fread_header PROTO((FILE *, Header *)); 106 int gfits_fread_Theader PROTO((FILE *, Header *)); 107 int gfits_fread_ftable PROTO((FILE *, FTable *, char *)); 108 int gfits_fread_vtable_range PROTO((FILE *f, VTable *table, int start, int Nrows)); 109 int gfits_fread_vtable PROTO((FILE *f, VTable *table, char *extname, int Nrow, int *row)); 110 int gfits_fread_ftable_data PROTO((FILE *f, FTable *table)); 111 int gfits_fwrite_header PROTO((FILE *, Header *)); 112 int gfits_fwrite_Theader PROTO((FILE *, Header *)); 113 int gfits_fwrite_matrix PROTO((FILE *, Matrix *)); 114 int gfits_fwrite_table PROTO((FILE *, FTable *)); 115 int gfits_fwrite_vtable PROTO((FILE *, VTable *)); 116 117 int gfits_matrix_size PROTO ((Header *)); 118 int gfits_init_header PROTO ((Header *)); 119 int gfits_get_unsign_mode PROTO (()); 120 int gfits_set_unsign_mode PROTO ((int mode)); 121 int gfits_create_table_header PROTO ((Header *, char *, char *)); 122 int gfits_vtable_from_ftable PROTO ((FTable *ftable, VTable *vtable, int *row, int Nrow)); 123 int gfits_table_to_vtable PROTO ((FTable *ftable, VTable *vtable, int start, int Nkeep)); 124 int gfits_create_table PROTO ((Header *, FTable *)); 125 int gfits_vadd_rows PROTO ((VTable *, char *, int, int)); 126 int gfits_add_rows PROTO ((FTable *, char *, int, int)); 127 char *gfits_table_print PROTO ((FTable *,...)); 128 int gfits_table_scale_data PROTO ((FTable *ftable)); 129 int gfits_table_scale_storage PROTO ((FTable *ftable)); 105 106 char *gfits_header_field PROTO((Header *header, char *field, int N)); 107 char *gfits_keyword_end PROTO((char *line)); 108 int gfits_copy_header PROTO((Header *in, Header *out)); 109 int gfits_create_header PROTO((Header *header)); 110 int gfits_delete PROTO((Header *header, char *field, int N)); 111 int gfits_fread_Xheader PROTO((FILE *f, Header *header, int N)); 112 int gfits_fread_header PROTO((FILE *f, Header *header)); 113 void gfits_free_header PROTO((Header *header)); 114 int gfits_fwrite_header PROTO((FILE *f, Header *header)); 115 int gfits_get_unsign_mode PROTO((void)); 116 int gfits_init_header PROTO((Header *header)); 117 int gfits_load_header PROTO((FILE *f, Header *header)); 118 int gfits_modify PROTO((Header *header, char *field, char *mode, int N,...)); 119 int gfits_print PROTO((Header *header, char *field, char *mode, int N,...)); 120 int gfits_read_Xheader PROTO((char *filename, Header *header, int N)); 121 int gfits_read_header PROTO((char *filename, Header *header)); 122 int gfits_save_header PROTO((FILE *f, Header *header)); 123 int gfits_scan PROTO((Header *header, char *field, char *mode, int N,...)); 124 int gfits_set_unsign_mode PROTO((int mode)); 125 int gfits_stripwhite PROTO((char *string)); 126 int gfits_vscan PROTO((Header *header, char *field, char *mode, int N, va_list argp)); 127 int gfits_write_header PROTO((char *filename, Header *header)); 128 int gfits_data_size PROTO((Header *header)); 129 int gfits_extended_to_primary PROTO((Header *header, int simple, char *comment)); 130 int gfits_primary_to_extended PROTO((Header *header, char *exttype, char *comment)); 131 int gfits_modify_extended PROTO((Header *header, char *exttype, char *comment)); 132 130 133 131 134 /******************************* Matrix functions *************/ 132 int gfits_read_matrix PROTO((char *, Matrix *)); 133 int gfits_read_portion PROTO((char *filename, Matrix *matrix, int Nskip, int Npix)); 134 void gfits_free_matrix PROTO((Matrix *)); 135 int gfits_copy_matrix PROTO((Matrix *, Matrix *)); 136 int gfits_write_matrix PROTO((char *,Matrix *)); 137 int gfits_create_matrix PROTO((Header *, Matrix *)); 138 double gfits_get_matrix_value PROTO((Matrix *, int, int)); 139 void gfits_set_matrix_value PROTO((Matrix *, int, int, double)); 140 void gfits_add_matrix_value PROTO((Matrix *, int, int, double)); 141 int gfits_multiply_matrix PROTO((Matrix *, Matrix *, Matrix *)); 142 int gfits_divide_matrix PROTO((Matrix *, Matrix *, Matrix *)); 143 void gfits_insert_array PROTO((Matrix *, Matrix *, int, int)); 144 int gfits_load_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 145 int gfits_fread_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 146 int gfits_read_matrix_segment PROTO((char *filename, Matrix *matrix, char *region)); 147 int gfits_fread_matrix_segment PROTO((FILE *f, Matrix *matrix, Header *header, char *region)); 148 int gfits_convert_format PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign)); 135 136 void gfits_add_matrix_value PROTO((Matrix *matrix, int x, int y, double value)); 137 int gfits_convert_format PROTO((Header *header, Matrix *matrix, int outBitpix, double outScale, double outZero, int outUnsign)); 138 int gfits_copy_matrix PROTO((Matrix *in, Matrix *out)); 139 int gfits_create_matrix PROTO((Header *header, Matrix *matrix)); 140 int gfits_divide_matrix PROTO((Matrix *M1, Matrix *M2, Matrix *M3)); 141 int gfits_fread_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 142 int gfits_fread_matrix_segment PROTO((FILE *f, Matrix *matrix, Header *header, char *region)); 143 void gfits_free_matrix PROTO((Matrix *matrix)); 144 int gfits_fwrite_matrix PROTO((FILE *f, Matrix *matrix)); 145 double gfits_get_matrix_value PROTO((Matrix *matrix, int x, int y)); 146 void gfits_insert_array PROTO((Matrix *matrix, Matrix *array, int x, int y)); 147 int gfits_load_matrix PROTO((FILE *f, Matrix *matrix, Header *header)); 148 int gfits_multiply_matrix PROTO((Matrix *M1, Matrix *M2, Matrix *M3)); 149 int gfits_read_matrix PROTO((char *filename, Matrix *matrix)); 150 int gfits_read_matrix_segment PROTO((char *filename, Matrix *matrix, char *region)); 151 int gfits_read_portion PROTO((char *filename, Matrix *matrix, int Nskip, int Npix)); 152 void gfits_set_matrix_value PROTO((Matrix *matrix, int x, int y, double value)); 153 int gfits_write_matrix PROTO((char *filename, Matrix *matrix)); 154 int gfits_uncompress_image PROTO((Header *header, Matrix *matrix, FTable *ftable, int primary)); 155 int gfits_uncompress_data PROTO((char *zdata, int Nzdata, char *cmptype, char **optname, char **optvalue, int Nopt, char *outdata, int *Nout, int out_pixsize)); 156 int gfits_distribute_data PROTO((Matrix *matrix, int bitpix, char *data, int Ndata, int *otile, int *ztile, float zscale, float zzero)); 157 int gfits_byteswap_zdata PROTO((char *zdata, int Nzdata, int bitpix)); 158 int gfits_extension_is_compressed PROTO((Header *header)); 159 int gfits_tile_size PROTO((Matrix *matrix, int *otile, int *ztile)); 149 160 150 161 /******************************* Table functions *************/ 151 int gfits_load_Theader PROTO((FILE *f, Header *Theader)); 152 int gfits_read_Theader PROTO((char *, Header *)); 153 int gfits_read_table PROTO((char *, FTable *)); 154 int gfits_read_table PROTO((char *, FTable *)); 155 int gfits_write_Theader PROTO((char *, Header *header)); 156 int gfits_write_table PROTO((char *, FTable *)); 157 int gfits_fwrite_table PROTO((FILE *f, FTable *table)); 158 int gfits_fwrite_vtable PROTO((FILE *f, VTable *table)); 159 160 int gfits_bintable_format PROTO((char *, char *, int *, int *)); 161 int gfits_table_format PROTO((char *, char *, int *, int *)); 162 int gfits_save_header PROTO((FILE *, Header *header)); 163 int gfits_set_bintable_column PROTO((Header *header, FTable *table, char *, void *, int)); 164 int gfits_set_table_column PROTO((Header *header, FTable *table, char *, void *, int)); 165 int gfits_define_bintable_column PROTO((Header *header, char *, char *, char *, char *, double, double)); 166 int gfits_define_table_column PROTO((Header *header, char *, char *, char *, char *)); 167 int gfits_read_ftable PROTO((char *filename, FTable *table, char *extname)); 168 169 int gfits_free_table PROTO((FTable *table)); 170 int gfits_free_vtable PROTO((VTable *table)); 171 int gfits_create_Theader PROTO((Header *header, char *type)); 172 173 /* prototyping demanded for these four -- could be a problem on non-ANSI comp comp */ 174 int gfits_scan PROTO((Header *, char *, char *, int,...)); 175 int gfits_print PROTO((Header *, char *, char *, int,...)); 176 int gfits_modify PROTO((Header *, char *, char *, int,...)); 177 int gfits_table_column PROTO((FTable *, char *, char *,...)); 178 int gfits_table_column PROTO((FTable *table, char *, char *,...)); 179 180 char *gfits_keyword_end PROTO((char *line)); 181 int gfits_vscan PROTO((Header *header, char *field, char *mode, int N, va_list argp)); 182 int gfits_scan PROTO((Header *header, char *field, char *mode, int N,...)); 183 int gfits_stripwhite PROTO((char *string)); 184 int gfits_matrix_size PROTO((Header *header)); 185 186 int gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval)); 187 int gfits_get_bintable_column PROTO((Header *header, FTable *table, char *label, void **data)); 188 int gfits_get_table_column_type PROTO((Header *header, char *label, char *type)); 189 int gfits_get_table_column PROTO((Header *header, FTable *table, char *label, void **data)); 162 163 char *gfits_table_print PROTO((FTable *ftable,...)); 164 int gfits_add_rows PROTO((FTable *ftable, char *data, int Nrow, int Nbytes)); 165 int gfits_bintable_format PROTO((char *format, char *type, int *Nval, int *Nbytes)); 166 int gfits_create_table PROTO((Header *header, FTable *ftable)); 167 int gfits_create_table_header PROTO((Header *header, char *type, char *extname)); 168 int gfits_define_bintable_column PROTO((Header *header, char *format, char *label, char *comment, char *unit, double bscale, double bzero)); 169 int gfits_define_table_column PROTO((Header *header, char *format, char *label, char *comment, char *unit)); 170 int gfits_fread_ftable PROTO((FILE *f, FTable *ftable, char *extname)); 171 int gfits_fread_ftable_data PROTO((FILE *f, FTable *ftable)); 172 int gfits_fread_vtable PROTO((FILE *f, VTable *vtable, char *extname, int Nrow, int *row)); 173 int gfits_fread_vtable_range PROTO((FILE *f, VTable *vtable, int start, int Nrows)); 174 int gfits_free_table PROTO((FTable *ftable)); 175 int gfits_free_vtable PROTO((VTable *vtable)); 176 int gfits_fwrite_table PROTO((FILE *f, FTable *table)); 177 int gfits_fwrite_vtable PROTO((FILE *f, VTable *table)); 178 int gfits_get_bintable_column PROTO((Header *header, FTable *table, char *label, void **data)); 179 int gfits_get_bintable_column_type PROTO((Header *header, char *label, char *type, int *Nval)); 180 int gfits_get_table_column PROTO((Header *header, FTable *table, char *label, void **data)); 181 int gfits_get_table_column_type PROTO((Header *header, char *label, char *type)); 182 int gfits_read_ftable PROTO((char *filename, FTable *table, char *extname)); 183 int gfits_read_table PROTO((char *filename, FTable *ftable)); 184 int gfits_set_bintable_column PROTO((Header *header, FTable *table, char *label, void *data, int Nrow)); 185 int gfits_set_table_column PROTO((Header *header, FTable *table, char *label, void *data, int Nrow)); 186 int gfits_table_column PROTO((FTable *ftable, char *field, char *mode,...)); 187 int gfits_table_format PROTO((char *format, char *type, int *Nval, int *Nbytes)); 188 int gfits_table_scale_data PROTO((FTable *ftable)); 189 int gfits_table_scale_storage PROTO((FTable *ftable)); 190 int gfits_table_to_vtable PROTO((FTable *ftable, VTable *vtable, int start, int Nkeep)); 191 int gfits_vadd_rows PROTO((VTable *vtable, char *data, int Nrow, int Nbytes)); 192 int gfits_vtable_from_ftable PROTO((FTable *ftable, VTable *vtable, int *row, int Nrow)); 193 int gfits_write_table PROTO((char *filename, FTable *ftable)); 194 195 int gfits_create_Theader PROTO((Header *header, char *type)); 196 int gfits_fread_Theader PROTO((FILE *f, Header *header)); 197 int gfits_fwrite_Theader PROTO((FILE *f, Header *header)); 198 int gfits_load_Theader PROTO((FILE *f, Header *header)); 199 int gfits_read_Theader PROTO((char *filename, Header *header)); 200 int gfits_write_Theader PROTO((char *filename, Header *header)); 201 202 int gfits_varlength_column_define PROTO((FTable *ftable, VarLengthColumn *def, int column)); 203 void *gfits_varlength_column_pointer PROTO((FTable *ftable, VarLengthColumn *column, int row, int *length)); 190 204 191 205 #endif /* FITSIO */ -
trunk/Ohana/src/libfits/matrix/F_convert_format.c
r7054 r15487 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); -
trunk/Ohana/src/libfits/matrix/F_create_M.c
r7054 r15487 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); -
trunk/Ohana/src/libfits/matrix/F_get_M_value.c
r7054 r15487 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; -
trunk/Ohana/src/libfits/matrix/F_insert_M.c
r7054 r15487 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 */ -
trunk/Ohana/src/libfits/matrix/F_load_M.c
r7054 r15487 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; -
trunk/Ohana/src/libfits/matrix/F_matrix.c
r7054 r15487 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) { -
trunk/Ohana/src/libfits/matrix/F_set_M_value.c
r7054 r15487 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; -
trunk/Ohana/src/libfits/table/F_create_T.c
r7054 r15487 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 -
trunk/Ohana/src/libfits/table/F_create_TH.c
r7054 r15487 1 1 # include <ohana.h> 2 2 # include <gfitsio.h> 3 # define NBYTES 2880 3 4 4 5 /* a basic table header (extension) is different from a primary header … … 12 13 char axis[10]; 13 14 14 header[0].size = 2880; 15 ALLOCATE (header[0].buffer, char, 2880); 15 header[0].size = NBYTES; 16 17 ALLOCATE (header[0].buffer, char, NBYTES); 16 18 17 for (i = 0; i < 2880; i++)19 for (i = 0; i < NBYTES; i++) 18 20 header[0].buffer[i] = ' '; 19 21 strncpy (header[0].buffer, "END", 3); 20 22 21 23 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 gfits_modify (header, "BITPIX", "%d", 1, header[0].bitpix); 25 gfits_modify (header, "NAXIS", "%d", 1, header[0].Naxes); 24 26 25 27 for (i = 0; i < header[0].Naxes; i++) { … … 28 30 } 29 31 30 /* PCOUNT & GCOUNT are not implemented, but they are required to be here */ 31 gfits_modify (header, "PCOUNT", "%d", 1, 0); 32 gfits_modify (header, "GCOUNT", "%d", 1, 1); 32 gfits_modify (header, "PCOUNT", "%d", 1, header[0].pcount); 33 gfits_modify (header, "GCOUNT", "%d", 1, header[0].gcount); 33 34 if (!strcmp (type, "IMAGE")) { 34 35 gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale); … … 43 44 44 45 int i, valid; 45 char axis[10];46 46 47 47 /* check valid table types */ … … 51 51 if (!valid) return (FALSE); 52 52 53 /* create empty header buffer */ 54 header[0].size = 2880; 55 ALLOCATE (header[0].buffer, char, 2880); 56 57 for (i = 0; i < 2880; i++) 58 header[0].buffer[i] = ' '; 59 strncpy (header[0].buffer, "END", 3); 53 gfits_init_header (header); 60 54 61 /* a table has BITPIX = 8, NAXIS = 2 */62 55 header[0].simple = FALSE; 63 header[0].unsign = FALSE;64 header[0].extend = FALSE;65 header[0].bitpix = 8;66 header[0].bscale = 1;67 header[0].bzero = 0;68 56 header[0].Naxes = 2; 69 57 for (i = 0; i < FT_MAX_NAXES; i++) 70 58 header[0].Naxis[i] = 0; 71 72 /* required keywords */ 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 77 for (i = 0; i < header[0].Naxes; i++) { 78 sprintf (axis, "NAXIS%d", i + 1); 79 gfits_modify (header, axis, "%d", 1, header[0].Naxis[i], 1); 80 } 81 82 /* PCOUNT & GCOUNT are not implemented, but they are required to be here */ 83 gfits_modify (header, "PCOUNT", "%d", 1, 0); 84 gfits_modify (header, "GCOUNT", "%d", 1, 1); 85 if (!strcmp (type, "IMAGE")) { 86 gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale); 87 gfits_modify (header, "BZERO", "%lf", 1, header[0].bzero); 88 } 59 60 gfits_create_Theader (header, type); 89 61 90 62 gfits_modify (header, "TFIELDS", "%d", 1, 0); -
trunk/Ohana/src/libfits/table/F_read_T.c
r7054 r15487 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 } -
trunk/Ohana/src/libfits/table/F_read_TH.c
r7054 r15487 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); -
trunk/Ohana/src/libfits/table/F_set_column.c
r7054 r15487 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); -
trunk/Ohana/src/libfits/table/F_table_format.c
r15038 r15487 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; } … … 194 194 int i, j, n, Nx, Ny, Nfields; 195 195 int off, Nchar, Nval, Nbytes, status; 196 char *line,format[64], field[16], type[16];196 char format[64], field[16], type[16]; 197 197 double tzero, tscale; 198 198 char *tmpChar; … … 233 233 for (j = 0; j < Ny; j++) { 234 234 for (n = 0; n < Nval; n++) { 235 tmpChar = ( int*)&ftable[0].buffer[j*Nx + n*Nbytes + off];235 tmpChar = (char *)&ftable[0].buffer[j*Nx + n*Nbytes + off]; 236 236 *tmpChar = *tmpChar * tscale + tzero; 237 237 } … … 241 241 for (j = 0; j < Ny; j++) { 242 242 for (n = 0; n < Nval; n++) { 243 tmpShort = ( int *)&ftable[0].buffer[j*Nx + n*Nbytes + off];243 tmpShort = (short *)&ftable[0].buffer[j*Nx + n*Nbytes + off]; 244 244 *tmpShort = *tmpShort * tscale + tzero; 245 245 } … … 264 264 int i, j, n, Nx, Ny, Nfields; 265 265 int off, Nchar, Nval, Nbytes, status; 266 char *line,format[64], field[16], type[16];266 char format[64], field[16], type[16]; 267 267 double tzero, tscale; 268 268 char *tmpChar; … … 303 303 for (j = 0; j < Ny; j++) { 304 304 for (n = 0; n < Nval; n++) { 305 tmpChar = ( int*)&ftable[0].buffer[j*Nx + n*Nbytes + off];305 tmpChar = (char *)&ftable[0].buffer[j*Nx + n*Nbytes + off]; 306 306 *tmpChar = (*tmpChar - tzero) / tscale; 307 307 } … … 311 311 for (j = 0; j < Ny; j++) { 312 312 for (n = 0; n < Nval; n++) { 313 tmpShort = ( int *)&ftable[0].buffer[j*Nx + n*Nbytes + off];313 tmpShort = (short *)&ftable[0].buffer[j*Nx + n*Nbytes + off]; 314 314 *tmpShort = (*tmpShort - tzero) / tscale; 315 315 } -
trunk/Ohana/src/libfits/table/F_table_row.c
r7054 r15487 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; -
trunk/Ohana/src/misc/src/fakedist.c
r7080 r15487 265 265 double value; 266 266 267 gfits_init_header (&header); 267 268 header.bitpix = -32; 268 269 header.Naxes = 7; -
trunk/Ohana/src/misc/src/fakedump.c
r7080 r15487 44 44 } 45 45 46 gfits_init_header (&out_h); 46 47 out_h.bitpix = -32; 47 48 out_h.Naxes = 2; -
trunk/Ohana/src/misc/src/smaeder.c
r7080 r15487 318 318 age_h.extend = FALSE; 319 319 320 gfits_init_header (&mass_h); 320 321 gfits_create_header (&mass_h); 321 322 gfits_create_matrix (&mass_h, &mass_i); 323 324 gfits_init_header (&age_h); 322 325 gfits_create_header (&age_h); 323 326 gfits_create_matrix (&age_h, &age_i); 327 324 328 fprintf (stderr, "created FITS buffers\n"); 325 329 -
trunk/Ohana/src/misc/src/usmaeder.c
r7080 r15487 75 75 UV_h.extend = FALSE; 76 76 77 gfits_init_header (&V_h); 77 78 gfits_create_header (&V_h); 78 79 gfits_create_matrix (&V_h, &V_i); 80 81 gfits_init_header (&UV_h); 79 82 gfits_create_header (&UV_h); 80 83 gfits_create_matrix (&UV_h, &UV_i); -
trunk/Ohana/src/mosastro/src/mkheader.c
r7080 r15487 7 7 ALLOCATE (header, Header, 1); 8 8 9 header[0].simple = TRUE;9 gfits_init_header (header); 10 10 header[0].bitpix = -32; 11 header[0].unsign = FALSE;12 header[0].bscale = 1.0;13 header[0].bzero = 0.0;14 11 header[0].Naxes = 2; 15 12 header[0].Naxis[0] = Nx; -
trunk/Ohana/src/mosastro/src/mkmosaic.c
r7080 r15487 15 15 ALLOCATE (header, Header, 1); 16 16 17 gfits_init_header (header); 18 17 19 header[0].bitpix = -32; 18 header[0].unsign = FALSE;19 header[0].extend = FALSE;20 header[0].bscale = 1.0;21 header[0].bzero = 0.0;22 20 header[0].Naxes = 2; 23 21 header[0].Naxis[0] = Xmax - Xmin; -
trunk/Ohana/src/opihi/cmd.data/rd.c
r13479 r15487 5 5 6 6 int i, N, status, plane, Nplane, extend, Nextend, Nskip, JustHead; 7 int ccdsel, done ;7 int ccdsel, done, Nword, IsCompressed; 8 8 char region[512], *ccdid, *filename; 9 9 FILE *f; … … 85 85 return (FALSE); 86 86 } 87 if (gfits_extension_is_compressed (&buf[0].header)) { 88 IsCompressed = TRUE; 89 } 87 90 } 91 88 92 /* FITS extension by name */ 89 93 if (ccdsel) { … … 92 96 CCDKeyword = get_variable ("CCDKEYWORD"); 93 97 if (CCDKeyword == (char *) NULL) { 94 gprint (GP_ERR, "CCDKEYWORD variable is not set; ");95 gprint (GP_ERR, "using EXTNAME as default\n");98 // gprint (GP_ERR, "CCDKEYWORD variable is not set; "); 99 // gprint (GP_ERR, "using EXTNAME as default\n"); 96 100 CCDKeyword = strcreate ("EXTNAME"); 97 101 } … … 106 110 return (FALSE); 107 111 } 108 if (!gfits_scan (&buf[0].header, CCDKeyword, "%s", 1, ID)) { 112 113 // for compressed data tables, EXTNAME may be duplicated, with the first one containing the 114 // word 'COMPRESSED_IMAGE'. in this case, check the second EXTNAME, if CCDKeyword == EXTNAME 115 // this may have to be a more obscure test specifically for 'imcopy' data... 116 // need to check each header, since file may contain a mix 117 118 Nword = 1; 119 IsCompressed = FALSE; 120 if (gfits_extension_is_compressed (&buf[0].header)) { 121 if (!strcmp (CCDKeyword, "EXTNAME")) Nword = 2; 122 IsCompressed = TRUE; 123 } 124 if (!gfits_scan (&buf[0].header, CCDKeyword, "%s", Nword, ID)) { 109 125 gprint (GP_ERR, "%s not in header\n", CCDKeyword); 110 126 DeleteBuffer (buf); … … 123 139 /* fix up header, if needed */ 124 140 if (extend || ccdsel) { 125 static char simple[] = "SIMPLE = T / Standard FITS"; 126 int Ns, No; 127 128 Ns = strlen (simple); 129 No = 80 - Ns; 130 strncpy (buf[0].header.buffer, simple, Ns); 131 memset (&buf[0].header.buffer[Ns], ' ', No); 141 if (!IsCompressed) { 142 gfits_extended_to_primary (&buf[0].header, TRUE, "Standard FITS"); 143 } 132 144 } else { 133 145 gfits_fread_header (f, &buf[0].header); … … 135 147 136 148 /* for JustHead, we skip reading the data segment */ 149 // XXX for compressed data, we need to convert the header to the equivalent uncompressed version 137 150 if (JustHead) { 138 / * should be in CreateMatrix / CreateBuffer function */151 // XXX what are we doing here exactly? 139 152 buf[0].header.Naxes = 0; 140 153 ALLOCATE (buf[0].matrix.buffer, char, 1); … … 164 177 165 178 /* load matrix data */ 166 sprintf (region, "-1 -1 -1 -1 %d %d", (plane - 1), plane); 167 status = gfits_fread_matrix_segment (f, &buf[0].matrix, &buf[0].header, region); 168 fclose (f); 179 if (IsCompressed) { 180 FTable ftable; 181 Header theader; 182 ftable.header = &theader; 183 gfits_copy_header (&buf[0].header, ftable.header); 184 status = gfits_fread_ftable_data (f, &ftable); // XXX does this do more than read the bytes? 185 status = gfits_uncompress_image (&buf[0].header, &buf[0].matrix, &ftable, !(ccdsel || extend)); 186 gfits_free_table (&ftable); 187 // XXX this currently does not work for a cube (we get a cube back, not a specific plane) 188 } else { 189 sprintf (region, "-1 -1 -1 -1 %d %d", (plane - 1), plane); 190 status = gfits_fread_matrix_segment (f, &buf[0].matrix, &buf[0].header, region); 191 fclose (f); 192 } 169 193 170 194 if (!status) { -
trunk/Ohana/src/opihi/cmd.data/read_vectors.c
r7917 r15487 150 150 int read_table_vectors (int argc, char **argv, char *extname) { 151 151 152 int i, j, k, N bytes, Nread, Nextend, Ny, Binary;153 char type[16] ;152 int i, j, k, N, Nbytes, Nread, Nextend, Ny, Binary; 153 char type[16], ID[80], *CCDKeyword; 154 154 FTable table; 155 155 Header header; 156 156 Vector **vec; 157 157 158 table.buffer = NULL; 159 header.buffer = NULL; 160 161 CCDKeyword = NULL; 162 if ((N = get_argument (argc, argv, "-keyword"))) { 163 remove_argument (N, &argc, argv); 164 CCDKeyword = strcreate (argv[N]); 165 remove_argument (N, &argc, argv); 166 } 167 168 Nextend = -1; 169 if ((N = get_argument (argc, argv, "-extnum"))) { 170 remove_argument (N, &argc, argv); 171 Nextend = atoi (extname); 172 } 173 158 174 if (argc < 2) { 159 gprint (GP_ERR, "USAGE: read -fits extension name name ...\n");175 gprint (GP_ERR, "USAGE: read -fits extension [-extnum] [-keyword key] name name ...\n"); 160 176 gprint (GP_ERR, " ('extension' may be a name or number)\n"); 161 return (FALSE);162 } 163 164 if (f == (FILE *) NULL) return (FALSE);177 goto escape; 178 } 179 180 if (f == (FILE *) NULL) goto escape; 165 181 fseek (f, 0, SEEK_SET); 166 182 table.header = &header; 167 183 168 184 /* load appropriate extension (if extname is a number, use count) */ 169 if (isdigit(extname[0])) { 170 Nextend = atoi (extname); 171 172 for (i = 0; i <= Nextend; i++) { 173 if (!gfits_load_header (f, &header)) return (FALSE); 174 Nbytes = gfits_matrix_size (&header); 185 if (Nextend > -1) { 186 // first extension is PHU, cannot be a table. 187 // Nextend counts from 0 for first extension 188 if (!gfits_load_header (f, &header)) goto escape; 189 Nbytes = gfits_data_size (&header); 190 fseek (f, Nbytes, SEEK_CUR); 191 gfits_free_header (&header); 192 193 for (i = 0; i < Nextend; i++) { 194 if (!gfits_load_header (f, &header)) goto escape; 195 Nbytes = gfits_data_size (&header); 175 196 /* skip the prior data buffers */ 176 if (i < Nextend) { 197 fseek (f, Nbytes, SEEK_CUR); 198 gfits_free_header (&header); 199 } 200 if (!gfits_load_header (f, &header)) goto escape; 201 if (!gfits_fread_ftable_data (f, &table)) goto escape; 202 203 } else { 204 if (CCDKeyword == NULL) { 205 CCDKeyword = get_variable ("CCDKEYWORD"); 206 } 207 if (CCDKeyword == NULL) { 208 CCDKeyword = strcreate ("EXTNAME"); 209 } 210 211 while (1) { 212 if (!gfits_load_header (f, &header)) goto escape; 213 Nbytes = gfits_data_size (&header); 214 215 if (!gfits_scan (&header, CCDKeyword, "%s", 1, ID)) { 177 216 fseek (f, Nbytes, SEEK_CUR); 178 217 gfits_free_header (&header); 179 218 continue; 180 219 } 181 /* on the desired header, load buffer */ 182 ALLOCATE (table.buffer, char, Nbytes); 183 Nread = fread (table.buffer, sizeof (char), Nbytes, f); 184 if (Nread != Nbytes) { 185 gfits_free_table (&table); 220 if (strcmp (ID, extname)) { 221 fseek (f, Nbytes, SEEK_CUR); 186 222 gfits_free_header (&header); 187 return (FALSE); 188 } 189 table.size = Nbytes; 190 } 191 } else { 192 if (!gfits_fread_ftable (f, &table, extname)) return (FALSE); 223 continue; 224 } 225 if (!gfits_fread_ftable_data (f, &table)) goto escape; 226 break; 227 } 193 228 } 194 229 … … 196 231 Binary = FALSE; 197 232 gfits_scan (&header, "XTENSION", "%s", 1, type); 198 if (!strcmp (type, "BINTABLE")) { 199 Binary = TRUE; 200 } 233 if (strcmp (type, "BINTABLE") && strcmp (type, "TABLE")) { 234 gprint (GP_ERR, "specified extension (%s) is not a table\n", extname); 235 goto escape; 236 } 237 Binary = !strcmp (type, "BINTABLE"); 201 238 Ny = header.Naxis[1]; 202 239 … … 214 251 Nval = 0; 215 252 if (Binary) { 216 if (!gfits_get_bintable_column_type (&header, argv[i], type, &Nval)) return (FALSE);217 if (!gfits_get_bintable_column (&header, &table, argv[i], &data)) return (FALSE);253 if (!gfits_get_bintable_column_type (&header, argv[i], type, &Nval)) goto escape; 254 if (!gfits_get_bintable_column (&header, &table, argv[i], &data)) goto escape; 218 255 } else { 219 if (!gfits_get_table_column_type (&header, argv[i], type)) return (FALSE);220 if (!gfits_get_table_column (&header, &table, argv[i], &data)) return (FALSE);221 } 222 if (Nval == 0) return (FALSE);256 if (!gfits_get_table_column_type (&header, argv[i], type)) goto escape; 257 if (!gfits_get_table_column (&header, &table, argv[i], &data)) goto escape; 258 } 259 if (Nval == 0) goto escape; 223 260 224 261 ALLOCATE (vec, Vector *, Nval); … … 228 265 else 229 266 sprintf (name, "%s:%d", argv[i], j); 230 if ((vec[j] = SelectVector (name, ANYVECTOR, TRUE)) == NULL) return (FALSE);267 if ((vec[j] = SelectVector (name, ANYVECTOR, TRUE)) == NULL) goto escape; 231 268 REALLOCATE (vec[j][0].elements, float, MAX (Ny,1)); 232 269 vec[j][0].Nelements = Ny; … … 276 313 free (vec); 277 314 } 315 if (CCDKeyword != NULL) free (CCDKeyword); 278 316 gfits_free_table (&table); 279 317 gfits_free_header (&header); 280 318 return (TRUE); 319 320 escape: 321 if (CCDKeyword != NULL) free (CCDKeyword); 322 gfits_free_table (&table); 323 gfits_free_header (&header); 324 return (FALSE); 281 325 } -
trunk/Ohana/src/opihi/cmd.data/wd.c
r11887 r15487 91 91 if (!gfits_read_header (argv[2], &Xhead)) { 92 92 93 Xhead.simple = TRUE;93 gfits_init_header (&Xhead); 94 94 Xhead.bitpix = 16; 95 Xhead.Naxes = 0;96 97 95 Xhead.extend = TRUE; 98 Xhead.bscale = 1.0;99 Xhead.bzero = 0.0;100 Xhead.unsign = FALSE;101 102 96 gfits_create_header (&Xhead); 97 103 98 gfits_modify (&Xhead, "NEXTEND", "%d", 1, 0); 104 99 f = fopen (argv[2], "w"); -
trunk/Ohana/src/opihi/dimm/Image.c
r7080 r15487 55 55 Matrix matrix; 56 56 57 gfits_init_header (&header); 58 57 59 header.Naxes = 2; 58 60 header.Naxis[0] = image[0].Nx; 59 61 header.Naxis[1] = image[0].Ny; 60 62 header.bitpix = 16; 61 header.bzero = 0;62 header.bscale = 1;63 63 64 64 gfits_create_header (&header); -
trunk/Ohana/src/opihi/dvo/cmpread.c
r8648 r15487 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); -
trunk/Ohana/src/opihi/dvo/imbox.c
r13479 r15487 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); -
trunk/Ohana/src/opihi/lib.shell/BufferOps.c
r13479 r15487 76 76 /* assign the necessary internal values */ 77 77 buf[0].header.bitpix = -32; 78 buf[0].header.unsign = FALSE;79 buf[0].header.bzero = 0;80 buf[0].header.bscale = 1;81 82 78 buf[0].header.Naxes = 2; 83 79 buf[0].header.Naxis[0] = Nx; … … 85 81 86 82 buf[0].bitpix = bitpix; 87 buf[0].unsign = FALSE;88 83 buf[0].bzero = bzero; 89 84 buf[0].bscale = bscale; -
trunk/Ohana/src/opihi/pantasks/task_trange.c
r14590 r15487 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)) { -
trunk/Ohana/src/tools/Makefile
r12842 r15487 10 10 BIN = $(HOME)/bin 11 11 INC = $(HOME)/include 12 13 FULL_CFLAGS = $(CFLAGS) 14 FULL_CPPFLAGS = $(CPPFLAGS) -I$(INC) -I$(DESTINC) $(INCDIRS) -D$(ARCH) 15 FULL_LDFLAGS = $(LDFLAGS) -L$(LIB) -L$(DESTLIB) $(LIBDIRS) -ldvo -lFITS -lohana $(LIBFLAGS) 16 17 # these are all programs which just depend on a single c file: foo : foo.c 18 # we use a special set of rules in this directory which expect this simplification 12 # include ../../Makefile.Common 19 13 20 14 PROGRAMS = gconfig fhead ftable fields list_astro glockfile \ … … 22 16 medianfilter mefhead ckfits 23 17 24 tools: $(PROGRAMS)18 all tools: $(PROGRAMS) 25 19 26 $(PROGRAMS): % : $(BIN)/%.$(ARCH) 20 BASE_CFLAGS = $(CFLAGS) 21 BASE_CPPFLAGS = $(CPPFLAGS) -I$(INC) -I$(DESTINC) $(INCDIRS) -D$(ARCH) 22 BASE_LDFLAGS = $(LDFLAGS) -L$(LIB) -L$(DESTLIB) $(LIBDIRS) $(LIBFLAGS) 27 23 28 # copied from Makefile.Common : use a single c file: foo : foo.c 29 .PRECIOUS: %.$(ARCH).o 30 .PRECIOUS: $(BIN)/%.$(ARCH) 24 FULL_CFLAGS = $(BASE_CFLAGS) 25 FULL_CPPFLAGS = $(BASE_CPPFLAGS) 26 FULL_LDFLAGS = -ldvo -lFITS -lohana $(BASE_LDFLAGS) 27 28 # these are all programs which just depend on a single c file: foo : foo.c 29 # we use a special set of rules in this directory which expect this simplification 31 30 32 31 %.$(ARCH).o : %.c 33 32 $(CC) $(FULL_CFLAGS) $(FULL_CPPFLAGS) -c $< -o $@ 33 @echo "compiled $<" 34 @echo "" 34 35 35 36 $(BIN)/%.$(ARCH) : $(SRC)/%.$(ARCH).o 36 37 @if [ ! -d $(BIN) ]; then mkdir -p $(BIN); fi 37 38 $(CC) $(FULL_CFLAGS) -o $@ $^ $(FULL_LDFLAGS) 39 @echo "compiled $*" 40 @echo "" 38 41 39 42 $(DESTBIN)/%: $(BIN)/%.$(ARCH) … … 41 44 rm -f $(DESTBIN)/$* 42 45 cp $(BIN)/$*.$(ARCH) $(DESTBIN)/$* 46 @echo "installed $*" 47 @echo "" 48 49 $(PROGRAMS) : % : $(BIN)/%.$(ARCH) 50 51 %.clean: 52 rm -f $(SRC)/$*.$(ARCH).o 53 rm -f $(BIN)/$*.$(ARCH) 43 54 44 55 %.install: … … 48 59 for i in $(PROGRAMS); do make $$i.install || exit; done 49 60 50 %.clean:51 rm -f $(SRC)/$*.$(ARCH).o52 rm -f $(BIN)/$*.$(ARCH)53 61 54 62 clean: … … 61 69 rm -rf $(BIN) 62 70 rm -rf $(LIB) 71 72 # $@ : target filename 73 # $* : matched word (%) 74 # $< : first prereq 75 # $^ : all prereqs 76 77 .PRECIOUS: %.$(ARCH).o 78 .PRECIOUS: $(BIN)/%.$(ARCH) 79 -
trunk/Ohana/src/tools/src/ckfits.c
r12333 r15487 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); -
trunk/Ohana/src/tools/src/fields.c
r12333 r15487 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 ++; -
trunk/Ohana/src/tools/src/ftable.c
r12399 r15487 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); -
trunk/Ohana/src/tools/src/mefhead.c
r12333 r15487 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.
