- Timestamp:
- May 3, 2010, 8:41:49 AM (16 years ago)
- Location:
- branches/tap_branches
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/tap_branches
- Property svn:mergeinfo changed
-
branches/tap_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/tap_branches/Ohana/src/libfits/matrix/F_compress_M.c
r23724 r27838 24 24 gfits_delete (header, ZNAME, 1); } 25 25 26 # define MOD_KEYWORD_ALT(ZNAME,NAME,TYPE,IN,OUT) { \ 27 if (gfits_scan_alt (header, ZNAME, TYPE, 1, IN)) { \ 28 gfits_modify_alt (header, NAME, TYPE, 1, OUT); \ 29 } \ 30 gfits_delete (header, ZNAME, 1); } 31 26 32 # define MOD_KEYWORD_REQUIRED(ZNAME,NAME,TYPE,IN,OUT) { \ 27 33 if (!gfits_scan (header, ZNAME, TYPE, 1, IN)) ESCAPE; \ … … 31 37 int gfits_uncompress_image (Header *header, Matrix *matrix, FTable *ftable) { 32 38 33 int i, j, status, zimage, zcol, Nzrows, Nout, Nzdata, max_tile_size; 39 off_t Nzdata, Nzrows, zcol; 40 int i, j, status, zimage, Nout, max_tile_size; 34 41 char cmptype[80]; 35 42 char zaxis[10], naxis[10], key[10], word[81], exttype[81], checksum[81], datasum[81]; … … 51 58 52 59 // is ZIMAGE present? 53 status = gfits_scan (ftable->header, "ZIMAGE", "%t", 1, &zimage);60 status = gfits_scan_alt (ftable->header, "ZIMAGE", "%t", 1, &zimage); 54 61 if (!status || !zimage) ESCAPE; 55 62 … … 70 77 snprintf (zaxis, 10, "ZNAXIS%d", i + 1); 71 78 snprintf (naxis, 10, "NAXIS%d", i + 1); 72 MOD_KEYWORD_REQUIRED (zaxis, naxis, "% d", &header->Naxis[i],header->Naxis[i]);79 MOD_KEYWORD_REQUIRED (zaxis, naxis, "%lld", (long long *) &header->Naxis[i], (long long) header->Naxis[i]); 73 80 } 74 81 … … 118 125 int have_ztension; 119 126 120 have_zsimple = gfits_scan (header, "ZSIMPLE", "%t", 1, &zsimple);127 have_zsimple = gfits_scan_alt (header, "ZSIMPLE", "%t", 1, &zsimple); 121 128 have_ztension = gfits_scan (header, "ZTENSION", "%s", 1, exttype); 122 129 … … 130 137 gfits_extended_to_primary (header, header->simple, "Image data"); 131 138 132 MOD_KEYWORD ("ZEXTEND", "EXTEND", "%t", &header->extend, header->extend);133 MOD_KEYWORD ("ZBLOCKED", "BLOCKED", "%t", &header->extend, header->extend);139 MOD_KEYWORD_ALT ("ZEXTEND", "EXTEND", "%t", &header->extend, header->extend); 140 MOD_KEYWORD_ALT ("ZBLOCKED", "BLOCKED", "%t", &header->extend, header->extend); 134 141 } 135 142 … … 140 147 gfits_extended_to_primary (header, header->simple, "Image data"); 141 148 142 MOD_KEYWORD ("ZEXTEND", "EXTEND", "%t", &header->extend, header->extend);143 MOD_KEYWORD ("ZBLOCKED", "BLOCKED", "%t", &header->extend, header->extend);149 MOD_KEYWORD_ALT ("ZEXTEND", "EXTEND", "%t", &header->extend, header->extend); 150 MOD_KEYWORD_ALT ("ZBLOCKED", "BLOCKED", "%t", &header->extend, header->extend); 144 151 } 145 152 … … 175 182 176 183 zscale = 1; 177 gfits_scan (header, "ZSCALE", "% lf", 1, &zscale);184 gfits_scan (header, "ZSCALE", "%f", 1, &zscale); 178 185 179 186 zblank = 32767; … … 184 191 185 192 zzero = 0; 186 gfits_scan (header, "ZZERO", "% lf", 1, &zzero);193 gfits_scan (header, "ZZERO", "%f", 1, &zzero); 187 194 188 195 // find the COMPRESSED_DATA column (format should be 1PB, 1PI, 1PJ) … … 196 203 if (!gfits_varlength_column_define (ftable, &zdef, zcol)) ESCAPE; 197 204 gfits_delete (header, "TFIELDS", 1); 198 snprintf (key, 10, "TTYPE% d",zcol);205 snprintf (key, 10, "TTYPE%lld", (long long) zcol); 199 206 gfits_delete (header, key, 1); 200 snprintf (key, 10, "TFORM% d",zcol);207 snprintf (key, 10, "TFORM%lld", (long long) zcol); 201 208 gfits_delete (header, key, 1); 202 209 … … 236 243 ALLOCATE (out, char, odata_pixsize*max_tile_size); 237 244 245 off_t row; 246 238 247 // uncompress the data 239 248 Nzrows = ftable->header->Naxis[1]; 240 for ( i = 0; i < Nzrows; i++) {249 for (row = 0; row < Nzrows; row++) { 241 250 242 251 // expected output size for this tile 243 252 Nout = gfits_tile_size (matrix, otile, ztile); 244 253 245 zdata = gfits_varlength_column_pointer (ftable, &zdef, i, &Nzdata);254 zdata = gfits_varlength_column_pointer (ftable, &zdef, row, &Nzdata); 246 255 if (!zdata) return (FALSE); 247 256 … … 254 263 255 264 // gfits_uncompress_data uncompresses from zdata to the temporary output buffer which must be allocated 265 // XXX the tile must not be > 2GB 256 266 if (!gfits_uncompress_data ((char *)zdata, Nzdata, cmptype, optname, optvalue, Noptions, out, &Nout, odata_pixsize)) return (FALSE); 257 267 … … 284 294 285 295 // true sizes of this tile (in pixels) 286 int gfits_tile_size (Matrix *matrix, int *otile, int *ztile) {287 288 int i, Npixels, Ndimen;296 off_t gfits_tile_size (Matrix *matrix, int *otile, int *ztile) { 297 298 off_t i, Npixels, Ndimen; 289 299 290 300 Npixels = 1; … … 470 480 has_extension = gfits_scan (header, "XTENSION", "%s", 1, extension); 471 481 has_extname = gfits_scan (header, "EXTNAME", "%s", 1, extname); 472 has_zimage = gfits_scan (header, "ZIMAGE", "%t", 1, &zimage);482 has_zimage = gfits_scan_alt (header, "ZIMAGE", "%t", 1, &zimage); 473 483 474 484 if (has_extension && !strcmp (extension, "IMAGE")) return (FALSE); … … 486 496 int ztension, zimage; 487 497 488 has_zimage = gfits_scan (header, "ZIMAGE", "%t", 1, &zimage);489 has_ztension = gfits_scan (header, "ZTENSION", "%t", 1, &ztension);498 has_zimage = gfits_scan_alt (header, "ZIMAGE", "%t", 1, &zimage); 499 has_ztension = gfits_scan_alt (header, "ZTENSION", "%t", 1, &ztension); 490 500 491 501 if (has_zimage && zimage) return (TRUE);
Note:
See TracChangeset
for help on using the changeset viewer.
