- Timestamp:
- Jun 4, 2015, 5:42:47 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ohana.20150429/src/libfits/table/F_uncompress_T.c
r38363 r38366 13 13 # if (VERBOSE_DUMP) 14 14 int i; 15 fprintf (stderr, "%s data: ", message); 16 // for (i = 0; i < table->header->Naxis[0]*table->header->Naxis[1]; i++) { 17 for (i = 0; i < 16; i++) { 18 fprintf (stderr, "0x%02hhx ", table->buffer[i]); 15 fprintf (stderr, "%s data:\n", message); 16 for (i = 0; i < table->header->Naxis[0]*table->header->Naxis[1]; i++) { 17 // for (i = 0; i < 16; i++) { 18 fprintf (stderr, "%02hhx", table->buffer[i]); 19 if (i % 2) fprintf (stderr, " "); 20 if (i % 32 == 31) fprintf (stderr, "\n"); 19 21 } 20 22 fprintf (stderr, "\n"); … … 26 28 # if (VERBOSE_DUMP) 27 29 int i; 28 fprintf (stderr, "%s pntr: ", message); 29 for (i = 0; (i < 16) && (i < table->header->Naxis[0]*table->header->Naxis[1]); i++) { 30 fprintf (stderr, "0x%02hhx ", table->buffer[i]); 30 fprintf (stderr, "%s pntr:\n", message); 31 for (i = 0; i < table->header->Naxis[0]*table->header->Naxis[1]; i++) { 32 fprintf (stderr, "%02hhx", table->buffer[i]); 33 if (i % 2) fprintf (stderr, " "); 34 if (i % 32 == 31) fprintf (stderr, "\n"); 31 35 } 32 36 fprintf (stderr, "\n"); 33 37 34 fprintf (stderr, "%s data: ", message); 35 for (i = 0; (i < 16) && (i < table->header->pcount); i++) { 36 fprintf (stderr, "0x%02hhx ", table->buffer[table->heap_start + i]); 38 fprintf (stderr, "%s data:\n", message); 39 for (i = 0; i < table->header->pcount; i++) { 40 fprintf (stderr, "%02hhx", table->buffer[table->heap_start + i]); 41 if (i % 2) fprintf (stderr, " "); 42 if (i % 32 == 31) fprintf (stderr, "\n"); 37 43 } 38 44 fprintf (stderr, "\n"); … … 156 162 if (!zdata) ESCAPE; 157 163 158 if (strcasecmp(fields[i].zctype, "GZIP_1") && strcasecmp(fields[i].zctype, "GZIP_2") && strcasecmp(fields[i].zctype, "RICE_1")) { 164 if (VERBOSE_DUMP) { 165 int k; 166 fprintf (stderr, "u4: "); 167 for (k = 0; k < Nzdata; k++) { 168 fprintf (stderr, "%02hhx", zdata[k]); 169 if (k % 2) fprintf (stderr, " "); 170 // if (k % 32 == 31) fprintf (stderr, "\n"); 171 } 172 fprintf (stderr, "\n"); 173 } 174 175 if (strcasecmp(fields[i].zctype, "NONE") && 176 strcasecmp(fields[i].zctype, "NONE_2") && 177 strcasecmp(fields[i].zctype, "GZIP_1") && 178 strcasecmp(fields[i].zctype, "GZIP_2") && 179 strcasecmp(fields[i].zctype, "RICE_1") && 180 strcasecmp(fields[i].zctype, "RICE_ONE")) { 159 181 // Nzdata is number of bytes 160 182 if (!gfits_byteswap_zdata (zdata, Nzdata, fields[i].pixsize)) ESCAPE; 161 183 } 162 184 185 if (VERBOSE_DUMP) { 186 int k; 187 fprintf (stderr, "u3: "); 188 for (k = 0; k < Nzdata; k++) { 189 fprintf (stderr, "%02hhx", zdata[k]); 190 if (k % 2) fprintf (stderr, " "); 191 // if (k % 32 == 31) fprintf (stderr, "\n"); 192 } 193 fprintf (stderr, "\n"); 194 } 195 163 196 int Nrows = (row == Ntile - 1) ? ztilelast : ztilelen; 164 int Nraw = Nraw_alloc; // expected number of pixel: Nrows*fields[i].Nvalues 165 if (!gfits_uncompress_data (zdata, Nzdata, fields[i].zctype, NULL, NULL, 0, raw, &Nraw, fields[i].pixsize)) ESCAPE; 197 int Nraw = Nrows*fields[i].Nvalues*fields[i].pixsize; // expected number of bytes 198 if (!gfits_uncompress_data (zdata, Nzdata, fields[i].zctype, NULL, NULL, 0, raw, &Nraw, Nraw_alloc, fields[i].pixsize)) ESCAPE; 199 200 if (VERBOSE_DUMP) { 201 int k; 202 fprintf (stderr, "u2: "); 203 for (k = 0; k < Nraw*fields[i].pixsize; k++) { 204 fprintf (stderr, "%02hhx", raw[k]); 205 if (k % 2) fprintf (stderr, " "); 206 // if (k % 32 == 31) fprintf (stderr, "\n"); 207 } 208 fprintf (stderr, "\n"); 209 } 166 210 167 211 if (!strcasecmp(fields[i].zctype, "GZIP_1")) { … … 170 214 } 171 215 216 if (VERBOSE_DUMP) { 217 int k; 218 fprintf (stderr, "u1: "); 219 for (k = 0; k < Nraw*fields[i].pixsize; k++) { 220 fprintf (stderr, "%02hhx", raw[k]); 221 if (k % 2) fprintf (stderr, " "); 222 // if (k % 32 == 31) fprintf (stderr, "\n"); 223 } 224 fprintf (stderr, "\n"); 225 } 226 172 227 // int valid = (row == 0) && (i == 0); 173 228 … … 177 232 178 233 // copy the raw pixels from their native matrix locations to the temporary output buffer 179 if (!strcasecmp(fields[i].zctype, "GZIP_2") ) {234 if (!strcasecmp(fields[i].zctype, "GZIP_2") || !strcasecmp(fields[i].zctype, "NONE_2")) { 180 235 if (!gfits_distribute_table_gzp2 (tgttable, &fields[i], raw, row_start, Nrows)) ESCAPE; 181 236 } else { … … 233 288 for (i = 0; i < Nrows; i++) { 234 289 int row = row_start + i; 235 char *src = &raw[i*field->rowsize + k*Nrows*field->Nvalues]; 236 char *tgt = &table->buffer[Nx*row + field->offset + k]; 237 for (j = 0; j < field->Nvalues; j++, tgt+=field->pixsize, src++) { 238 *tgt = *src; 290 char *rawptr = &raw[i*field->Nvalues + k*Nrows*field->Nvalues]; 291 # ifdef BYTE_SWAP 292 char *tblptr = &table->buffer[Nx*row + field->offset + (field->pixsize - k - 1)]; 293 # else 294 char *tblptr = &table->buffer[Nx*row + field->offset + k]; 295 # endif 296 for (j = 0; j < field->Nvalues; j++, tblptr += field->pixsize, rawptr++) { 297 *tblptr = *rawptr; 239 298 } 240 299 }
Note:
See TracChangeset
for help on using the changeset viewer.
