- Timestamp:
- May 30, 2015, 7:59:48 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ohana.20150429/src/opihi/cmd.data/read_vectors.c
r38062 r38340 412 412 table.header = &header; 413 413 414 int IsCompressed = FALSE; 415 414 416 /* load appropriate extension (if extname is a number, use count) */ 415 417 if (Nextend > -1) { … … 430 432 if (!gfits_load_header (f, &header)) ESCAPE ("error reading header for extension %d\n", Nextend); 431 433 432 if (getSizes) { 434 IsCompressed = gfits_extension_is_compressed_table (&header); 435 436 if (getSizes && !IsCompressed) { 433 437 read_table_sizes (&header); 434 438 if (CCDKeyword != NULL) free (CCDKeyword); 435 439 gfits_free_header (&header); 436 440 return TRUE; 441 } 442 if (IsCompressed) { 443 if (getSizes) { 444 gprint (GP_ERR, "%s[%s] is compressed: -sizes is invalid\n", filename, extname); 445 gfits_free_header (&header); 446 return FALSE; 447 } 448 if ((start > 0) || (Nrows > -1)) { 449 gprint (GP_ERR, "%s[%s] is compressed: must read entire table\n", filename, extname); 450 gfits_free_header (&header); 451 return FALSE; 452 } 437 453 } 438 454 … … 483 499 } 484 500 485 if (getSizes) { 501 IsCompressed = gfits_extension_is_compressed_table (&header); 502 503 if (getSizes && !IsCompressed) { 486 504 read_table_sizes (&header); 487 505 if (CCDKeyword != NULL) free (CCDKeyword); … … 489 507 return TRUE; 490 508 } 509 if (IsCompressed) { 510 if (getSizes) { 511 gprint (GP_ERR, "%s[%s] is compressed: -sizes is invalid\n", filename, extname); 512 gfits_free_header (&header); 513 return FALSE; 514 } 515 if ((start > 0) || (Nrows > -1)) { 516 gprint (GP_ERR, "%s[%s] is compressed: must read entire table\n", filename, extname); 517 gfits_free_header (&header); 518 return FALSE; 519 } 520 } 491 521 492 522 if (Nrows == -1) { … … 503 533 504 534 if (!gfits_fread_ftable_range (f, padIfShort, &table, start, Nrows)) ESCAPE ("error reading table for extension %d\n", Nextend); 505 506 // if (!gfits_fread_ftable_data (f, &table, padIfShort)) ESCAPE ("error reading table for extension\n");507 508 535 break; 509 536 } … … 518 545 Binary = !strcmp (type, "BINTABLE"); 519 546 Ny = header.Naxis[1]; 547 548 Header *outheader = &header; 549 FTable *outtable = &table; 550 551 Header rawheader; 552 FTable rawtable; 553 if (IsCompressed) { 554 rawtable.header = &rawheader; 555 if (!gfits_uncompress_table (&table, &rawtable)) ESCAPE ("failed to uncompress table"); 556 outheader = &rawheader; 557 outtable = &rawtable; 558 gfits_free_header (&header); 559 gfits_free_table (&table); 560 Ny = rawheader.Naxis[1]; 561 } 520 562 521 563 /* find columns which match requested vectors */ … … 527 569 Nval = 0; 528 570 if (Binary) { 529 if (!gfits_get_bintable_column_type ( &header, argv[i], type, &Nval)) ESCAPE ("requested field not found");530 if (!gfits_get_bintable_column ( &header, &table, argv[i], &data)) ESCAPE ("error reading data from specified field");571 if (!gfits_get_bintable_column_type (outheader, argv[i], type, &Nval)) ESCAPE ("requested field not found"); 572 if (!gfits_get_bintable_column (outheader, outtable, argv[i], &data)) ESCAPE ("error reading data from specified field"); 531 573 } else { 532 if (!gfits_get_table_column_type ( &header, argv[i], type)) ESCAPE ("requested field not found");533 if (!gfits_get_table_column ( &header, &table, argv[i], &data)) ESCAPE ("error reading data from specified field");574 if (!gfits_get_table_column_type (outheader, argv[i], type)) ESCAPE ("requested field not found"); 575 if (!gfits_get_table_column (outheader, outtable, argv[i], &data)) ESCAPE ("error reading data from specified field"); 534 576 } 535 577 if (Nval == 0) ESCAPE ("no data for field in table"); … … 594 636 } 595 637 if (CCDKeyword != NULL) free (CCDKeyword); 596 gfits_free_table ( &table);597 gfits_free_header ( &header);638 gfits_free_table (outtable); 639 gfits_free_header (outheader); 598 640 return (TRUE); 599 641 }
Note:
See TracChangeset
for help on using the changeset viewer.
