24 #include "muse_cplwrappers.h"
25 #include "muse_data_format_z.h"
67 {
"SPEC_ID", CPL_TYPE_INT, NULL,
"%5d",
68 "Spectrum identifier", CPL_TRUE},
69 {
"SELECTED", CPL_TYPE_INT, NULL,
"%1d",
70 "Selection flag", CPL_TRUE},
71 {
"NSPAX", CPL_TYPE_INT, NULL,
"%d",
72 "Number of instrument spaxels composing the spectrum", CPL_TRUE},
73 {
"SPEC_LEN", CPL_TYPE_INT,
"pixel",
"%ld",
74 "Useful number of spectral elements", CPL_TRUE},
75 {
"SPEC_STA", CPL_TYPE_INT,
"pixel",
"%7d",
76 "Starting wavelength of spectrum", CPL_TRUE},
77 {
"XPOS", CPL_TYPE_DOUBLE,
"pix",
"%f",
78 "Horizontal position", CPL_TRUE},
79 {
"YPOS", CPL_TYPE_DOUBLE,
"pix",
"%f",
80 "Vertical position", CPL_TRUE},
81 {
"GROUP_N", CPL_TYPE_INT, NULL,
"%d",
82 "Group number", CPL_TRUE},
83 {
"SPAX_ID", CPL_TYPE_STRING, NULL,
"%s",
84 "Spaxel identifier", CPL_TRUE},
85 {
"DATA_SPE", CPL_TYPE_FLOAT | CPL_TYPE_POINTER, NULL,
"%1.5e",
86 "Data spectrum", CPL_TRUE},
87 {
"QUAL_SPE", CPL_TYPE_INT | CPL_TYPE_POINTER, NULL,
"%010x",
88 "Data quality spectrum", CPL_TRUE},
89 {
"STAT_SPE", CPL_TYPE_FLOAT | CPL_TYPE_POINTER, NULL,
"%1.5e",
90 "Associated statistical error spectrum", CPL_TRUE},
91 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
125 {
"GROUP_N", CPL_TYPE_INT, NULL,
"%1d",
126 "Group number", CPL_TRUE},
127 {
"G_SHAPE", CPL_TYPE_STRING, NULL,
"%s",
128 "Spaxel shape keyword", CPL_TRUE},
129 {
"G_SIZE1", CPL_TYPE_FLOAT,
"arcsec",
"%1.5e",
130 "Horizontal size per spaxel", CPL_TRUE},
131 {
"G_ANGLE", CPL_TYPE_FLOAT,
"deg",
"%1.5e",
132 "Angle of spaxel on the sky", CPL_TRUE},
133 {
"G_SIZE2", CPL_TYPE_FLOAT,
"arcsec",
"%1.5e",
134 "Vertical size per spaxel", CPL_TRUE},
135 {
"G_POSWAV", CPL_TYPE_FLOAT,
"Angstrom",
"%1.5e",
136 "Wavelength for which the WCS is valid", CPL_TRUE},
137 {
"G_AIRMAS", CPL_TYPE_FLOAT, NULL,
"%1.5e",
138 "Airmass", CPL_TRUE},
139 {
"G_PARANG", CPL_TYPE_FLOAT,
"deg",
"%1.5e",
140 "Parallactic angle", CPL_TRUE},
141 {
"G_PRESSU", CPL_TYPE_FLOAT,
"hPa",
"%1.5e",
142 "Pressure", CPL_TRUE},
143 {
"G_TEMPER", CPL_TYPE_FLOAT,
"K",
"%1.5e",
144 "Temperature", CPL_TRUE},
145 {
"G_HUMID", CPL_TYPE_FLOAT, NULL,
"%1.5e",
146 "Humidity", CPL_TRUE},
147 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
165 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%7.2f",
166 "Wavelength", CPL_TRUE},
167 {
"data", CPL_TYPE_DOUBLE,
"count",
"%1.5e",
168 "Data values", CPL_TRUE},
169 {
"stat", CPL_TYPE_DOUBLE,
"count",
"%1.5e",
170 "Data variance", CPL_TRUE},
171 {
"dq", CPL_TYPE_INT, NULL,
"%#x",
172 "Quality flag of data values", CPL_TRUE},
173 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
177 #ifdef XML_TABLEDEF_TRACE_TABLE
199 {
"SliceNo", CPL_TYPE_INT, NULL,
"%7d",
200 "Slice number", CPL_TRUE},
201 {
"Width", CPL_TYPE_FLOAT, NULL,
"%1.5e",
202 "Average slice width", CPL_TRUE},
203 {
"tc0_ij", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
204 "polynomial coefficients for the central trace solution", CPL_TRUE},
205 {
"MSE0", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
206 "mean squared error of fit (central solution)", CPL_TRUE},
207 {
"tc1_ij", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
208 "polynomial coefficients for the left-edge trace solution", CPL_TRUE},
209 {
"MSE1", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
210 "mean squared error of fit (left-edge solution)", CPL_TRUE},
211 {
"tc2_ij", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
212 "polynomial coefficients for the right-edge trace solution", CPL_TRUE},
213 {
"MSE2", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
214 "mean squared error of fit (right-edge solution)", CPL_TRUE},
215 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
220 #ifdef XML_TABLEDEF_TRACE_SAMPLES
240 {
"slice", CPL_TYPE_INT, NULL,
"%7d",
241 "Slice number", CPL_TRUE},
242 {
"y", CPL_TYPE_FLOAT,
"pix",
"%1.5e",
243 "y position on the CCD", CPL_TRUE},
244 {
"mid", CPL_TYPE_FLOAT,
"pix",
"%1.5e",
245 "Midpoint of the slice at this y position", CPL_TRUE},
246 {
"left", CPL_TYPE_FLOAT,
"pix",
"%1.5e",
247 "Left edge of the slice at this y position", CPL_TRUE},
248 {
"right", CPL_TYPE_FLOAT,
"pix",
"%1.5e",
249 "Right edge of the slice at this y position", CPL_TRUE},
250 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
255 #ifdef XML_TABLEDEF_WAVECAL_TABLE
271 {
"SliceNo", CPL_TYPE_INT, NULL,
"%7d",
272 "Slice number", CPL_TRUE},
273 {
"wlcIJ", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
274 "Polynomial coefficients for the wavelength solution", CPL_TRUE},
275 {
"MSE", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
276 "Mean squared error of fit", CPL_TRUE},
277 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
282 #ifdef XML_TABLEDEF_WAVECAL_RESIDUALS
303 {
"slice", CPL_TYPE_INT, NULL,
"%7d",
304 "Slice number", CPL_TRUE},
305 {
"iteration", CPL_TYPE_INT, NULL,
"%7d",
306 "Iteration", CPL_TRUE},
307 {
"x", CPL_TYPE_INT,
"pix",
"%7d",
308 "x position on the CCD", CPL_TRUE},
309 {
"y", CPL_TYPE_INT,
"pix",
"%7d",
310 "y position on the CCD", CPL_TRUE},
311 {
"lambda", CPL_TYPE_FLOAT,
"Angstrom",
"%1.5e",
312 "Wavelength", CPL_TRUE},
313 {
"residual", CPL_TYPE_DOUBLE,
"Angstrom",
"%1.5e",
314 "Residual at this point", CPL_TRUE},
315 {
"rejlimit", CPL_TYPE_DOUBLE,
"Angstrom",
"%1.5e",
316 "Rejection limit for this iteration", CPL_TRUE},
317 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
322 #ifdef XML_TABLEDEF_GEOMETRY_TABLE
347 {
"SubField", CPL_TYPE_INT, NULL,
"%02d",
348 "sub-field (IFU / channel) number", CPL_TRUE},
349 {
"SliceCCD", CPL_TYPE_INT, NULL,
"%02d",
350 "Slice number on the CCD, counted from left to right", CPL_TRUE},
351 {
"SliceSky", CPL_TYPE_INT, NULL,
"%02d",
352 "Slice number on the sky", CPL_TRUE},
353 {
"x", CPL_TYPE_DOUBLE,
"pix",
"%9.4f",
354 "x position within field of view", CPL_TRUE},
355 {
"y", CPL_TYPE_DOUBLE,
"pix",
"%9.4f",
356 "y position within field of view", CPL_TRUE},
357 {
"angle", CPL_TYPE_DOUBLE,
"deg",
"%6.3f",
358 "Rotation angle of slice", CPL_TRUE},
359 {
"width", CPL_TYPE_DOUBLE,
"pix",
"%.2f",
360 "Width of slice within field of view", CPL_TRUE},
361 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
366 #ifdef XML_TABLEDEF_SPOTS_TABLE
403 {
"filename", CPL_TYPE_STRING, NULL,
"%s",
404 "(Raw) filename from which this measurement originates", CPL_TRUE},
405 {
"image", CPL_TYPE_INT, NULL,
"%03d",
406 "Number of the image in the series", CPL_TRUE},
407 {
"POSENC2", CPL_TYPE_INT, NULL,
"%7d",
408 "X position of the mask in encoder steps", CPL_TRUE},
409 {
"POSPOS2", CPL_TYPE_DOUBLE,
"mm",
"%.3f",
410 "X position of the mask", CPL_TRUE},
411 {
"POSENC3", CPL_TYPE_INT, NULL,
"%7d",
412 "Y position of the mask in encoder steps", CPL_TRUE},
413 {
"POSPOS3", CPL_TYPE_DOUBLE,
"mm",
"%.3f",
414 "Y position of the mask", CPL_TRUE},
415 {
"POSENC4", CPL_TYPE_INT, NULL,
"%7d",
416 "Z position of the mask in encoder steps", CPL_TRUE},
417 {
"POSPOS4", CPL_TYPE_DOUBLE,
"mm",
"%.3f",
418 "Z position of the mask", CPL_TRUE},
419 {
"VPOS", CPL_TYPE_DOUBLE,
"mm",
"%.3f",
420 "Real vertical position of the mask", CPL_TRUE},
421 {
"ScaleFOV", CPL_TYPE_DOUBLE,
"arcsec/mm",
"%.3f",
422 "Focus scale in VLT focal plane (from the FITS header)", CPL_TRUE},
423 {
"SubField", CPL_TYPE_INT, NULL,
"%02d",
424 "Sub-field number", CPL_TRUE},
425 {
"SliceCCD", CPL_TYPE_INT, NULL,
"%02d",
426 "Slice number as counted on the CCD", CPL_TRUE},
427 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%.3f",
428 "Wavelength", CPL_TRUE},
429 {
"SpotNo", CPL_TYPE_INT, NULL,
"%04d",
430 "Number of this spot within the slice (1 is left, 2 is the central one, 3 is right within the slice)", CPL_TRUE},
431 {
"xc", CPL_TYPE_DOUBLE,
"pix",
"%.3f",
432 "x center of this spot on the CCD", CPL_TRUE},
433 {
"yc", CPL_TYPE_DOUBLE,
"pix",
"%.3f",
434 "y center of this spot on the CCD", CPL_TRUE},
435 {
"xfwhm", CPL_TYPE_DOUBLE,
"pix",
"%.2f",
436 "FWHM in x-direction on the CCD", CPL_TRUE},
437 {
"yfwhm", CPL_TYPE_DOUBLE,
"pix",
"%.2f",
438 "FWHM in y-direction on the CCD", CPL_TRUE},
439 {
"flux", CPL_TYPE_DOUBLE, NULL,
"%.1f",
440 "Flux of the spot as integrated on the CCD image", CPL_TRUE},
441 {
"bg", CPL_TYPE_DOUBLE, NULL,
"%f",
442 "Background level around the spot", CPL_TRUE},
443 {
"dxcen", CPL_TYPE_DOUBLE,
"pix",
"%f",
444 "distance to center of slice at vertical position yc (positive: right of center)", CPL_TRUE},
445 {
"twidth", CPL_TYPE_DOUBLE,
"pix",
"%f",
446 "trace width of the slice at the vertical CCD position of the spot", CPL_TRUE},
447 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
470 {
"name", CPL_TYPE_STRING, NULL,
"%s",
471 "Line name", CPL_TRUE},
472 {
"group", CPL_TYPE_INT, NULL,
"%2d",
473 "Line group id", CPL_TRUE},
474 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%7.2f",
475 "Air wavelength", CPL_TRUE},
476 {
"flux", CPL_TYPE_DOUBLE,
"10**(-20)*erg/(s cm^2 arcsec^2)",
"%1.5e",
477 "Line flux", CPL_TRUE},
478 {
"dq", CPL_TYPE_INT, NULL,
"%#x",
479 "Quality of the entry (>0: dont use)", CPL_TRUE},
480 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
505 {
"name", CPL_TYPE_STRING, NULL,
"%s",
506 "Transition name; like &OH 8-3 P1e(22.5) 2&", CPL_TRUE},
507 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%7.2f",
508 "Air wavelength", CPL_TRUE},
509 {
"v_u", CPL_TYPE_INT, NULL,
"%7d",
510 "Upper transition level", CPL_TRUE},
511 {
"v_l", CPL_TYPE_INT, NULL,
"%7d",
512 "Lower transition level", CPL_TRUE},
513 {
"nu", CPL_TYPE_INT, NULL,
"%7d",
514 "Vibrational momentum", CPL_TRUE},
515 {
"E_u", CPL_TYPE_DOUBLE,
"J",
"%1.5e",
516 "Upper energy", CPL_TRUE},
517 {
"J_u", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
518 "Upper momentum", CPL_TRUE},
519 {
"A", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
520 "Transition probability", CPL_TRUE},
521 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
525 #ifdef XML_TABLEDEF_FLUX_TABLE
541 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%7.2f",
542 "Wavelength", CPL_TRUE},
543 {
"flux", CPL_TYPE_DOUBLE,
"erg/(s cm^2 arcsec^2)",
"%1.5e",
545 {
"fluxerr", CPL_TYPE_DOUBLE,
"erg/(s cm^2 arcsec^2)",
"%1.5e",
546 "Error of the flux", CPL_FALSE},
547 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
552 #ifdef XML_TABLEDEF_STD_FLUX_TABLE
575 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%7.2f",
576 "Wavelength", CPL_TRUE},
577 {
"flux", CPL_TYPE_DOUBLE,
"erg/s/cm**2/Angstrom",
"%1.5e",
578 "The standard star flux", CPL_TRUE},
579 {
"fluxerr", CPL_TYPE_DOUBLE,
"erg/s/cm**2/Angstrom",
"%1.5e",
580 "Error of the standard star flux, optional", CPL_FALSE},
581 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
586 #ifdef XML_TABLEDEF_STD_RESPONSE
601 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%7.2f",
602 "wavelength", CPL_TRUE},
603 {
"response", CPL_TYPE_DOUBLE,
"2.5*log10((count/s/Angstrom)/(erg/s/cm**2/Angstrom))",
"%.4e",
604 "instrument response derived from standard star", CPL_TRUE},
605 {
"resperr", CPL_TYPE_DOUBLE,
"2.5*log10((count/s/Angstrom)/(erg/s/cm**2/Angstrom))",
"%.4e",
606 "instrument response error derived from standard star", CPL_TRUE},
607 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
612 #ifdef XML_TABLEDEF_STD_TELLURIC
627 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%7.2f",
628 "wavelength", CPL_TRUE},
629 {
"ftelluric", CPL_TYPE_DOUBLE, NULL,
"%.5f",
630 "the telluric correction factor, normalized to an airmass of 1", CPL_TRUE},
631 {
"ftellerr", CPL_TYPE_DOUBLE, NULL,
"%.5f",
632 "the error of the telluric correction factor", CPL_TRUE},
633 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
638 #ifdef XML_TABLEDEF_EXTINCT_TABLE
657 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%1.5e",
658 "Wavelength", CPL_TRUE},
659 {
"extinction", CPL_TYPE_DOUBLE,
"mag/airmass",
"%1.5e",
660 "Extinction", CPL_TRUE},
661 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
666 #ifdef XML_TABLEDEF_TELLURIC_REGIONS
684 {
"lmin", CPL_TYPE_DOUBLE,
"Angstrom",
"%8.3f",
685 "Lower limit of the telluric region", CPL_TRUE},
686 {
"lmax", CPL_TYPE_DOUBLE,
"Angstrom",
"%8.3f",
687 "Upper limit of the telluric region", CPL_TRUE},
688 {
"bgmin", CPL_TYPE_DOUBLE,
"Angstrom",
"%8.3f",
689 "Lower limit of the background region", CPL_TRUE},
690 {
"bgmax", CPL_TYPE_DOUBLE,
"Angstrom",
"%8.3f",
691 "Upper limit of the background region", CPL_TRUE},
692 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
724 { MUSE_LINE_CATALOG_LAMBDA, CPL_TYPE_FLOAT,
"Angstrom",
"%1.5e",
725 "Wavelength", CPL_TRUE},
726 { MUSE_LINE_CATALOG_FLUX, CPL_TYPE_FLOAT, NULL,
"%1.5e",
727 "Relative flux", CPL_TRUE},
728 { MUSE_LINE_CATALOG_ION, CPL_TYPE_STRING, NULL,
"%s",
729 "Ion from which the line originates", CPL_TRUE},
730 { MUSE_LINE_CATALOG_QUALITY, CPL_TYPE_INT, NULL,
"%7d",
731 "Quality flag (0: undetected line, 1: line used for pattern matching, 2: line that is part of a multiplet, 3: good line, fully used, 5: bright and isolated line, use as FWHM reference", CPL_TRUE},
732 {
"comment", CPL_TYPE_STRING, NULL,
"%s",
733 "Optional comment", CPL_FALSE},
734 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
754 { MUSE_BADPIX_X, CPL_TYPE_INT,
"pix",
"%4d",
755 "X position of a bad pixel (on untrimmed raw data)", CPL_TRUE},
756 { MUSE_BADPIX_Y, CPL_TYPE_INT,
"pix",
"%4d",
757 "Y position of a bad pixel (on untrimmed raw data)", CPL_TRUE},
758 { MUSE_BADPIX_DQ, CPL_TYPE_INT, NULL,
"%#010x",
759 "32bit bad pixel mask as defined by Euro3D", CPL_TRUE},
760 { MUSE_BADPIX_VALUE, CPL_TYPE_FLOAT,
"count",
"%7.4f",
761 "Extra value, e.g. depth for traps", CPL_TRUE},
762 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
766 #ifdef XML_TABLEDEF_ASTROMETRY_REFERENCE
791 {
"SourceID", CPL_TYPE_STRING, NULL,
"%s",
792 "Source identification", CPL_TRUE},
793 {
"RA", CPL_TYPE_DOUBLE,
"deg",
"%1.5e",
794 "Right ascension", CPL_TRUE},
795 {
"DEC", CPL_TYPE_DOUBLE,
"deg",
"%1.5e",
796 "Declination", CPL_TRUE},
797 {
"filter", CPL_TYPE_STRING, NULL,
"%s",
798 "Filter name used for column mag", CPL_TRUE},
799 {
"mag", CPL_TYPE_DOUBLE,
"mag",
"%1.5e",
800 "Object (Vega) magnitude", CPL_TRUE},
801 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
806 #ifdef XML_TABLEDEF_FILTER_LIST
822 {
"lambda", CPL_TYPE_DOUBLE,
"Angstrom",
"%1.5e",
823 "Wavelength", CPL_TRUE},
824 {
"throughput", CPL_TYPE_DOUBLE, NULL,
"%1.5e",
825 "Filter throughput (in fractions of 1)", CPL_TRUE},
826 { NULL, 0, NULL, NULL, NULL, CPL_FALSE }
Definition of a cpl table structure.