- Timestamp:
- May 3, 2010, 8:45:22 AM (16 years ago)
- Location:
- branches/simmosaic_branches
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/simmosaic_branches
- Property svn:mergeinfo changed
-
branches/simmosaic_branches/Ohana
-
Property svn:mergeinfo
set to (toggle deleted branches)
/trunk/Ohana merged eligible /branches/eam_branches/Ohana.20100407 27635-27772 /branches/pap_delete/Ohana 27530-27595
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
branches/simmosaic_branches/Ohana/src/libdvo/src/dvo_image_raw.c
r24748 r27839 7 7 int dvo_image_load_raw (FITS_DB *db, int VERBOSE, int FORCE_READ) { 8 8 9 int Nimage, Ndata, size, ImageSize, nbytes, Nbytes;9 off_t Nimage, Ndata, size, ImageSize, nbytes, Nbytes; 10 10 struct stat filestatus; 11 11 char format[80], telescope[80]; … … 39 39 /* find number of images */ 40 40 Nimage = 0; 41 gfits_scan (&db[0].header, "NIMAGES", "% d", 1,&Nimage);41 gfits_scan (&db[0].header, "NIMAGES", "%lld", 1, (long long *) &Nimage); 42 42 if (stat (db[0].filename, &filestatus) == -1) { 43 43 if (VERBOSE) fprintf (stderr, "ERROR: failed to get status of image catalog\n"); … … 56 56 if (db[0].format == DVO_FORMAT_PS1_DEV_3) ImageSize = sizeof(Image_PS1_DEV_3); 57 57 if (db[0].format == DVO_FORMAT_PS1_V1) ImageSize = sizeof(Image_PS1_V1); 58 if (db[0].format == DVO_FORMAT_PS1_V2) ImageSize = sizeof(Image_PS1_V2); 58 59 if (db[0].format == DVO_FORMAT_PS1_REF) ImageSize = sizeof(Image_PS1_REF); 59 60 60 61 /* check that filesize makes sense */ 61 size = Nimage*ImageSize + db[0].header. size;62 size = Nimage*ImageSize + db[0].header.datasize; 62 63 if (size != filestatus.st_size) { 63 Ndata = (filestatus.st_size - db[0].header. size) / ImageSize;64 Ndata = (filestatus.st_size - db[0].header.datasize) / ImageSize; 64 65 if (VERBOSE) fprintf (stderr, "ERROR: image catalog has inconsistent size\n"); 65 if (VERBOSE) fprintf (stderr, "header: % d, data: %d\n", Nimage,Ndata);66 if (VERBOSE) fprintf (stderr, "header: %lld, data: %lld\n", (long long) Nimage, (long long) Ndata); 66 67 if (!FORCE_READ) exit (1); 67 68 Nimage = Ndata; … … 83 84 if (db[0].format == DVO_FORMAT_PS1_DEV_3) gfits_table_mkheader_Image_PS1_DEV_3 (&db[0].theader); 84 85 if (db[0].format == DVO_FORMAT_PS1_V1) gfits_table_mkheader_Image_PS1_V1 (&db[0].theader); 86 if (db[0].format == DVO_FORMAT_PS1_V2) gfits_table_mkheader_Image_PS1_V2 (&db[0].theader); 85 87 if (db[0].format == DVO_FORMAT_PS1_REF) gfits_table_mkheader_Image_PS1_REF (&db[0].theader); 86 88 … … 94 96 } 95 97 96 gfits_modify (&db[0].theader, "NAXIS2", "% d", 1,Nimage);98 gfits_modify (&db[0].theader, "NAXIS2", "%lld", 1, (long long) Nimage); 97 99 db[0].theader.Naxis[1] = Nimage; 98 db[0].ftable. size = gfits_data_size (&db[0].theader);100 db[0].ftable.datasize = gfits_data_size (&db[0].theader); 99 101 db[0].swapped = FALSE; /* table does not have internal byte-order */ 100 102 return (TRUE); … … 104 106 int dvo_image_update_raw (FITS_DB *db, int VERBOSE) { 105 107 106 int i, Nx, Ny, Nrow, Nbytes;107 int status, start, offset;108 int *row;108 off_t i, Nx, Ny, Nrow, Nbytes, start, offset; 109 off_t status; 110 off_t *row; 109 111 110 if (VERBOSE) fprintf (stderr, "writing out % d images\n",db[0].vtable.Nrow);112 if (VERBOSE) fprintf (stderr, "writing out %lld images\n", (long long) db[0].vtable.Nrow); 111 113 112 114 /* position to start of file */ 113 Fseek(db[0].f, 0, SEEK_SET);115 fseeko (db[0].f, 0, SEEK_SET); 114 116 115 117 /* write out complete header (no check on disk size?) */ 116 status = fwrite (db[0].header.buffer, 1, db[0].header. size, db[0].f);117 if (status != db[0].header. size) {118 status = fwrite (db[0].header.buffer, 1, db[0].header.datasize, db[0].f); 119 if (status != db[0].header.datasize) { 118 120 fprintf (stderr, "ERROR: failed writing data to image header\n"); 119 121 exit (1); … … 123 125 Nrow = db[0].vtable.Nrow; 124 126 row = db[0].vtable.row; 125 gfits_scan (db[0].vtable.header, "NAXIS1", "% d", 1,&Nx);126 gfits_scan (db[0].vtable.header, "NAXIS2", "% d", 1,&Ny);127 gfits_scan (db[0].vtable.header, "NAXIS1", "%lld", 1, (long long *) &Nx); 128 gfits_scan (db[0].vtable.header, "NAXIS2", "%lld", 1, (long long *) &Ny); 127 129 128 130 /* file pointer is at beginning of desired table data */ … … 131 133 for (i = 0; i < Nrow; i++) { 132 134 offset = start + Nx*row[i]; 133 fseek (db[0].f, offset, SEEK_SET);135 fseeko (db[0].f, offset, SEEK_SET); 134 136 Nbytes = fwrite (db[0].vtable.buffer[i], sizeof (char), Nx, db[0].f); 135 137 if (Nbytes != Nx) { return (FALSE); } … … 141 143 int dvo_image_save_raw (FITS_DB *db, int VERBOSE) { 142 144 143 int status, Nx, Ny, size, Nbytes; 145 off_t Nx, Ny, size, Nbytes; 146 int status; 144 147 145 if (VERBOSE) fprintf (stderr, "writing out % d images\n",db[0].theader.Naxis[1]);148 if (VERBOSE) fprintf (stderr, "writing out %lld images\n", (long long) db[0].theader.Naxis[1]); 146 149 147 150 /* position to start of file */ … … 149 152 150 153 /* write out complete header (no check on disk size?) */ 151 status = fwrite (db[0].header.buffer, 1, db[0].header. size, db[0].f);152 if (status != db[0].header. size) {154 status = fwrite (db[0].header.buffer, 1, db[0].header.datasize, db[0].f); 155 if (status != db[0].header.datasize) { 153 156 fprintf (stderr, "ERROR: failed writing data to image header\n"); 154 157 exit (1); 155 158 } 156 159 157 gfits_scan (db[0].ftable.header, "NAXIS1", "% d", 1,&Nx);158 gfits_scan (db[0].ftable.header, "NAXIS2", "% d", 1,&Ny);160 gfits_scan (db[0].ftable.header, "NAXIS1", "%lld", 1, (long long *) &Nx); 161 gfits_scan (db[0].ftable.header, "NAXIS2", "%lld", 1, (long long *) &Ny); 159 162 size = Nx * Ny; 160 163 Nbytes = fwrite (db[0].ftable.buffer, sizeof(char), size, db[0].f);
Note:
See TracChangeset
for help on using the changeset viewer.
