- Timestamp:
- May 3, 2010, 8:41:49 AM (16 years ago)
- Location:
- branches/tap_branches
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
extsrc/gpcsw/gpcsrc/fits/burntool/persist_fits.c (modified) (48 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/tap_branches
- Property svn:mergeinfo changed
-
branches/tap_branches/extsrc/gpcsw/gpcsrc/fits/burntool/persist_fits.c
r25299 r27838 52 52 AREA_TABLE_COL_SXFIT, 53 53 AREA_TABLE_COL_EXFIT, 54 AREA_TABLE_COL_FITERR, 54 55 55 56 /* Add new columns above this line. */ … … 86 87 { "sxfit", "Starting column for fit", "pixels", FH_TABLE_FORMAT_INT, 3, 0 }, 87 88 { "exfit", "Ending column for fit", "pixels", FH_TABLE_FORMAT_INT, 3, 0 }, 89 { "fiterr", "Error code of fit", "", FH_TABLE_FORMAT_INT, 3, 0 }, 88 90 }; 89 91 … … 222 224 for(k=0; k<cell[j].npersist; k++) 223 225 { 226 /* Retire old burns */ 227 if(cell[j].time - cell[j].persist[k].time > EXPIRE_TRAIL_TIME) 228 continue; 229 224 230 if(PERSIST_RETAIN) { 225 231 /* Keep fits which have a dubious slope */ … … 306 312 (fh_table_write_value(table, data, row, AREA_TABLE_COL_NFIT, &(area->nfit)) != FH_SUCCESS) || 307 313 (fh_table_write_value(table, data, row, AREA_TABLE_COL_SXFIT, &(area->sxfit)) != FH_SUCCESS) || 308 (fh_table_write_value(table, data, row, AREA_TABLE_COL_EXFIT, &(area->exfit)) != FH_SUCCESS)) 309 { 310 fprintf(stderr, "error: Error writing data to row %d of area table.\n", row); 314 (fh_table_write_value(table, data, row, AREA_TABLE_COL_EXFIT, &(area->exfit)) != FH_SUCCESS) || 315 (fh_table_write_value(table, data, row, AREA_TABLE_COL_FITERR, &(area->fiterr)) != FH_SUCCESS)) 316 { 317 fprintf(stderr, "\rerror: Error writing data to row %d of area table.\n", row); 311 318 return FH_BAD_VALUE; 312 319 } … … 346 353 for(k=0; k<cell[j].npersist; k++) 347 354 { 355 /* Retire old burns */ 356 if(cell[j].time - cell[j].persist[k].time > EXPIRE_TRAIL_TIME) 357 continue; 358 348 359 if(PERSIST_RETAIN) { 349 360 /* Keep fits which have a dubious slope */ … … 422 433 (fh_table_write_value(table, data, row, FIT_TABLE_COL_ZERO, &zero) != FH_SUCCESS)) 423 434 { 424 fprintf(stderr, " error: Error writing data to row %d of fit table.\n", row);435 fprintf(stderr, "\rerror: Error writing data to row %d of fit table.\n", row); 425 436 return FH_BAD_VALUE; 426 437 } … … 460 471 for(k=0; k<cell[j].npersist; k++) 461 472 { 473 /* Retire old burns */ 474 if(cell[j].time - cell[j].persist[k].time > EXPIRE_TRAIL_TIME) 475 continue; 476 462 477 if(PERSIST_RETAIN) { 463 478 /* Keep fits which have a dubious slope */ … … 526 541 */ 527 542 static fh_result 528 read_area(fhTable * table, void * data, int row )543 read_area(fhTable * table, void * data, int row, int apply) 529 544 { 530 545 int cell_num; … … 534 549 { 535 550 fprintf(stderr, 536 " error: Unable to get cell number from row %d of burn area table\n",551 "\rerror: Unable to get cell number from row %d of burn area table\n", 537 552 row); 538 553 return FH_BAD_VALUE; … … 542 557 if((cell_num < 0) || (cell_num > MAXCELL)) 543 558 { 544 fprintf(stderr, " error: illegal cell %d in area table row %d\n",559 fprintf(stderr, "\rerror: illegal cell %d in area table row %d\n", 545 560 cell_num, row); 546 561 boxbuf[row].cell = -1; … … 573 588 (fh_table_read_value(table, data, row, AREA_TABLE_COL_NFIT, &(boxbuf[row].nfit)) != FH_SUCCESS) || 574 589 (fh_table_read_value(table, data, row, AREA_TABLE_COL_SXFIT, &(boxbuf[row].sxfit)) != FH_SUCCESS) || 575 (fh_table_read_value(table, data, row, AREA_TABLE_COL_EXFIT, &(boxbuf[row].exfit)) != FH_SUCCESS)) 590 (fh_table_read_value(table, data, row, AREA_TABLE_COL_EXFIT, &(boxbuf[row].exfit)) != FH_SUCCESS) || 591 (fh_table_read_value(table, data, row, AREA_TABLE_COL_FITERR, &(boxbuf[row].fiterr)) != FH_SUCCESS)) 576 592 { 577 593 fprintf(stderr, 578 " error: Error reading values from row %d of burn area table\n",594 "\rerror: Error reading values from row %d of burn area table\n", 579 595 row); 580 596 boxbuf[row].nfit = 0; … … 593 609 boxbuf[row].xfit = (int *)calloc(boxbuf[row].nfit, sizeof(int)); 594 610 boxbuf[row].yfit = (int *)calloc(boxbuf[row].nfit, sizeof(int)); 595 boxbuf[row].fiterr = 0; 611 612 if(boxbuf[row].zero == NULL || 613 boxbuf[row].xfit == NULL || 614 boxbuf[row].yfit == NULL) { 615 fprintf(stderr, "\rerror: failed to alloc boxbuf\n"); 616 exit(-671); 617 } 618 // 100203 JT: fiterr now saved and read, refit if not just an "apply" 619 if(!apply) boxbuf[row].fiterr = 0; 596 620 } 597 621 … … 616 640 */ 617 641 static fh_result 618 read_area_table(HeaderUnit hu, fhTable * table )642 read_area_table(HeaderUnit hu, fhTable * table, int apply) 619 643 { 620 644 fh_result result = FH_INVALID; … … 627 651 (fh_get_int(hu, "TFIELDS", &num_cols) != FH_SUCCESS)) 628 652 { 629 fprintf(stderr, " error: Unable to find required keywords for area table dimensions\n");653 fprintf(stderr, "\rerror: Unable to find required keywords for area table dimensions\n"); 630 654 return FH_NOT_FOUND; 631 655 } … … 634 658 if(num_cols != table->num_cols) 635 659 { 636 fprintf(stderr, " error: %d-column area table found, expected %d cols.\n",660 fprintf(stderr, "\rerror: %d-column area table found, expected %d cols.\n", 637 661 num_cols, table->num_cols); 638 662 return FH_BAD_VALUE; … … 642 666 { 643 667 fprintf(stderr, 644 " error: too many boxes in area table. Max is %d, got %d\n",668 "\rerror: too many boxes in area table. Max is %d, got %d\n", 645 669 MAXBURN, num_rows); 646 670 return FH_BAD_VALUE; … … 654 678 { 655 679 fprintf(stderr, 656 " error: Unable to allocate %d bytes for area table.\n",680 "\rerror: Unable to allocate %d bytes for area table.\n", 657 681 table->table_size); 658 682 return FH_NO_MEMORY; … … 662 686 table->table_size, FH_TYPESIZE_8) != FH_SUCCESS) 663 687 { 664 fprintf(stderr, " error: Unable to map area table body for reading.\n");688 fprintf(stderr, "\rerror: Unable to map area table body for reading.\n"); 665 689 free(data); 666 690 return FH_INVALID; … … 669 693 for(i = 0; i < num_rows; i++) 670 694 { 671 if((result = read_area(table, data, i )) != FH_SUCCESS) break;695 if((result = read_area(table, data, i, apply)) != FH_SUCCESS) break; 672 696 } 673 697 … … 713 737 { 714 738 fprintf(stderr, 715 " error: Unable to get cell number from row %d of fit table\n",739 "\rerror: Unable to get cell number from row %d of fit table\n", 716 740 row); 717 741 return FH_BAD_VALUE; … … 720 744 if((*cell < 0) || (*cell > MAXCELL)) 721 745 { 722 fprintf(stderr, " error: illegal cell %d in fit table row %d\n",746 fprintf(stderr, "\rerror: illegal cell %d in fit table row %d\n", 723 747 *cell, row); 724 748 … … 733 757 { 734 758 fprintf(stderr, 735 " error: Error reading values from row %d of burn area table\n",759 "\rerror: Error reading values from row %d of burn area table\n", 736 760 row); 737 761 return FH_BAD_VALUE; … … 782 806 (fh_get_int(hu, "TFIELDS", &num_cols) != FH_SUCCESS)) 783 807 { 784 fprintf(stderr, " error: Unable to find required keywords for fit table dimensions\n");808 fprintf(stderr, "\rerror: Unable to find required keywords for fit table dimensions\n"); 785 809 return FH_NOT_FOUND; 786 810 } … … 789 813 if(num_cols != table->num_cols) 790 814 { 791 fprintf(stderr, " error: %d-column fit table found, expected %d cols.\n",815 fprintf(stderr, "\rerror: %d-column fit table found, expected %d cols.\n", 792 816 num_cols, table->num_cols); 793 817 return FH_BAD_VALUE; … … 805 829 { 806 830 fprintf(stderr, 807 " error: Unable to allocate %d bytes for area table.\n",831 "\rerror: Unable to allocate %d bytes for area table.\n", 808 832 table->table_size); 809 833 return FH_NO_MEMORY; … … 811 835 if(fh_read_image(hu, fh_file_desc(hu), data, table->table_size, FH_TYPESIZE_8) != FH_SUCCESS) 812 836 { 813 fprintf(stderr, " error: Unable to read fit table body.\n");837 fprintf(stderr, "\rerror: Unable to read fit table body.\n"); 814 838 free(data); 815 839 return FH_INVALID; … … 836 860 { 837 861 fprintf(stderr, 838 " error: Fit in table row %d does not match current area "862 "\rerror: Fit in table row %d does not match current area " 839 863 "(table cell=%d cx=%d cy=%d vs. area cell=%d cx=%d cy=%d)\n", 840 864 fit_table_row, … … 882 906 */ 883 907 fh_result 884 persist_fits_read(CELL *cell, const char * filename )908 persist_fits_read(CELL *cell, const char * filename, int apply) 885 909 { 886 910 HeaderUnit phu; … … 891 915 { 892 916 fprintf(stderr, 893 " error: unable to create header structure for FITS file \"%s\"\n",917 "\rerror: unable to create header structure for FITS file \"%s\"\n", 894 918 filename); 895 919 return FH_NO_MEMORY; … … 899 923 if ((result = fh_file(phu, filename, FH_FILE_RDONLY)) != FH_SUCCESS) 900 924 { 901 fprintf(stderr, 902 "error: unable to open FITS file \"%s\"\n", 925 fprintf(stderr, "\rerror: unable to open FITS file \"%s\"\n", 903 926 filename); 904 927 fh_destroy(phu); … … 911 934 if(!area_hu || !fit_hu) 912 935 { 913 fprintf(stderr, 914 "error: Unable to find persistence info in FITS file.\n"); 936 fprintf(stderr, "\rerror: Unable to find persistence info in FITS file.\n"); 915 937 fh_destroy(phu); 916 938 return FH_NOT_FOUND; … … 921 943 922 944 fh_ehu_by_extname(phu, DEFAULT_EXTNAME_AREA_TABLE); 923 if((result = read_area_table(area_hu, &area_table )) != FH_SUCCESS)945 if((result = read_area_table(area_hu, &area_table, apply)) != FH_SUCCESS) 924 946 { 925 947 free(area_table.strbuf); 926 948 free(fit_table.strbuf); 927 949 fh_destroy(phu); 950 fprintf(stderr, "\rerror: Unable to read area table from FITS file.\n"); 928 951 return result; 929 952 } … … 935 958 free(fit_table.strbuf); 936 959 fh_destroy(phu); 960 fprintf(stderr, "\rerror: Unable to read fit table from FITS file.\n"); 937 961 return result; 938 962 } … … 961 985 for(k=0; k<MAXCELL; k++) { 962 986 if( (i=cell[k].npersist) > 0) { 963 cell[k].persist = (OBJBOX *)calloc(i, sizeof(OBJBOX)); 987 if( (cell[k].persist = (OBJBOX *)calloc(i, sizeof(OBJBOX))) == NULL) { 988 fprintf(stderr, "\rerror: failed to alloc cell persist buffer\n"); 989 exit(-672); 990 } 964 991 cell[k].npersist = 0; 965 992 } … … 1018 1045 { 1019 1046 fprintf(stderr, 1020 " error: Unable to write correction info to FITS file. Correction FITS tables already exist.\n");1047 "\rerror: Unable to write correction info to FITS file. Correction FITS tables already exist.\n"); 1021 1048 return FH_NO_SPACE; 1022 1049 } … … 1025 1052 if ((fd = fh_file_desc(phu)) == -1) 1026 1053 { 1027 fprintf(stderr, " error: header passed has no associated file.\n");1054 fprintf(stderr, "\rerror: header passed has no associated file.\n"); 1028 1055 return FH_INVALID; 1029 1056 } … … 1033 1060 { 1034 1061 fprintf(stderr, 1035 " error: Unable to seek to end of file.\n");1062 "\rerror: Unable to seek to end of file.\n"); 1036 1063 return FH_IN_ERRNO; 1037 1064 } … … 1042 1069 { 1043 1070 fprintf(stderr, 1044 " error: Unable to create headers for correction FITS tables.\n");1071 "\rerror: Unable to create headers for correction FITS tables.\n"); 1045 1072 if(area_hu) fh_destroy(area_hu); 1046 1073 if(fit_hu) fh_destroy(fit_hu); … … 1066 1093 (fh_munmap_table(area_hu) != FH_SUCCESS)) 1067 1094 { 1068 fprintf(stderr, " error: Error encountered writing area table to FITS file.\n");1095 fprintf(stderr, "\rerror: Error encountered writing area table to FITS file.\n"); 1069 1096 fh_destroy(fit_hu); 1070 1097 free(area_table.strbuf); … … 1087 1114 (fh_munmap_table(fit_hu) != FH_SUCCESS)) 1088 1115 { 1089 fprintf(stderr, " error: Error encountered writing area table to FITS file.\n");1116 fprintf(stderr, "\rerror: Error encountered writing area table to FITS file.\n"); 1090 1117 free(area_table.strbuf); 1091 1118 free(fit_table.strbuf); … … 1149 1176 if(fh_get_int(phu_in, "NEXTEND", &num_extensions) != FH_SUCCESS) 1150 1177 { 1151 fprintf(stderr, " error: Unable to get NEXTEND from input primary FITS header.\n");1178 fprintf(stderr, "\rerror: Unable to get NEXTEND from input primary FITS header.\n"); 1152 1179 return FH_INVALID; 1153 1180 } … … 1157 1184 { 1158 1185 fprintf(stderr, 1159 " error: Unable to find persistence info in FITS file.\n");1186 "\rerror: Unable to find persistence info in FITS file.\n"); 1160 1187 return FH_INVALID; 1161 1188 } … … 1175 1202 if((fd_out = open(fileout, O_CREAT | O_RDWR, 0644)) < 0) 1176 1203 { 1177 fprintf(stderr, " error: Failed to open \"%s\" for output.\n",1204 fprintf(stderr, "\rerror: Failed to open \"%s\" for output.\n", 1178 1205 fileout); 1179 1206 exit(EXIT_FAILURE); … … 1192 1219 (fh_write(phu_out, fd_out) != FH_SUCCESS)) 1193 1220 { 1194 fprintf(stderr, " error: Unable to copy primary header to \"%s\"\n",1221 fprintf(stderr, "\rerror: Unable to copy primary header to \"%s\"\n", 1195 1222 fileout); 1196 1223 fh_destroy(phu_out); … … 1209 1236 if(!(ehu_in = fh_ehu(phu_in, i))) 1210 1237 { 1211 fprintf(stderr, " error: Unable to read extension %d from input FITS file\n", i);1238 fprintf(stderr, "\rerror: Unable to read extension %d from input FITS file\n", i); 1212 1239 fh_destroy(phu_out); 1213 1240 close(fd_out); … … 1217 1244 if (fh_get_str(ehu_in, "EXTNAME", extname, sizeof(extname)) != FH_SUCCESS) 1218 1245 { 1219 fprintf(stderr, " error: Unable to get EXTNAME from extension %d in input FITS file.\n", i);1246 fprintf(stderr, "\rerror: Unable to get EXTNAME from extension %d in input FITS file.\n", i); 1220 1247 fh_destroy(phu_out); 1221 1248 close(fd_out); … … 1233 1260 (fh_reserve(ehu_out, (2880/80)) != FH_SUCCESS)) 1234 1261 { 1235 fprintf(stderr, " error: Unable to copy extension %d to %s.\n", i, fileout);1262 fprintf(stderr, "\rerror: Unable to copy extension %d to %s.\n", i, fileout); 1236 1263 fh_destroy(phu_out); 1237 1264 close(fd_out); … … 1248 1275 (fh_copy_padded_image(ehu_out, fd_out, fh_file_desc(ehu_in)) != FH_SUCCESS)) 1249 1276 { 1250 fprintf(stderr, " error: Unable to copy extension %d to %s.\n", i, fileout);1277 fprintf(stderr, "\rerror: Unable to copy extension %d to %s.\n", i, fileout); 1251 1278 fh_destroy(phu_out); 1252 1279 close(fd_out);
Note:
See TracChangeset
for help on using the changeset viewer.
