Changeset 26766
- Timestamp:
- Feb 3, 2010, 1:00:09 PM (16 years ago)
- Location:
- trunk/extsrc/gpcsw/gpcsrc
- Files:
-
- 22 edited
-
analysis/libpscoords/pscoords.c (modified) (1 diff)
-
analysis/libpscoords/pscoords.h (modified) (1 diff)
-
analysis/libpsf/psf.c (modified) (2 diffs)
-
analysis/libpsf/psf2dim.f (modified) (1 diff)
-
fits/burntool/burnfix.c (modified) (2 diffs)
-
fits/burntool/burntool.c (modified) (17 diffs)
-
fits/burntool/burntool.h (modified) (3 diffs)
-
fits/burntool/burnutils.c (modified) (1 diff)
-
fits/burntool/man/burntool.1 (modified) (2 diffs)
-
fits/burntool/persist_fits.c (modified) (48 diffs)
-
fits/burntool/persist_fits.h (modified) (1 diff)
-
fits/burntool/persistfix.c (modified) (1 diff)
-
fits/burntool/persistio.c (modified) (10 diffs)
-
fits/burntool/psfstamp.c (modified) (9 diffs)
-
fits/burntool/stardetect.c (modified) (1 diff)
-
fits/burntool/trailfit.c (modified) (4 diffs)
-
fits/libfhreg/general.h (modified) (3 diffs)
-
fits/libfhreg/gpc_all.h (modified) (1 diff)
-
fits/libfhreg/gpc_detector.h (modified) (3 diffs)
-
fits/libfhreg/gpc_instrument.h (modified) (2 diffs)
-
fits/libfhreg/gpc_shutter.h (modified) (1 diff)
-
fits/libfhreg/gpc_telescope.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/extsrc/gpcsw/gpcsrc/analysis/libpscoords/pscoords.c
r24391 r26766 181 181 #define PSC_REFRACT_CONST 55.7 /* Standard refraction ("/tanz) at STP */ 182 182 #endif 183 184 /* Return default values for current fit*/ 185 int psc_defaults(double *pscale, double *d2, double *d3, double *airdens) 186 { 187 *pscale = PS_scale; 188 *d2 = PS_d2; 189 *d3 = PS_d3; 190 *airdens = PS_airdens; 191 return(0); 192 } 183 193 184 194 /* Enable application of chip offsets (um, mrad)? */ -
trunk/extsrc/gpcsw/gpcsrc/analysis/libpscoords/pscoords.h
r24391 r26766 244 244 /* Enable application of chip offsets (um, mrad)? */ 245 245 int psc_load_otaoff(const char *fname); 246 247 /* Return default values for current fit*/ 248 int psc_defaults(double *pscale, double *d2, double *d3, double *airdens); -
trunk/extsrc/gpcsw/gpcsrc/analysis/libpsf/psf.c
r23924 r26766 111 111 /* Load up results (with a few sanity checks!) */ 112 112 if(psfout != NULL && alg != PSF_2DIM) { 113 psfout->ix = 0; 114 psfout->iy = 0; 113 // psfout->ix = 0; 114 // psfout->iy = 0; 115 // 091211: JT this is a harmless lie, supposed to be highest pixel 116 psfout->ix = xu; 117 psfout->iy = yu; 118 // 115 119 psfout->x0 = xu; 116 120 psfout->y0 = yu; … … 128 132 psfextra->xfw = xfwhm; 129 133 psfextra->yfw = yfwhm; 134 psfextra->majfw = 0.0; 135 psfextra->minfw = 0.0; 136 psfextra->thfw = 0.0; 137 psfextra->wpeak = 0.0; 138 psfextra->wbkgnd = 0.0; 139 psfextra->dflux = 0.0; 140 psfextra->dbkgnd = 0.0; 141 psfextra->rmsbkgnd = 0.0; 130 142 } 131 143 if(alg == PSF_BIN) psfextra->binfactor = extra; -
trunk/extsrc/gpcsw/gpcsrc/analysis/libpsf/psf2dim.f
r23490 r26766 188 188 wpar(9) = 0.5 189 189 * WAUX: NXPATCH, NYPATCH, NX, XOFF, YOFF, EADU, EXTRASKY, IGNORE_VALUE, INIT 190 waux(1) = min(n,nx-1-mx) + n + 1 191 waux(2) = min(n,ny-1-my) + n + 1 190 C waux(1) = min(n,nx-1-mx) + n + 1 191 C waux(2) = min(n,ny-1-my) + n + 1 192 waux(1) = min(2*n+1, nx-1-iwxs) 193 waux(2) = min(2*n+1, ny-1-iwys) 192 194 waux(3) = nx 193 195 waux(4) = iwxs -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/burnfix.c
r25070 r26766 109 109 /* Restore all the burns */ 110 110 for(k=0; k<cell->npersist; k++) { 111 if(!cell->persist[k].fiterr) 111 if(!cell->persist[k].fiterr && 112 (cell->persist[k].func == BURN_PWR || 113 cell->persist[k].func == BURN_EXP) ) { 112 114 sub_fit(nx, ny, NX, buf, &(cell->persist[k]), -1); 115 } 113 116 } 114 117 return(0); … … 124 127 /* Restore all the burns */ 125 128 for(k=0; k<cell->npersist; k++) { 126 if(!cell->persist[k].fiterr) 129 if(!cell->persist[k].fiterr && 130 (cell->persist[k].func == BURN_PWR || 131 cell->persist[k].func == BURN_EXP) ) { 127 132 sub_fit(nx, ny, NX, buf, &(cell->persist[k]), +1); 133 } 128 134 } 129 135 return(0); -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/burntool.c
r25438 r26766 50 50 fprintf(stderr, "\rerror: burntool could not open file `%s'\n", 51 51 ifilename); 52 exit( EXIT_FAILURE);52 exit(-314); 53 53 } 54 54 nextend = fh_extensions(ihu); … … 57 57 ifilename); 58 58 #ifndef JT2DHACK 59 exit( EXIT_FAILURE);59 exit(-315); 60 60 #endif 61 61 } … … 343 343 ifilename); 344 344 if(persist_fits_remove_tables(ihu, deltablefitsfile) != FH_SUCCESS) { 345 exit(EXIT_FAILURE); 346 } 347 else { 345 exit(-316); 346 } else { 348 347 exit(EXIT_SUCCESS); 349 348 } … … 365 364 /* Read the persistence data for this OTA */ 366 365 if(persistfile != NULL) { /* Text data file */ 367 if(persist_read(OTA, persistfile )) exit(EXIT_FAILURE);366 if(persist_read(OTA, persistfile, apply)) exit(-317); 368 367 } else if(persistfitsfile != NULL) { /* FITS table */ 369 if(persist_fits_read(OTA, persistfitsfile ) != FH_SUCCESS)370 exit( EXIT_FAILURE);368 if(persist_fits_read(OTA, persistfitsfile, apply) != FH_SUCCESS) 369 exit(-318); 371 370 } 372 371 … … 427 426 "\rerror: Cannot read EXTNAME from `%s' for extension #%d\n", 428 427 ifilename, ext); 429 exit( EXIT_FAILURE);428 exit(-319); 430 429 } 431 430 if(fh_get_str(ehu, "XTENSION", xtension, sizeof(xtension)) != FH_SUCCESS) { … … 433 432 "\rerror: Cannot read XTENSION from `%s' for extension #%d\n", 434 433 ifilename, ext); 435 exit( EXIT_FAILURE);434 exit(-320); 436 435 } 437 436 if(!strcmp("TABLE", xtension)) { … … 461 460 fprintf(stderr, 462 461 "\rerror: Illegal cell number %d from '%s'\n", cell, extname); 463 exit( EXIT_FAILURE);462 exit(-321); 464 463 } 465 464 … … 487 486 (naxis >= 3 && fh_get_NAXIS3(ehu, &naxis3) != FH_SUCCESS)) { 488 487 fprintf(stderr, "\rerror: Cannot get NAXIS*'\n"); 489 exit( EXIT_FAILURE);488 exit(-322); 490 489 } 491 490 if (naxis != 2) { … … 503 502 } 504 503 fprintf(stderr, "\rerror: 32bpp support not yet implemented in burntool.\n"); 505 exit( EXIT_FAILURE);504 exit(-324); 506 505 } 507 506 /* Check BSCALE and warn if it is anything other than 1.0. … … 525 524 } 526 525 527 buf = (IMTYPE*)malloc(naxis1*naxis2*naxis3*sizeof(short)); 526 if( (buf = (IMTYPE*)malloc(naxis1*naxis2*naxis3*sizeof(short))) == NULL) { 527 fprintf(stderr, "\rerror: failed to alloc FITS buffer\n"); 528 exit(-325); 529 } 528 530 if (fh_read_padded_image(ehu, fh_file_desc(ehu), buf, 529 531 naxis1*naxis2*naxis3*sizeof(short), … … 531 533 fprintf(stderr, "\rerror: failed to read image data for extension `%s'.\n", 532 534 extname); 533 free(buf);534 exit( EXIT_FAILURE);535 // free(buf); 536 exit(-326); 535 537 } 536 538 … … 617 619 fprintf(stderr, "\rerror: failed to re-write image data for extension `%s'.\n", 618 620 extname); 619 free(buf);620 exit( EXIT_FAILURE);621 // free(buf); 622 exit(-327); 621 623 } 622 624 } … … 667 669 if(2*SKY_MARG*ny > nmedian_buf) { 668 670 if(median_buf != NULL) free(median_buf); 669 median_buf = (int *)calloc(2*SKY_MARG*ny, sizeof(int)); 671 if( (median_buf = (int *)calloc(2*SKY_MARG*ny, sizeof(int))) == NULL) { 672 fprintf(stderr, "\rerror: failed to alloc median buffer\n"); 673 exit(-667); 674 } 675 670 676 nmedian_buf = 2*SKY_MARG*ny; 671 677 } … … 674 680 if(NX*NY > nimbuf) { 675 681 if(imbuf != NULL) free(imbuf); 676 imbuf = (int *)calloc(NX*NY, sizeof(DTYPE)); 682 if( (imbuf = (int *)calloc(NX*NY, sizeof(DTYPE))) == NULL) { 683 fprintf(stderr, "\rerror: failed to alloc cell copy\n"); 684 exit(-668); 685 } 677 686 nimbuf = NX*NY; 678 687 } … … 681 690 if(NX*NY > nmbuf) { 682 691 if(mbuf != NULL) free(mbuf); 683 mbuf = (int *)calloc(NX*NY, sizeof(MTYPE)); 692 if( (mbuf = (int *)calloc(NX*NY, sizeof(MTYPE))) == NULL) { 693 fprintf(stderr, "\rerror: failed to alloc mask buffer\n"); 694 exit(-669); 695 } 684 696 nmbuf = NX*NY; 685 697 } … … 688 700 if(NX*NY > nmsbuf) { 689 701 if(msbuf != NULL) free(msbuf); 690 msbuf = (int *)calloc(NX*NY, sizeof(MTYPE)); 702 if( (msbuf = (int *)calloc(NX*NY, sizeof(MTYPE))) == NULL) { 703 fprintf(stderr, "\rerror: failed to alloc veto buffer\n"); 704 exit(-670); 705 } 691 706 nmsbuf = NX*NY; 692 707 } … … 755 770 printf(" restore={t|f} Restore the input MEF by adding input fits?\n"); 756 771 printf(" apply={t|f} Modify the input MEF by subtracting previously calculated fits?\n"); 757 printf(" tableonly={t|f} Calculate fits but do *not* modify the input MEF images, only write tables\n");772 printf(" tableonly={t|f} Calculate fits but do *not* modify the input MEF pixels, only write tables\n"); 758 773 printf(" in=fname Input file for previous burn persistence streaks\n"); 759 774 printf(" infits=fname Input FITS file for previous burn persistence streaks (stored\n"); -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/burntool.h
r25070 r26766 91 91 #define BURN_EXP 2 /* Exponential */ 92 92 #define BURN_BLASTED 3 /* Blasted top to bottom: flag only for IPP */ 93 #define BURN_POSSLOPE 4 /* Positive slope fit (bad) but significant */ 93 94 #define PSF_STAR 9 /* Unfitted: good psf star */ 94 95 … … 175 176 STATIC int burn_restore(int nx, int ny, int NX, IMTYPE *buf, CELL *cell); 176 177 STATIC int burn_apply(int nx, int ny, int NX, IMTYPE *buf, CELL *cell); 177 STATIC int persist_read(CELL *cell, const char *infile );178 STATIC int persist_read(CELL *cell, const char *infile, int apply); 178 179 STATIC int persist_write(CELL *cell, const char *outfile); 179 180 STATIC int persist_fix(int nx, int ny, int stride, IMTYPE *buf, CELL *cell); 180 181 STATIC int persist_merge(CELL *cell); 182 183 //fh_result persist_fits_read(CELL *cell, const char *filename, int apply); 184 //fh_result persist_fits_write(CELL *cell, HeaderUnit phu); 185 //fh_result persist_fits_remove_tables(HeaderUnit phu_in, const char *fileout); 181 186 182 187 STATIC int star_detect(int nx, int ny, int NX, int NY, DTYPE *data, … … 208 213 STATIC int wlinearfit(int npt, double *x, double *y, 209 214 double *w, double *a, double *b); 215 STATIC int linearrms(int npt, double *x, double *y, double a, double b, double *rms); 210 216 STATIC int int_median(int n, int *key); 211 217 STATIC double double_median(int n, double *key); -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/burnutils.c
r25070 r26766 290 290 return(0); 291 291 } 292 293 /****************************************************************/ 294 /* Return of RMS relative to Fit y = ax + b */ 295 STATIC int linearrms(int npt, double *x, double *y, double a, double b, 296 double *rms) 297 { 298 *rms = 0.0; 299 while(--npt >= 0) *rms += (y[npt]-a*x[npt]-b)*(y[npt]-a*x[npt]-b); 300 if(*rms > 0) *rms = sqrt(*rms); 301 return(0); 302 } -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/man/burntool.1
r25324 r26766 60 60 correction is applied) and they will propagate from input to output 61 61 until they finally achieve a legal fit with negligible amplitude. 62 Note that if burntool decides that a fit had a bad slope but was 63 non-negligible it writes a function type "BURN_POSSLOPE" = 4 so 64 the box is available for masking if desired, and can be refitted 65 on subsequent images. 62 66 63 67 Burntool also identifies really blasted areas which are saturated from … … 227 231 228 232 tableonly={t|f} 229 Calculate fits but do *not* modify the input MEF images,233 Calculate fits but do *not* modify the input MEF pixels, 230 234 only write the fit data as a FITS and/or text table (default f) 231 235 -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/persist_fits.c
r25299 r26766 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); -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/persist_fits.h
r23924 r26766 24 24 25 25 fh_result 26 persist_fits_read(CELL *cell, const char * filename );26 persist_fits_read(CELL *cell, const char * filename, int apply); 27 27 28 28 fh_result -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/persistfix.c
r23924 r26766 34 34 } 35 35 continue; 36 } 37 38 /* This had a significant positive slope, what do we do now? */ 39 if( (cell->persist)[k].func == BURN_POSSLOPE) { 40 /* try again, so let it slide through... */ 36 41 } 37 42 -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/persistio.c
r25299 r26766 16 16 /****************************************************************/ 17 17 /* persist_read(): Read all the persistence trails from a file */ 18 STATIC int persist_read(CELL *cell, const char *infile )18 STATIC int persist_read(CELL *cell, const char *infile, int apply) 19 19 { 20 20 int i, k, nbox=0; … … 38 38 while(fgets(line, 1024, fp) != NULL) { 39 39 if(line[0] == '#') continue; 40 sscanf(line, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %lf %d %d %d ",40 sscanf(line, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %lf %d %d %d %d", 41 41 &boxbuf[nbox].cell, &boxbuf[nbox].time, 42 42 &boxbuf[nbox].cx, &boxbuf[nbox].cy, … … 50 50 &boxbuf[nbox].func, &boxbuf[nbox].up, 51 51 &boxbuf[nbox].slope, &boxbuf[nbox].nfit, 52 &boxbuf[nbox].sxfit, &boxbuf[nbox].exfit); 52 &boxbuf[nbox].sxfit, &boxbuf[nbox].exfit, 53 &boxbuf[nbox].fiterr); 53 54 if(boxbuf[nbox].nfit > 0) { 54 55 boxbuf[nbox].zero = (double *)calloc(boxbuf[nbox].nfit, sizeof(double)); 55 56 boxbuf[nbox].xfit = (int *)calloc(boxbuf[nbox].nfit, sizeof(int)); 56 57 boxbuf[nbox].yfit = (int *)calloc(boxbuf[nbox].nfit, sizeof(int)); 58 if(boxbuf[nbox].zero == NULL || 59 boxbuf[nbox].xfit == NULL || 60 boxbuf[nbox].yfit == NULL) { 61 fprintf(stderr, "\rerror: failed to alloc boxbuf\n"); 62 exit(-673); 63 } 64 57 65 for(i=0; i<boxbuf[nbox].nfit; i++) { 58 66 if(fgets(line, 1024, fp) == NULL) { … … 64 72 } 65 73 } 66 boxbuf[nbox].fiterr = 0; 74 // 100203 JT: fiterr now saved and read, refit if not just an "apply" 75 if(!apply) boxbuf[nbox].fiterr = 0; 67 76 /* Augment counts */ 68 77 k = boxbuf[nbox].cell; … … 85 94 for(k=0; k<MAXCELL; k++) { 86 95 if( (i=cell[k].npersist) > 0) { 87 cell[k].persist = (OBJBOX *)calloc(i, sizeof(OBJBOX)); 96 if( (cell[k].persist = (OBJBOX *)calloc(i, sizeof(OBJBOX))) == NULL) { 97 fprintf(stderr, "\rerror: failed to alloc cell persist buffer\n"); 98 exit(-674); 99 } 88 100 cell[k].npersist = 0; 89 101 } … … 242 254 for(k=0; k<cell[j].npersist; k++) { 243 255 256 /* Retire old burns */ 257 if(cell[j].time - cell[j].persist[k].time > EXPIRE_TRAIL_TIME) 258 continue; 259 244 260 if(PERSIST_RETAIN) { 245 261 /* Keep fits which have a dubious slope */ … … 252 268 if(cell[j].persist[k].nfit <= 0) continue; 253 269 } 254 fprintf(fp, "%3d %7d %3d %3d %5d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %1d %1d %9.6f %3d %3d %3d \n",270 fprintf(fp, "%3d %7d %3d %3d %5d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %1d %1d %9.6f %3d %3d %3d %d\n", 255 271 j, cell[j].persist[k].time, 256 272 cell[j].persist[k].cx, cell[j].persist[k].cy, … … 264 280 cell[j].persist[k].func, cell[j].persist[k].up, 265 281 cell[j].persist[k].slope, cell[j].persist[k].nfit, 266 cell[j].persist[k].sxfit, cell[j].persist[k].exfit); 282 cell[j].persist[k].sxfit, cell[j].persist[k].exfit, 283 cell[j].persist[k].fiterr); 267 284 for(i=0; i<cell[j].persist[k].nfit; i++) { 268 285 fprintf(fp, "%3d %3d %8.4f\n", cell[j].persist[k].xfit[i], … … 288 305 289 306 i = (cell[j].burn[k].ex - cell[j].burn[k].sx + 1) / 2; 290 fprintf(fp, "%3d %7d %3d %3d %5d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %1d %1d %9.6f %3d %3d %3d \n",307 fprintf(fp, "%3d %7d %3d %3d %5d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %1d %1d %9.6f %3d %3d %3d %d\n", 291 308 j, cell[j].burn[k].time, 292 309 cell[j].burn[k].cx, cell[j].burn[k].cy, … … 300 317 cell[j].burn[k].func, cell[j].burn[k].up, 301 318 cell[j].burn[k].slope, cell[j].burn[k].nfit, 302 cell[j].burn[k].sxfit, cell[j].burn[k].exfit); 319 cell[j].burn[k].sxfit, cell[j].burn[k].exfit, 320 cell[j].burn[k].fiterr); 303 321 for(i=0; i<cell[j].burn[k].nfit; i++) { 304 322 fprintf(fp, "%3d %3d %8.4f\n", cell[j].burn[k].xfit[i], -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/psfstamp.c
r25438 r26766 112 112 113 113 /* Make a postage stamp for it */ 114 box[k].stamp = (IMTYPE *)calloc(size*size, sizeof(IMTYPE)); 114 if( (box[k].stamp = (IMTYPE *)calloc(size*size, sizeof(IMTYPE))) == NULL) { 115 fprintf(stderr, "\rerror: failed to stamp buffer\n"); 116 exit(-675); 117 } 118 115 119 sum = 0; 116 120 for(j=y0; j<=y1; j++) { … … 136 140 int i, k, l, nstar, fdout, otacx, otacy, xid, yid, ntot=0, sumax; 137 141 int cellcount, ota_xid, ota_yid; 138 double scale, phi, fwhm[3], q[ 5], qt, xfp, yfp, pi=4*atan(1.0);142 double scale, phi, fwhm[3], q[7], qt, xfp, yfp, pi=4*atan(1.0); 139 143 IMTYPE *median_image; 140 144 CELL *cell; … … 171 175 172 176 /* Create a median image and write as the first one */ 173 median_image = (IMTYPE *)calloc(nx*ny, sizeof(IMTYPE)); 177 if( (median_image = (IMTYPE *)calloc(nx*ny, sizeof(IMTYPE))) == NULL) { 178 fprintf(stderr, "\rerror: failed to alloc median PSF image\n"); 179 exit(-676); 180 } 174 181 for(i=0; i<nx*ny; i++) { 175 182 nstar = 0; … … 256 263 int k, l, cellx, celly, ota_xid, ota_yid, nfwave, nqavg; 257 264 double xota, yota, xfp, yfp, phi; 258 double fwhm[3], q[ 5], fw[MAXPSFMEDIAN];265 double fwhm[3], q[7], fw[MAXPSFMEDIAN]; 259 266 double m2[MAXPSFMEDIAN], qp[MAXPSFMEDIAN], qc[MAXPSFMEDIAN]; 260 267 double qt[MAXPSFMEDIAN], fwavg[MAXPSFMEDIAN]; 268 double qpavg[MAXPSFMEDIAN], qcavg[MAXPSFMEDIAN], qtavg[MAXPSFMEDIAN]; 261 269 double q3c[MAXPSFMEDIAN], q3s[MAXPSFMEDIAN]; 262 double qpavg[MAXPSFMEDIAN], qcavg[MAXPSFMEDIAN], qtavg[MAXPSFMEDIAN];263 270 double q3cavg[MAXPSFMEDIAN], q3savg[MAXPSFMEDIAN]; 271 double q1c[MAXPSFMEDIAN], q1s[MAXPSFMEDIAN]; 272 double q1cavg[MAXPSFMEDIAN], q1savg[MAXPSFMEDIAN]; 264 273 int nstar[MAXCELL], nfw[MAXCELL]; 265 274 double fwmed[MAXCELL], m2med[MAXCELL]; 266 275 double qpmed[MAXCELL], qcmed[MAXCELL], qtmed[MAXCELL]; 267 276 double q3cmed[MAXCELL], q3smed[MAXCELL]; 268 double qpmacro, qcmacro, qtmacro, fwmacro, q3cmacro, q3smacro; 277 double q1cmed[MAXCELL], q1smed[MAXCELL]; 278 double qpmacro, qcmacro, qtmacro, fwmacro, q3cmacro, q3smacro, q1cmacro, q1smacro; 269 279 FILE *fp; 270 280 CELL *cell; … … 310 320 q3c[nstar[k]] = q[3]; 311 321 q3s[nstar[k]] = q[4]; 322 q1c[nstar[k]] = q[5]; 323 q1s[nstar[k]] = q[6]; 312 324 /* Get the position in the focal plane and therefore the qt statistic */ 313 325 psc_cell_to_pixel(cellx, celly, 0.5*PSC_HCELL/PSC_PIXEL, … … 333 345 q3cmed[k] = double_median(nstar[k], q3c); 334 346 q3smed[k] = double_median(nstar[k], q3s); 347 q1cmed[k] = double_median(nstar[k], q1c); 348 q1smed[k] = double_median(nstar[k], q1s); 335 349 } else { 336 350 m2med[k] = qpmed[k] = qcmed[k] = qtmed[k] = -99.99; 337 351 q3cmed[k] = q3smed[k] = -99.99; 352 q1cmed[k] = q1smed[k] = -99.99; 338 353 } 339 354 /* Toss these results into the macrocell median hopper */ … … 348 363 q3cavg[nqavg] = q3c[l]; 349 364 q3savg[nqavg] = q3s[l]; 365 q1cavg[nqavg] = q1c[l]; 366 q1savg[nqavg] = q1s[l]; 350 367 nqavg++; 351 368 } … … 359 376 q3cmacro = double_median(nqavg, q3cavg); 360 377 q3smacro = double_median(nqavg, q3savg); 361 if(nqavg == 0) qpmacro = qcmacro = qtmacro = q3cmacro = q3smacro = -99.99; 378 q1cmacro = double_median(nqavg, q1cavg); 379 q1smacro = double_median(nqavg, q1savg); 380 if(nqavg == 0) qpmacro = qcmacro = qtmacro = q3cmacro = q3smacro = q1cmacro = q1smacro = -99.99; 362 381 fwmacro = double_median(nfwave, fwavg); 363 382 … … 370 389 cell = ota + k; 371 390 372 fprintf(fp, "ext=xy%1d%1d bias=%d sky=%d rmssky=%d npsf=%d fwhm=%.2f fwmed=%.2f m2=%.2f qp=%.3f qc=%.3f qt=%.3f q3c=%.3f q3s=%.3f q pm=%.3f qcm=%.3f qtm=%.3f q3cm=%.3f q3sm=%.3f\n",391 fprintf(fp, "ext=xy%1d%1d bias=%d sky=%d rmssky=%d npsf=%d fwhm=%.2f fwmed=%.2f m2=%.2f qp=%.3f qc=%.3f qt=%.3f q3c=%.3f q3s=%.3f q1c=%.3f q1s=%.3f qpm=%.3f qcm=%.3f qtm=%.3f q3cm=%.3f q3sm=%.3f q1cm=%.3f q1sm=%.3f\n", 373 392 cellx, celly, cell->bias, cell->sky, cell->rms, 374 393 nstar[k], fwmed[k], fwmacro, m2med[k], 375 qpmed[k], qcmed[k], qtmed[k], q3cmed[k], q3smed[k], 376 qpmacro, qcmacro, qtmacro, q3cmacro, q3smacro); 394 qpmed[k], qcmed[k], qtmed[k], q3cmed[k], q3smed[k], 395 q1cmed[k], q1smed[k], 396 qpmacro, qcmacro, qtmacro, q3cmacro, q3smacro, 397 q1cmacro, q1smacro); 377 398 } 378 399 } -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/stardetect.c
r25070 r26766 193 193 cell->burn = (OBJBOX *)calloc(cell->nburn, sizeof(OBJBOX)); 194 194 cell->star = (OBJBOX *)calloc(cell->nstar, sizeof(OBJBOX)); 195 if( cell->burn == NULL || cell->star == NULL) { 196 fprintf(stderr, "\rerror: failed to alloc burn box\n"); 197 exit(-678); 198 } 195 199 196 200 /* Copy the boxes to the cell info structure */ -
trunk/extsrc/gpcsw/gpcsrc/fits/burntool/trailfit.c
r25299 r26766 30 30 31 31 if(box->func != BURN_PWR && box->func != BURN_EXP) { 32 fprintf(stderr, "error: unimplemented fit function %d\n", box->func); 32 fprintf(stderr, "error: unimplemented fit function %d (err %d)\n", 33 box->func, box->fiterr); 33 34 return(-1); 34 35 } … … 137 138 box->xfit = (int *)calloc(xe-xs+1, sizeof(int)); 138 139 box->yfit = (int *)calloc(xe-xs+1, sizeof(int)); 140 if(box->zero == NULL || box->xfit == NULL || box->yfit == NULL) { 141 fprintf(stderr, "\rerror: failed to alloc box memory\n"); 142 exit(-679); 143 } 139 144 /* Some defaults */ 140 145 box->slope = 0.0; … … 229 234 box->nfit = 0; 230 235 box->fiterr = FIT_SLOPE_ERROR; 236 /* Check whether it's a significant trail (but with pos slope) or just noise */ 237 linearrms(nfit, ybuf+y1, zbuf+y1, slope, zero, &trial); 238 /* 100203 JT: bad idea: appears to be a bug in read/writing ABS(nfit) */ 239 // if(trial > 2*rms) box->nfit = -box->nfit; 240 if(trial > 2*rms) box->func = BURN_POSSLOPE; 231 241 return(-1); 232 242 } … … 268 278 /* FIXME: what's a really good criterion for negligible fit? */ 269 279 /* 100 pixels up fit is zsum or ~zsum/e */ 270 if(zsum > NEGLIGIBLE_TRAIL*rms) { 280 // if(zsum > NEGLIGIBLE_TRAIL*rms) { 281 if(zsum > NEGLIGIBLE_TRAIL*rms || 282 /* 100113: but also evaluate at the end of the fit for stubby trails */ 283 zbuf[y2]*zsum > NEGLIGIBLE_TRAIL*rms) { 271 284 272 285 /* Ascertain the starting point of where the fit is good */ -
trunk/extsrc/gpcsw/gpcsrc/fits/libfhreg/general.h
r23490 r26766 79 79 MK_PFL( 10.0, BZERO ,1, "Zero factor" ) 80 80 MK_PFL( 11.0, BSCALE ,1, "Scale factor" ) 81 MK_STR( 12.0, BUNIT , "fits-data * BSCALE + BZERO = these units" ) 81 82 82 83 /* … … 90 91 MK_CMT( 50.5, CMTSUM5 , "" ) 91 92 MK_STR( 51.0, CMMTOBS , "" ) 93 MK_STR( 51.1, CMMTOBS1, "" ) 94 MK_STR( 51.2, CMMTOBS2, "" ) 95 MK_STR( 51.3, CMMTOBS3, "" ) 96 MK_STR( 51.4, CMMTOBS4, "" ) 97 MK_STR( 51.5, CMMTOBS5, "" ) 98 MK_STR( 51.6, CMMTOBS6, "" ) 99 MK_STR( 51.7, CMMTOBS7, "" ) 100 MK_STR( 51.8, CMMTOBS8, "" ) 101 MK_STR( 51.9, CMMTOBS9, "" ) 92 102 MK_STR( 52.0, CMMTSEQ , "" ) 93 103 MK_STR( 53.0, OBJECT , "" ) … … 127 137 128 138 MK_STR( 95.0, OBSTYPE, "Observation/Exposure type" ) 129 MK_PFL( 96.0, EXPTIME,3, "Exposure time (seconds)" ) 130 MK_PFL( 96.1, EXPREQ ,3, "Exposure time requested (seconds)" ) 131 MK_PFL( 97.0, DARKTIME,3, "Dark current time (seconds)" ) 139 MK_PFL( 96.0, EXPTIME,3, "[sec] Exposure time" ) 140 MK_PFL( 96.1, EXPREQ ,3, "[sec] Exposure time requested" ) 141 MK_PFL( 97.0, DARKTIME,3, "[sec] Dark current time" ) 142 MK_INT( 97.5, PONTIME, "[sec] Time since last detector \"power on\"" ) 143 MK_INT( 97.6, SATTIME, "[sec] Time since last detected saturation event" ) 144 MK_INT( 97.7, TRKTIME, "[sec] Time since last detected tracking error" ) 145 MK_INT( 97.8, VDOTIME, "[sec] Time since \"video\" command used" ) -
trunk/extsrc/gpcsw/gpcsrc/fits/libfhreg/gpc_all.h
r23490 r26766 20 20 #include "gpc_wcs.h" 21 21 #include "gpc_plant.h" 22 #include "gpc_postprocess.h" -
trunk/extsrc/gpcsw/gpcsrc/fits/libfhreg/gpc_detector.h
r23490 r26766 69 69 MK_INT( 152.1, SATURATE, "[ADU] Saturation value" ) 70 70 MK_FLT( 155.0, GAIN ,3, "[e/ADU] est. gain from xray" ) 71 MK_FLT( 155.9, XRNOISE, 2, "[ADU] RMS noise in overscan on xray")72 MK_FLT( 156.0, RDNOISE ,2, "[ADU] RMS Read noise on overscan")71 MK_FLT( 155.9, XRNOISE, 3, "[e] RMS noise in overscan on xray" ) 72 MK_FLT( 156.0, RDNOISE ,3, "[e] Read noise" ) 73 73 MK_FLT( 157.0, DCURRENT,5, "[ADU/pixel/sec] Dark current" ) 74 74 MK_FLT( 157.1, DARKCUR ,5, "[e-/pixel/hour] Dark current" ) 75 75 MK_STR( 158.0, QEPOINTS, "QE%@wavelength in nm" ) 76 76 MK_INT( 159.0, BIASLVL, "[ADU] Bias level (overscan mean)" ) 77 MK_INT( 159.2, BACKEST, "[ADU] Background level est ., overscan corrected")77 MK_INT( 159.2, BACKEST, "[ADU] Background level estimation" ) 78 78 MK_STR( 165.0, DETSTAT , "Detector status" ) 79 79 MK_FLT( 166.0, DETTEM ,3, "[C] Detector temperature" ) 80 MK_CMT( 166.1, CMTDETT1, "If DETTEMOV is T, DETTEMP was overridden. Old" ) 81 MK_CMT( 166.2, CMTDETT2, "temp. is CDETTEM and new temp. was derived as:" ) 82 MK_CMT( 166.3, CMTDETT3, "V = (ADU-B) / (A*32768)" ) 83 MK_CMT( 166.4, CMTDETT4, "T = 3369-sqrt[3369^2+1313^2*(13.1*V-1)/(V-1)]" ) 84 MK_BLN( 166.5, DETTEMOV, "Detector temperature overridden" ) 85 MK_INT( 166.6, DETTEADU, "[ADU] Detector temperature A/D measurement" ) 86 MK_PFL( 166.7, DETTCOFA,3, "Coefficient A used in overriding detector temp." ) 87 MK_INT( 166.8, DETTCOFB, "Coefficient B used in overriding detector temp." ) 88 MK_FLT( 166.9, CDETTEM ,3, "[C] Detector temperature calc. by controller" ) 80 89 MK_PFL( 170.0, PIXSIZE ,3, "[um] Pixel size for both axes" ) 81 90 MK_PFL( 171.1, PIXSIZE1,3, "[um] Pixel size for axis 1" ) … … 105 114 MK_INT( 185.2, CCDBIN2 , "Binning factor along axis 2" ) 106 115 MK_INT( 186.1, PRESCAN1, "Prescan count on axis 1" ) 116 MK_INT( 186.11,PRESCANX, "Post-xtrig-bias portion of prescan1" ) 107 117 MK_INT( 186.2, PRESCAN2, "Prescan count on axis 2" ) 108 118 MK_INT( 187.1, OVRSCAN1, "Overscan count on axis 1" ) … … 144 154 MK_INT( 198.07,CON_UP, "[seconds] Controller up-time" ) 145 155 MK_STR( 198.08,CON_VSUM, "Device operating point md5sum" ) 156 MK_INT( 198.10,FPGASER, "Controller FPGA board serial number" ) 157 MK_STR( 198.11,FPGAVER, "Controller FPGA board version" ) 158 MK_STR( 198.12,FPGATAR, "Controller FPGA board target system" ) 159 MK_STR( 198.13,FPGAEC, "Controller FPGA board engineering changes" ) 160 MK_INT( 198.20,DAQ3USER, "Controller DAQ3U board serial number" ) 161 MK_STR( 198.21,DAQ3UVER, "Controller DAQ3U board version" ) 162 MK_STR( 198.22,DAQ3UTAR, "Controller DAQ3U board target system" ) 163 MK_STR( 198.23,DAQ3UEC, "Controller DAQ3U board engineering changes" ) 164 MK_INT( 198.20,PREAMSER, "Controller Preamp board serial number" ) 165 MK_STR( 198.21,PREAMVER, "Controller Preamp board version" ) 166 MK_STR( 198.22,PREAMTAR, "Controller Preamp board target system" ) 167 MK_STR( 198.23,PREAMEC, "Controller Preamp board engineering changes" ) 168 MK_INT( 198.30,DAQLBSER, "DAQ3U loopback test board serial number" ) 169 MK_STR( 198.31,DAQLBVER, "DAQ3U loopback test board version" ) 170 MK_STR( 198.32,DAQLBTAR, "DAQ3U loopback test board target system" ) 171 MK_STR( 198.33,DAQLBEC, "DAQ3U loopback test board engineering changes" ) 146 172 MK_INT( 198.40,TSP_SHOP, "Milliseconds from last clean to shutter open" ) 147 173 MK_INT( 198.41,TSP_SHCL, "Milliseconds from last clean to shutter close" ) -
trunk/extsrc/gpcsw/gpcsrc/fits/libfhreg/gpc_instrument.h
r23490 r26766 63 63 MK_PFL( 1009.11,L3AIRTMP,1, "[C] Air temperature in space above L3" ) 64 64 MK_PFL( 1009.12,L3DEWPT, 1, "[C] Calculated dew point in space above L3" ) 65 MK_PFL( 1009.20,ENHUMID, 1, "[%] Rel. humidity of cam. evironment (ferit)" ) 66 MK_PFL( 1009.21,ENAIRTMP,1, "[C] Air temperature of camera environment" ) 67 MK_PFL( 1009.22,ENDEWPT, 1, "[C] Calculated dew point of camera environment" ) 68 MK_STR( 1009.30,GLYSTAT, "Camera heat exchanger glycol status" ) 69 MK_STR( 1009.31,GLYMODE, "Camera heat exchanger glycol mode" ) 65 70 MK_STR( 1010.0, FILTSTAT, "Filter mechanism status" ) 66 71 MK_STR( 1010.1, FILTERID, "Filter glass identification" ) … … 80 85 MK_INT( 1224.0, SH_ARMPN , "motion controller input pins" ) 81 86 MK_PFL( 1225.0, SH_DIODE,1, "Vref/4096 (Vref=5V nominal) photodiode volts" ) 87 MK_STR( 1260.1, CS_LIGHT, "Cal screen laser status during exposure" ) 88 MK_STR( 1261.0, CS_LIMIT, "Cal screen laser exposure limit: time|volt" ) 89 MK_PFL( 1262.0, CS_WAVE,1, "Cal screen laser wavelength" ) 90 MK_PFL( 1263.0, CS_EXPT,1, "Cal screen laser exposure time" ) 91 MK_PFL( 1264.0, CS_VOLTS,3, "Cal screen laser photodiode limit voltage" ) 92 MK_PFL( 1265.1, CS_INTV1,3, "Cal screen photodiode integrator pre-voltage" ) 93 MK_PFL( 1265.2, CS_INTV2,3, "Cal screen photodiode integrator start-voltage" ) 94 MK_PFL( 1265.3, CS_INTV3,3, "Cal screen photodiode integrator stop-voltage" ) 95 MK_PFL( 1265.4, CS_INTV4,3, "Cal screen photodiode integrator post-voltage" ) 96 MK_PFL( 1266.1, CS_INTT1,3, "Cal screen photodiode integrator pre-seconds" ) 97 MK_PFL( 1266.2, CS_INTT2,3, "Cal screen photodiode integrator exposure sec" ) 98 MK_PFL( 1266.3, CS_INTT3,3, "Cal screen photodiode integrator post-seconds" ) 99 MK_PFL( 1267.0, CS_SHOP,3, "GPC1 shutter open start" ) 100 MK_PFL( 1268.0, CS_SHCL,3, "GPC1 shutter close start" ) 101 -
trunk/extsrc/gpcsw/gpcsrc/fits/libfhreg/gpc_shutter.h
r23490 r26766 57 57 MK_STR( 201.0, SHUTSTAT, "Shutter status" ) 58 58 MK_STR( 201.1, SHUTERR, "Shutter error code" ) 59 MK_STR( 202.00,SHUTOPEN, " Shutter open time (TAI)")60 MK_STR( 202.01,SHUTCLOS, " Shutter close time (TAI)")61 MK_PFL( 202.02,SHUTOPWN,6, " Shutter open uncertainty before SHUTOPEN (sec)" )62 MK_PFL( 202.03,SHUTCLWN,6, " Shutter close uncertainty before SHUTCLOS (sec)" )63 MK_STR( 202.04,SHUTOUTC, " Shutter open time (UTC)")64 MK_STR( 202.05,SHUTCUTC, " Shutter close time (UTC)")65 MK_INT( 202.06,SHUTLEAP, " Leap seconds used in TAI-UTC conversion (sec)" )66 MK_PFL( 202.07,SHUTREQ, 6, " Requested exposure duration (sec)" )67 MK_PFL( 202.08,SHUTTIME,6, " Actual exposure duration (sec)" )59 MK_STR( 202.00,SHUTOPEN, "[TAI date time] Shutter open time" ) 60 MK_STR( 202.01,SHUTCLOS, "[TAI date time] Shutter close time" ) 61 MK_PFL( 202.02,SHUTOPWN,6, "[sec] Shutter open uncertainty before SHUTOPEN" ) 62 MK_PFL( 202.03,SHUTCLWN,6, "[sec] Shutter close uncertainty before SHUTCLOS" ) 63 MK_STR( 202.04,SHUTOUTC, "[UTC date time] Shutter open time" ) 64 MK_STR( 202.05,SHUTCUTC, "[UTC date time] Shutter close time" ) 65 MK_INT( 202.06,SHUTLEAP, "[sec] Leap seconds used in TAI-UTC conversion" ) 66 MK_PFL( 202.07,SHUTREQ, 6, "[sec] Requested exposure duration" ) 67 MK_PFL( 202.08,SHUTTIME,6, "[sec] Actual exposure duration" ) 68 68 MK_STR( 202.09,SHUTOPBL, "Shutter blade in aperture at start of exposure" ) 69 69 MK_STR( 202.10,SHUTCLBL, "Shutter blade in aperture at end of exposure" ) -
trunk/extsrc/gpcsw/gpcsrc/fits/libfhreg/gpc_telescope.h
r24391 r26766 70 70 MK_STR( 503.0, TELSTAT , "Telescope control system status" ) 71 71 MK_STR( 503.1, DOMSTAT , "Telescope enclosure status" ) 72 MK_STR( 503.2, GUISTAT , "Telescope guiding system status" )73 MK_STR( 503.3, GUICONF , "Telescope guiding configuration" )74 MK_STR( 503.4, GUIKERN , "Filter kernel used for guiding" )75 MK_PFL( 503.5, GUIGAIX ,2, "Telescope guiding gain factor (x offset)" )76 MK_PFL( 503.6, GUIGAIY ,2, "Telescope guiding gain factor (y offset)" )77 MK_PFL( 503.7, GUIRATE ,1, "Telescope guiding rate (Hz)" )78 72 MK_VAL( 521.1, EQUINOX , "Telescope equinox of coordinates" ) 79 73 MK_VAL( 521.2, EPOCH , "Telescope equinox of coordinates" ) 80 MK_PFL( 522.1, RA ,6, "Telescope Right Ascension (degrees)" ) 81 MK_PFL( 522.2, DEC ,6, "Telescope Declination (degrees)" ) 82 MK_PFL( 522.3, AZ ,6, "Telescope azimuth (degrees)" ) 83 MK_PFL( 522.4, ALT ,6, "Telescope pointing altitude (degrees)" ) 84 MK_PFL( 522.5, ROT ,6, "Telescope rotator angle (degrees)" ) 85 MK_PFL( 522.6, POSANGLE,6, "Telescope position angle (degrees)" ) 86 MK_PFL( 523.0, COMRA ,6, "Commanded telescope Right Ascension (degrees)" ) 87 MK_PFL( 523.1, COMDEC ,6, "Commanded telescope Declination (degrees)" ) 88 MK_PFL( 523.2, COMAZ ,6, "Commanded telescope azimuth (degrees)" ) 89 MK_PFL( 523.3, COMALT ,6, "Commanded telescope pointing altitude (degrees)" ) 90 MK_PFL( 523.4, COMROT ,6, "Commanded telescope rotator angle (degrees)" ) 91 MK_PFL( 523.5, MOONANG ,6, "Angular distance to moon (degrees)" ) 74 MK_PFL( 522.1, RA ,6, "[deg] Telescope FOV center Right Ascension" ) 75 MK_PFL( 522.2, DEC ,6, "[deg] Telescope FOV center Declination" ) 76 MK_STR( 522.21,RASTRNG , "[deg:mm:ss] Telescope sexagesimal Right Ascen." ) 77 MK_STR( 522.22,DECSTRNG, "[deg:mm:ss] Telescope sexagesimal Declination" ) 78 MK_PFL( 522.3, AZ ,6, "[deg] Telescope azimuth" ) 79 MK_PFL( 522.4, ALT ,6, "[deg] Telescope pointing altitude" ) 80 MK_PFL( 522.5, ROT ,6, "[deg] Telescope rotator angle" ) 81 MK_PFL( 522.6, POSANGLE,6, "[deg] Telescope position angle" ) 82 MK_PFL( 523.0, COMRA ,6, "[deg] Commanded telescope Right Ascension" ) 83 MK_PFL( 523.1, COMDEC ,6, "[deg] Commanded telescope Declination" ) 84 MK_PFL( 523.2, COMAZ ,6, "[deg] Commanded telescope azimuth" ) 85 MK_PFL( 523.3, COMALT ,6, "[deg] Commanded telescope pointing altitude" ) 86 MK_PFL( 523.4, COMROT ,6, "[deg] Commanded telescope rotator angle" ) 87 MK_PFL( 523.5, MOONANG ,6, "[deg] Angular distance to moon" ) 88 MK_PFL( 523.6, AIRMASS ,3, "Airmass at start of observation" ) 92 89 MK_CMT( 530.00,CMTTELO1, "NOTE: Telescope RA DEC or ALT AZ already include") 93 90 MK_CMT( 530.10,CMTTELO2, " the following offsets. Do not re-apply!" ) 94 MK_PFL( 532.1, TELOFRA ,6, "Telescope offset in RA (degrees)" ) 95 MK_PFL( 532.2, TELOFDEC,6, "Telescope offset in DEC (degrees)" ) 96 MK_PFL( 532.3, TELOFAZ ,6, "Telescope offset in AZ (degrees)" ) 97 MK_PFL( 532.4, TELOFALT,6, "Telescope offset in ALT (degrees)" ) 98 MK_PFL( 532.5, TELOFROT,6, "Telescope offset in ROT (degrees)" ) 99 MK_PFL( 532.7, TELOFX ,6, "Telescope offset in camera X (degrees)" ) 100 MK_PFL( 532.8, TELOFY ,6, "Telescope offset in camera Y (degrees)" ) 101 MK_PFL( 540.1, AIRMASS ,3, "Airmass at start of observation" ) 102 MK_PFL( 541.1, M1X ,6, "Primary mirror x position (um)" ) 103 MK_PFL( 541.2, M1Y ,6, "Primary mirror y position (um)" ) 104 MK_PFL( 541.3, M1Z ,6, "Primary mirror z position (um)" ) 105 MK_PFL( 541.4, M1TIP ,6, "Primary mirror tip (arcsec)" ) 106 MK_PFL( 541.5, M1TILT ,6, "Primary mirror tilt (arcsec)" ) 107 MK_PFL( 542.1, M2X ,6, "Secondary mirror x position (um)" ) 108 MK_PFL( 542.2, M2Y ,6, "Secondary mirror y position (um)" ) 109 MK_PFL( 542.3, M2Z ,6, "Secondary mirror z position (um)" ) 110 MK_PFL( 542.4, M2TIP ,6, "Secondary mirror tip (arcsec)" ) 111 MK_PFL( 542.5, M2TILT ,6, "Secondary mirror tilt (arcsec)" ) 91 MK_PFL( 532.1, TELOFRA ,6, "[deg] Telescope offset in RA" ) 92 MK_PFL( 532.2, TELOFDEC,6, "[deg] Telescope offset in DEC" ) 93 MK_PFL( 532.3, TELOFAZ ,6, "[deg] Telescope offset in AZ" ) 94 MK_PFL( 532.4, TELOFALT,6, "[deg] Telescope offset in ALT" ) 95 MK_PFL( 532.5, TELOFROT,6, "[deg] Telescope offset in ROT" ) 96 MK_PFL( 532.7, TELOFX ,6, "[deg] Telescope offset in camera X" ) 97 MK_PFL( 532.8, TELOFY ,6, "[deg] Telescope offset in camera Y" ) 98 99 /* 100 * Guiding 101 */ 102 MK_STR( 540.00,GUISTAT , "Telescope guiding system status" ) 103 MK_STR( 540.01,GUICONF , "Telescope guiding configuration" ) 104 MK_STR( 540.02,GUISTAR , "Telescope guiding (single or multi-star)" ) 105 MK_BLN( 540.03,GUIROTEN, "Telescope guiding rotation enabled" ) 106 MK_PFL( 540.10,GUIGAIX ,2, "Telescope guiding gain factor (x offset)" ) 107 MK_PFL( 540.11,GUIGAIY ,2, "Telescope guiding gain factor (y offset)" ) 108 MK_PFL( 540.12,GUIRATE ,1, "[Hz] Telescope guiding rate" ) 109 MK_STR( 540.20,GUIKERN , "Filter kernel used for guiding" ) 110 MK_STR( 540.21,GUIKERN1, "Filter kernel used for guiding (cont)" ) 111 MK_STR( 540.22,GUIKERN2, "Filter kernel used for guiding (cont)" ) 112 MK_STR( 540.23,GUIKERN3, "Filter kernel used for guiding (cont)" ) 113 MK_STR( 540.24,GUIKERN4, "Filter kernel used for guiding (cont)" ) 114 MK_STR( 540.25,GUIKERN5, "Filter kernel used for guiding (cont)" ) 115 MK_STR( 540.26,GUIKERN6, "Filter kernel used for guiding (cont)" ) 116 MK_STR( 540.27,GUIKERN7, "Filter kernel used for guiding (cont)" ) 117 MK_STR( 540.28,GUIKERN8, "Filter kernel used for guiding (cont)" ) 118 MK_STR( 540.29,GUIKERN9, "Filter kernel used for guiding (cont)" ) 119 MK_INT( 540.30,GUIKLEN , "Number of taps in filter kernel" ) 120 MK_INT( 540.31,GUIKSUM , "Sum of all filter kernel taps" ) 121 MK_INT( 540.40,GUINSTAR, "Number of guide stars sought" ) 122 MK_INT( 540.41,GUINOK, "Number of guide stars used (median)" ) 123 MK_INT( 540.42,GUIERR, "90 percentile of guide fit error codes" ) 124 MK_PFL( 540.43,GUIDR, 2, "[arcsec] median RMS of guide star offsets" ) 125 MK_PFL( 540.50,GUIXMED, 2, "[arcsec] median x offset of guide stars" ) 126 MK_PFL( 540.51,GUIX50, 2, "[arcsec] 50% range of guide star x" ) 127 MK_PFL( 540.52,GUIX90, 2, "[arcsec] 90% range of guide star x" ) 128 MK_PFL( 540.60,GUIYMED, 2, "[arcsec] median y offset of guide stars" ) 129 MK_PFL( 540.61,GUIY50, 2, "[arcsec] 50% range of guide star y" ) 130 MK_PFL( 540.62,GUIY90, 2, "[arcsec] 90% range of guide star y" ) 131 MK_PFL( 540.70,GUIROT, 4, "[deg] median rotation offset of guide stars" ) 132 MK_PFL( 540.71,GUIROT50,4, "[deg] 50% range of rotation offset" ) 133 MK_PFL( 540.72,GUIROT90,4, "[deg] 90% range of rotation offset" ) 134 MK_PFL( 540.80,GUIFWMED,2, "[arcsec] median guide star FWHM" ) 135 MK_PFL( 540.81,GUIFW50, 2, "[arcsec] 50% range of guide star FWHM" ) 136 MK_PFL( 540.82,GUIFW90, 2, "[arcsec] 90% range of guide star FWHM" ) 137 MK_PFL( 540.90,GUIM1MED,2, "[mag] median zeropoint" ) 138 MK_PFL( 540.91,GUIM150, 2, "[mag] 50% range of median zeropoint" ) 139 MK_PFL( 540.92,GUIM190, 2, "[mag] 90% range of median zeropoint" ) 140 MK_PFL( 540.93,GUIXTNCT,2, "[mag] total extinction during exposure" ) 141 MK_PFL( 540.94,GUIZPRMS,2, "[mag] median RMS scatter of zeropoints" ) 142 143 /* 144 * Mirror info 145 */ 146 MK_PFL( 541.1, M1X ,6, "[um] Primary mirror x position" ) 147 MK_PFL( 541.2, M1Y ,6, "[um] Primary mirror y position" ) 148 MK_PFL( 541.3, M1Z ,6, "[um] Primary mirror z position" ) 149 MK_PFL( 541.4, M1TIP ,6, "[arcsec] Primary mirror tip" ) 150 MK_PFL( 541.5, M1TILT ,6, "[arcsec] Primary mirror tilt" ) 151 MK_PFL( 542.1, M2X ,6, "[um] Secondary mirror x position" ) 152 MK_PFL( 542.2, M2Y ,6, "[um] Secondary mirror y position" ) 153 MK_PFL( 542.3, M2Z ,6, "[um] Secondary mirror z position" ) 154 MK_PFL( 542.4, M2TIP ,6, "[arcsec] Secondary mirror tip" ) 155 MK_PFL( 542.5, M2TILT ,6, "[arcsec] Secondary mirror tilt" ) 112 156 MK_STR( 543.0, M1M2MODV, "Telescope mirror position model version" ) 113 MK_PFL( 543.1, M1NOMX ,6, " Modeled Primary mirror x position (um)" )114 MK_PFL( 543.2, M1NOMY ,6, " Modeled Primary mirror y position (um)" )115 MK_PFL( 543.3, M1NOMZ ,6, " Modeled Primary mirror z position (um)" )116 MK_PFL( 543.4, M1NOMTIP,6, " Modeled Primary mirror tip (arcsec)" )117 MK_PFL( 543.5, M1NOMTIL,6, " Modeled Primary mirror tilt (arcsec)" )118 MK_PFL( 544.1, M2NOMX ,6, " Modeled Secondary mirror x position (um)" )119 MK_PFL( 544.2, M2NOMY ,6, " Modeled Secondary mirror y position (um)" )120 MK_PFL( 544.3, M2NOMZ ,6, " Modeled Secondary mirror z position (um)" )121 MK_PFL( 544.4, M2NOMTIP,6, " Modeled Secondary mirror tip (arcsec)" )122 MK_PFL( 544.5, M2NOMTIL,6, " Modeled Secondary mirror tilt (arcsec)" )123 MK_STR( 550.1, TELTEMTR, " Mid truss temperatures (C)")124 MK_STR( 550.2, TELTEMSP, " Spider temperatures (C)")125 MK_STR( 550.3, TELTEMMS, " Primary mirror support temps (C)")126 MK_STR( 550.4, TELTEMM1, " Primary mirror temps (C)")127 MK_STR( 550.5, TELTEMM2, " Secondary mirror temps (C)")128 MK_STR( 550.6, TELTEMEX, " Miscellaneous temperatures (C)")157 MK_PFL( 543.1, M1NOMX ,6, "[um] Modeled Primary mirror x position" ) 158 MK_PFL( 543.2, M1NOMY ,6, "[um] Modeled Primary mirror y position" ) 159 MK_PFL( 543.3, M1NOMZ ,6, "[um] Modeled Primary mirror z position" ) 160 MK_PFL( 543.4, M1NOMTIP,6, "[arcsec] Modeled Primary mirror tip" ) 161 MK_PFL( 543.5, M1NOMTIL,6, "[arcsec] Modeled Primary mirror tilt" ) 162 MK_PFL( 544.1, M2NOMX ,6, "[um] Modeled Secondary mirror x position" ) 163 MK_PFL( 544.2, M2NOMY ,6, "[um] Modeled Secondary mirror y position" ) 164 MK_PFL( 544.3, M2NOMZ ,6, "[um] Modeled Secondary mirror z position" ) 165 MK_PFL( 544.4, M2NOMTIP,6, "[arcsec] Modeled Secondary mirror tip" ) 166 MK_PFL( 544.5, M2NOMTIL,6, "[arcsec] Modeled Secondary mirror tilt" ) 167 MK_STR( 550.1, TELTEMTR, "[C] MTL 11,12,2,3,5,6,8,9" ) 168 MK_STR( 550.2, TELTEMSP, "[C] IS 10,1,4,7 O 10,1,4,7" ) 169 MK_STR( 550.3, TELTEMMS, "[C] M1 Perim. 12,3,6,9,Air" ) 170 MK_STR( 550.4, TELTEMM1, "[C] M1I 12,3,6,9 O12,3,6,9" ) 171 MK_STR( 550.5, TELTEMM2, "[C] M2 I 12,O 12,3,3,6,6,9,9" ) 172 MK_STR( 550.6, TELTEMEX, "[C] M2 Can Air,Surf,CentSec 12,3,6,9" ) 129 173 130 174 /* 131 175 * Wavefront 132 176 */ 133 MK_PFL( 551.01,WVFA ,14," Wavefront A actuator force (N)" )134 MK_PFL( 551.02,WVFB ,14," Wavefront B actuator force (N)" )135 MK_PFL( 551.03,WVFC ,14," Wavefront C actuator force (N)" )136 MK_PFL( 551.04,WVFD ,14," Wavefront D actuator force (N)" )137 MK_PFL( 551.05,WVFE ,14," Wavefront E actuator force (N)" )138 MK_PFL( 551.06,WVFF ,14," Wavefront F actuator force (N)" )139 MK_PFL( 551.07,WVFG ,14," Wavefront G actuator force (N)" )140 MK_PFL( 551.08,WVFH ,14," Wavefront H actuator force (N)" )141 MK_PFL( 551.09,WVFI ,14," Wavefront I actuator force (N)" )142 MK_PFL( 551.10,WVFJ ,14," Wavefront J actuator force (N)" )143 MK_PFL( 551.11,WVFK ,14," Wavefront K actuator force (N)" )144 MK_PFL( 551.12,WVFL ,14," Wavefront L actuator force (N)" )177 MK_PFL( 551.01,WVFA ,14,"[N] Wavefront A actuator force" ) 178 MK_PFL( 551.02,WVFB ,14,"[N] Wavefront B actuator force" ) 179 MK_PFL( 551.03,WVFC ,14,"[N] Wavefront C actuator force" ) 180 MK_PFL( 551.04,WVFD ,14,"[N] Wavefront D actuator force" ) 181 MK_PFL( 551.05,WVFE ,14,"[N] Wavefront E actuator force" ) 182 MK_PFL( 551.06,WVFF ,14,"[N] Wavefront F actuator force" ) 183 MK_PFL( 551.07,WVFG ,14,"[N] Wavefront G actuator force" ) 184 MK_PFL( 551.08,WVFH ,14,"[N] Wavefront H actuator force" ) 185 MK_PFL( 551.09,WVFI ,14,"[N] Wavefront I actuator force" ) 186 MK_PFL( 551.10,WVFJ ,14,"[N] Wavefront J actuator force" ) 187 MK_PFL( 551.11,WVFK ,14,"[N] Wavefront K actuator force" ) 188 MK_PFL( 551.12,WVFL ,14,"[N] Wavefront L actuator force" ) 145 189 146 190 /* … … 151 195 MK_PFL( 560.3, ENVWIN, 1, "[m/s] Weather, wind speed" ) 152 196 MK_PFL( 560.4, ENVDIR, 1, "[deg E. of N] Weather, wind direction" ) 153 MK_PFL( 561.0, SEEING, 1, "[arcsec] Weather, seeing from DIMM, FWHM" )197 MK_PFL( 561.0, SEEING, 3, "[arcsec] Weather, seeing from DIMM, FWHM" ) 154 198 155 199 /* … … 157 201 * 158 202 *TYPE --IDX-- KEYWORD- PRC -------------------COMMENT----------------------*/ 159 MK_PFL( 586.02, HA ,16,"Hour angle at start (degrees)" ) 160 MK_PFL( 586.03, ST ,16,"Sidereal time at start (hours)" ) 161 MK_PFL( 586.04, ZD ,16,"Zenith distance (degrees)" ) 162 MK_STR( 587.00, RASTRNG , "Actual Right Ascension (incl offset)" ) 163 MK_STR( 587.01, DECSTRNG, "Actual Declination (incl offset)" ) 203 MK_PFL( 586.02, HA ,16,"[deg] Hour angle at start" ) 204 MK_PFL( 586.03, ST ,16,"[hours] Sidereal time at start" ) 205 MK_PFL( 586.04, ZD ,16,"[deg] Zenith distance" ) 164 206 MK_STR( 587.02, HASTRNG , "Hour angle at start" ) 165 207 MK_STR( 587.03, STSTRNG , "Sidereal time at start" ) 166 MK_STR( 587.04, ZDSTRNG , " Zenith distance (deg:mm:ss)" )208 MK_STR( 587.04, ZDSTRNG , "[deg:mm:ss] Zenith distance" )
Note:
See TracChangeset
for help on using the changeset viewer.
