pyreduce-astro 0.6.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. pyreduce/__init__.py +58 -0
  2. pyreduce/__main__.py +106 -0
  3. pyreduce/clib/__init__.py +0 -0
  4. pyreduce/clib/_slitfunc_2d.cpython-313-darwin.so +0 -0
  5. pyreduce/clib/_slitfunc_bd.cpython-313-darwin.so +0 -0
  6. pyreduce/clib/build_extract.py +75 -0
  7. pyreduce/clib/slit_func_2d_xi_zeta_bd.c +1313 -0
  8. pyreduce/clib/slit_func_2d_xi_zeta_bd.h +55 -0
  9. pyreduce/clib/slit_func_bd.c +362 -0
  10. pyreduce/clib/slit_func_bd.h +17 -0
  11. pyreduce/clipnflip.py +147 -0
  12. pyreduce/combine_frames.py +855 -0
  13. pyreduce/configuration.py +186 -0
  14. pyreduce/continuum_normalization.py +329 -0
  15. pyreduce/cwrappers.py +404 -0
  16. pyreduce/datasets.py +231 -0
  17. pyreduce/echelle.py +413 -0
  18. pyreduce/estimate_background_scatter.py +129 -0
  19. pyreduce/extract.py +1359 -0
  20. pyreduce/extraction_width.py +77 -0
  21. pyreduce/instruments/__init__.py +0 -0
  22. pyreduce/instruments/andes.json +59 -0
  23. pyreduce/instruments/andes.py +100 -0
  24. pyreduce/instruments/common.json +46 -0
  25. pyreduce/instruments/common.py +675 -0
  26. pyreduce/instruments/crires_plus.json +63 -0
  27. pyreduce/instruments/crires_plus.py +103 -0
  28. pyreduce/instruments/filters.py +195 -0
  29. pyreduce/instruments/harpn.json +136 -0
  30. pyreduce/instruments/harpn.py +201 -0
  31. pyreduce/instruments/harps.json +155 -0
  32. pyreduce/instruments/harps.py +310 -0
  33. pyreduce/instruments/instrument_info.py +140 -0
  34. pyreduce/instruments/instrument_schema.json +221 -0
  35. pyreduce/instruments/jwst_miri.json +53 -0
  36. pyreduce/instruments/jwst_miri.py +29 -0
  37. pyreduce/instruments/jwst_niriss.json +52 -0
  38. pyreduce/instruments/jwst_niriss.py +98 -0
  39. pyreduce/instruments/lick_apf.json +53 -0
  40. pyreduce/instruments/lick_apf.py +35 -0
  41. pyreduce/instruments/mcdonald.json +59 -0
  42. pyreduce/instruments/mcdonald.py +123 -0
  43. pyreduce/instruments/metis_ifu.json +63 -0
  44. pyreduce/instruments/metis_ifu.py +45 -0
  45. pyreduce/instruments/metis_lss.json +65 -0
  46. pyreduce/instruments/metis_lss.py +45 -0
  47. pyreduce/instruments/micado.json +53 -0
  48. pyreduce/instruments/micado.py +45 -0
  49. pyreduce/instruments/neid.json +51 -0
  50. pyreduce/instruments/neid.py +154 -0
  51. pyreduce/instruments/nirspec.json +56 -0
  52. pyreduce/instruments/nirspec.py +215 -0
  53. pyreduce/instruments/nte.json +47 -0
  54. pyreduce/instruments/nte.py +42 -0
  55. pyreduce/instruments/uves.json +59 -0
  56. pyreduce/instruments/uves.py +46 -0
  57. pyreduce/instruments/xshooter.json +66 -0
  58. pyreduce/instruments/xshooter.py +39 -0
  59. pyreduce/make_shear.py +606 -0
  60. pyreduce/masks/mask_crires_plus_det1.fits.gz +0 -0
  61. pyreduce/masks/mask_crires_plus_det2.fits.gz +0 -0
  62. pyreduce/masks/mask_crires_plus_det3.fits.gz +0 -0
  63. pyreduce/masks/mask_ctio_chiron.fits.gz +0 -0
  64. pyreduce/masks/mask_elodie.fits.gz +0 -0
  65. pyreduce/masks/mask_feros3.fits.gz +0 -0
  66. pyreduce/masks/mask_flames_giraffe.fits.gz +0 -0
  67. pyreduce/masks/mask_harps_blue.fits.gz +0 -0
  68. pyreduce/masks/mask_harps_red.fits.gz +0 -0
  69. pyreduce/masks/mask_hds_blue.fits.gz +0 -0
  70. pyreduce/masks/mask_hds_red.fits.gz +0 -0
  71. pyreduce/masks/mask_het_hrs_2x5.fits.gz +0 -0
  72. pyreduce/masks/mask_jwst_miri_lrs_slitless.fits.gz +0 -0
  73. pyreduce/masks/mask_jwst_niriss_gr700xd.fits.gz +0 -0
  74. pyreduce/masks/mask_lick_apf_.fits.gz +0 -0
  75. pyreduce/masks/mask_mcdonald.fits.gz +0 -0
  76. pyreduce/masks/mask_nes.fits.gz +0 -0
  77. pyreduce/masks/mask_nirspec_nirspec.fits.gz +0 -0
  78. pyreduce/masks/mask_sarg.fits.gz +0 -0
  79. pyreduce/masks/mask_sarg_2x2a.fits.gz +0 -0
  80. pyreduce/masks/mask_sarg_2x2b.fits.gz +0 -0
  81. pyreduce/masks/mask_subaru_hds_red.fits.gz +0 -0
  82. pyreduce/masks/mask_uves_blue.fits.gz +0 -0
  83. pyreduce/masks/mask_uves_blue_binned_2_2.fits.gz +0 -0
  84. pyreduce/masks/mask_uves_middle.fits.gz +0 -0
  85. pyreduce/masks/mask_uves_middle_2x2_split.fits.gz +0 -0
  86. pyreduce/masks/mask_uves_middle_binned_2_2.fits.gz +0 -0
  87. pyreduce/masks/mask_uves_red.fits.gz +0 -0
  88. pyreduce/masks/mask_uves_red_2x2.fits.gz +0 -0
  89. pyreduce/masks/mask_uves_red_2x2_split.fits.gz +0 -0
  90. pyreduce/masks/mask_uves_red_binned_2_2.fits.gz +0 -0
  91. pyreduce/masks/mask_xshooter_nir.fits.gz +0 -0
  92. pyreduce/rectify.py +138 -0
  93. pyreduce/reduce.py +2205 -0
  94. pyreduce/settings/settings_CRIRES_PLUS.json +89 -0
  95. pyreduce/settings/settings_HARPN.json +73 -0
  96. pyreduce/settings/settings_HARPS.json +69 -0
  97. pyreduce/settings/settings_JWST_MIRI.json +55 -0
  98. pyreduce/settings/settings_JWST_NIRISS.json +55 -0
  99. pyreduce/settings/settings_LICK_APF.json +62 -0
  100. pyreduce/settings/settings_MCDONALD.json +58 -0
  101. pyreduce/settings/settings_METIS_IFU.json +77 -0
  102. pyreduce/settings/settings_METIS_LSS.json +77 -0
  103. pyreduce/settings/settings_MICADO.json +78 -0
  104. pyreduce/settings/settings_NEID.json +73 -0
  105. pyreduce/settings/settings_NIRSPEC.json +58 -0
  106. pyreduce/settings/settings_NTE.json +60 -0
  107. pyreduce/settings/settings_UVES.json +54 -0
  108. pyreduce/settings/settings_XSHOOTER.json +78 -0
  109. pyreduce/settings/settings_pyreduce.json +178 -0
  110. pyreduce/settings/settings_schema.json +827 -0
  111. pyreduce/tools/__init__.py +0 -0
  112. pyreduce/tools/combine.py +117 -0
  113. pyreduce/trace_orders.py +645 -0
  114. pyreduce/util.py +1288 -0
  115. pyreduce/wavecal/MICADO_HK_3arcsec_chip5.npz +0 -0
  116. pyreduce/wavecal/atlas/thar.fits +4946 -13
  117. pyreduce/wavecal/atlas/thar_list.txt +4172 -0
  118. pyreduce/wavecal/atlas/une.fits +0 -0
  119. pyreduce/wavecal/convert.py +38 -0
  120. pyreduce/wavecal/crires_plus_J1228_Open_det1.npz +0 -0
  121. pyreduce/wavecal/crires_plus_J1228_Open_det2.npz +0 -0
  122. pyreduce/wavecal/crires_plus_J1228_Open_det3.npz +0 -0
  123. pyreduce/wavecal/harpn_harpn_2D.npz +0 -0
  124. pyreduce/wavecal/harps_blue_2D.npz +0 -0
  125. pyreduce/wavecal/harps_blue_pol_2D.npz +0 -0
  126. pyreduce/wavecal/harps_red_2D.npz +0 -0
  127. pyreduce/wavecal/harps_red_pol_2D.npz +0 -0
  128. pyreduce/wavecal/mcdonald.npz +0 -0
  129. pyreduce/wavecal/metis_lss_l_2D.npz +0 -0
  130. pyreduce/wavecal/metis_lss_m_2D.npz +0 -0
  131. pyreduce/wavecal/nirspec_K2.npz +0 -0
  132. pyreduce/wavecal/uves_blue_360nm_2D.npz +0 -0
  133. pyreduce/wavecal/uves_blue_390nm_2D.npz +0 -0
  134. pyreduce/wavecal/uves_blue_437nm_2D.npz +0 -0
  135. pyreduce/wavecal/uves_middle_2x2_2D.npz +0 -0
  136. pyreduce/wavecal/uves_middle_565nm_2D.npz +0 -0
  137. pyreduce/wavecal/uves_middle_580nm_2D.npz +0 -0
  138. pyreduce/wavecal/uves_middle_600nm_2D.npz +0 -0
  139. pyreduce/wavecal/uves_middle_665nm_2D.npz +0 -0
  140. pyreduce/wavecal/uves_middle_860nm_2D.npz +0 -0
  141. pyreduce/wavecal/uves_red_580nm_2D.npz +0 -0
  142. pyreduce/wavecal/uves_red_600nm_2D.npz +0 -0
  143. pyreduce/wavecal/uves_red_665nm_2D.npz +0 -0
  144. pyreduce/wavecal/uves_red_760nm_2D.npz +0 -0
  145. pyreduce/wavecal/uves_red_860nm_2D.npz +0 -0
  146. pyreduce/wavecal/xshooter_nir.npz +0 -0
  147. pyreduce/wavelength_calibration.py +1873 -0
  148. pyreduce_astro-0.6.0b1.dist-info/METADATA +112 -0
  149. pyreduce_astro-0.6.0b1.dist-info/RECORD +151 -0
  150. pyreduce_astro-0.6.0b1.dist-info/WHEEL +4 -0
  151. pyreduce_astro-0.6.0b1.dist-info/licenses/LICENSE +674 -0
@@ -0,0 +1,73 @@
1
+ {
2
+ "__instrument__": "HARPN",
3
+ "instrument": {
4
+ "fiber": "A"
5
+ },
6
+ "orders": {
7
+ "degree": 4,
8
+ "filter_size": 80,
9
+ "min_cluster": 2000,
10
+ "noise": 8,
11
+ "manual": false
12
+ },
13
+ "scatter": {
14
+ "extraction_width": 10
15
+ },
16
+ "norm_flat": {
17
+ "smooth_slitfunction": 2,
18
+ "smooth_spectrum": 1e-7,
19
+ "extraction_width": 10,
20
+ "oversampling": 12,
21
+ "swath_width": 200,
22
+ "threshold": 1000
23
+ },
24
+ "wavecal_master": {
25
+ "extraction_width": 5,
26
+ "collapse_function" : "median",
27
+ "bias_scaling" : "number_of_files"
28
+ },
29
+ "wavecal_init": {
30
+ "element": "thar",
31
+ "medium": "vac"
32
+ },
33
+ "wavecal": {
34
+ "threshold": 100,
35
+ "dimensionality": "2D",
36
+ "degree": [
37
+ 5,
38
+ 5
39
+ ],
40
+ "manual": false,
41
+ "element": "thar",
42
+ "medium": "vac",
43
+ "correlate_cols": 0
44
+ },
45
+ "freq_comb_master": {
46
+ "extraction_width": 10
47
+ },
48
+ "freq_comb": {
49
+ "threshold": 100,
50
+ "dimensionality": "2D",
51
+ "nstep": 7,
52
+ "degree": [
53
+ 9,
54
+ 7
55
+ ]
56
+ },
57
+ "curvature": {
58
+ "extraction_width": 10,
59
+ "peak_threshold": 0,
60
+ "peak_width": 3,
61
+ "window_width": 5,
62
+ "dimensionality": "1D",
63
+ "curv_degree": 1,
64
+ "degree": 3
65
+ },
66
+ "science": {
67
+ "oversampling": 10,
68
+ "extraction_width": 10,
69
+ "swath_width": 300,
70
+ "smooth_slitfunction": 1,
71
+ "smooth_spectrum": 0
72
+ }
73
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "__instrument__": "NIRSPEC",
3
+ "instrument": {
4
+ "#": "The calibration dir points to the location of the calibration data, since the default data download seperates the science and the calibration into different directories. It is relative to the science directory.",
5
+ "calibration_dir": ""
6
+ },
7
+ "orders": {
8
+ "degree": 4,
9
+ "filter_size": 50,
10
+ "min_cluster": 2000,
11
+ "border_width": 0,
12
+ "noise": 40,
13
+ "merge_min_threshold": 0.2,
14
+ "manual": true
15
+ },
16
+ "scatter": {
17
+ "extraction_width": 35
18
+ },
19
+ "norm_flat": {
20
+ "smooth_slitfunction": 2,
21
+ "smooth_spectrum": 0,
22
+ "extraction_width": 35,
23
+ "oversampling": 12,
24
+ "swath_width": 300,
25
+ "threshold": 1000
26
+ },
27
+ "wavecal_master": {
28
+ "extraction_width": 0.25
29
+ },
30
+ "wavecal": {
31
+ "threshold": 100,
32
+ "dimensionality": "2D",
33
+ "degree": [2, 6],
34
+ "manual": false
35
+ },
36
+ "freq_comb_master": {
37
+ "extraction_width": 0.25
38
+ },
39
+ "freq_comb": {
40
+ "dimensionality": "2D",
41
+ "degree": [6, 6]
42
+ },
43
+ "curvature": {
44
+ "extraction_width": 35,
45
+ "dimensionality": "1D",
46
+ "degree": 2
47
+ },
48
+ "science": {
49
+ "oversampling": 10,
50
+ "extraction_width": [35, 35],
51
+ "swath_width": 300,
52
+ "smooth_slitfunction": 0.3,
53
+ "smooth_spectrum": 0
54
+ },
55
+ "finalize": {
56
+ "filename": "{input}.ech"
57
+ }
58
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "./settings_schema.json",
3
+ "__instrument__": "NTE",
4
+ "orders": {
5
+ "degree": 5,
6
+ "filter_size": 80,
7
+ "min_cluster": 200,
8
+ "noise": 8,
9
+ "manual": false
10
+ },
11
+ "scatter": {
12
+ "extraction_width": 0.5,
13
+ "scatter_degree": 2
14
+ },
15
+ "norm_flat": {
16
+ "threshold": 1000,
17
+ "extraction_width": 0.45,
18
+ "smooth_slitfunction": 10,
19
+ "maxiter": 100,
20
+ "swath_width": 512,
21
+ "threshold_lower": 0.001
22
+ },
23
+ "wavecal_master": {
24
+ "collapse_function": "sum",
25
+ "extraction_width": 0.5
26
+ },
27
+ "wavecal_init": {
28
+ "element": "sky"
29
+ },
30
+ "wavecal": {
31
+ },
32
+ "freq_comb_master":{
33
+ "extraction_method": "optimal",
34
+ "extraction_width": 0.45,
35
+ "oversampling": 10,
36
+ "swath_width": 300,
37
+ "maxiter": 20,
38
+ "smooth_slitfunction": 0.1,
39
+ "smooth_spectrum": 1e-7,
40
+ "extraction_cutoff": 20,
41
+ "norm_scaling": "none"
42
+ },
43
+ "freq_comb": {
44
+ },
45
+ "curvature": {
46
+ "extraction_method": "arc",
47
+ "collapse_function": "sum",
48
+ "extraction_width": 0.5,
49
+ "peak_threshold": 0.1,
50
+ "peak_width": 1,
51
+ "window_width": 5,
52
+ "dimensionality": "2D",
53
+ "degree": [1, 1],
54
+ "curv_degree": 1,
55
+ "peak_function": "gaussian",
56
+ "bias_scaling": "exposure_time"
57
+ },
58
+ "science": {
59
+ }
60
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$schema": "./settings_schema.json",
3
+ "__instrument__": "UVES",
4
+ "orders": {
5
+ "degree": 5,
6
+ "filter_size": 80,
7
+ "min_cluster": 2000,
8
+ "noise": 8,
9
+ "manual": true,
10
+ "split_sigma": 5
11
+ },
12
+ "scatter": {
13
+ "extraction_width": 0.45,
14
+ "border_width": 20
15
+ },
16
+ "norm_flat": {
17
+ "smooth_slitfunction": 2,
18
+ "smooth_spectrum": 0,
19
+ "extraction_width": 0.45,
20
+ "oversampling": 8,
21
+ "swath_width": 200,
22
+ "threshold": 1000
23
+ },
24
+ "wavecal_master": {
25
+ },
26
+ "wavecal_init": {
27
+ },
28
+ "wavecal": {
29
+ "threshold": 100,
30
+ "dimensionality": "2D",
31
+ "degree": [6, 6],
32
+ "shift_window": 0.01,
33
+ "manual": false
34
+ },
35
+ "freq_comb_master":{
36
+ },
37
+ "freq_comb": {
38
+ "dimensionality": "2D",
39
+ "degree": [6, 6]
40
+ },
41
+ "curvature": {
42
+ "dimensionality": "1D",
43
+ "degree": 1,
44
+ "curv_degree": 1,
45
+ "peak_width": 1
46
+ },
47
+ "science": {
48
+ "oversampling": 8,
49
+ "extraction_width": 0.2,
50
+ "swath_width": 300,
51
+ "smooth_slitfunction": 0.1,
52
+ "smooth_spectrum": 0
53
+ }
54
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "__instrument__": "XSHOOTER",
3
+ "bias": {
4
+ "degree": 1
5
+ },
6
+ "flat":{
7
+ "bias_scaling": "exposure_time"
8
+ },
9
+ "orders": {
10
+ "degree": 5,
11
+ "degree_before_merge": 2,
12
+ "bias_scaling": "exposure_time",
13
+ "filter_size": 20,
14
+ "min_cluster": 500,
15
+ "noise": 10,
16
+ "border_width": 50,
17
+ "auto_merge_threshold": 0.7,
18
+ "merge_min_threshold": 0.4,
19
+ "manual": true,
20
+ "min_width": 0
21
+ },
22
+ "scatter": {
23
+ "bias_scaling": "exposure_time",
24
+ "extraction_width": 0.45,
25
+ "border_width": 20
26
+ },
27
+ "norm_flat": {
28
+ "smooth_slitfunction": 1e3,
29
+ "smooth_spectrum": 1e-7,
30
+ "extraction_width": 0.5,
31
+ "oversampling": 12,
32
+ "swath_width": 200,
33
+ "threshold": 1000
34
+ },
35
+ "curvature": {
36
+ "bias_scaling": "exposure_time",
37
+ "dimensionality": "2D",
38
+ "curv_degree": 1,
39
+ "extraction_width": 0.45,
40
+ "degree": [
41
+ 1,
42
+ 1
43
+ ]
44
+ },
45
+ "wavecal_master": {
46
+ "extraction_method": "arc",
47
+ "bias_scaling": "exposure_time"
48
+ },
49
+ "wavecal": {
50
+ "threshold": 200,
51
+ "iterations": 3,
52
+ "dimensionality": "2D",
53
+ "degree": [
54
+ 7,
55
+ 8
56
+ ],
57
+ "manual": false,
58
+ "shift_window": 0
59
+ },
60
+ "freq_comb_master": {
61
+ "bias_scaling": "exposure_time"
62
+ },
63
+ "freq_comb": {
64
+ "dimensionality": "2D",
65
+ "degree": [
66
+ 6,
67
+ 6
68
+ ]
69
+ },
70
+ "science": {
71
+ "bias_scaling": "exposure_time",
72
+ "oversampling": 10,
73
+ "extraction_width": 0.45,
74
+ "swath_width": 400,
75
+ "smooth_slitfunction": 2,
76
+ "smooth_spectrum": 0.5e-5
77
+ }
78
+ }
@@ -0,0 +1,178 @@
1
+ {
2
+ "$schema": "./settings_schema.json",
3
+ "__instrument__": "DEFAULT",
4
+ "reduce": {
5
+ "base_dir": "./",
6
+ "input_dir": "raw",
7
+ "output_dir": "reduced"
8
+ },
9
+ "instrument": {},
10
+ "mask": {},
11
+ "bias": {
12
+ "degree": 0,
13
+ "plot": true,
14
+ "plot_title": "Bias"
15
+ },
16
+ "flat": {
17
+ "bias_scaling": "number_of_files",
18
+ "norm_scaling": "none",
19
+ "plot": true,
20
+ "plot_title": "Flat"
21
+ },
22
+ "orders": {
23
+ "degree": 4,
24
+ "degree_before_merge": 2,
25
+ "bias_scaling": "number_of_files",
26
+ "norm_scaling": "none",
27
+ "regularization": 0,
28
+ "closing_shape": [
29
+ 5,
30
+ 5
31
+ ],
32
+ "auto_merge_threshold": 0.9,
33
+ "merge_min_threshold": 0.1,
34
+ "split_sigma": 0,
35
+ "filter_size": null,
36
+ "min_cluster": null,
37
+ "min_width": null,
38
+ "noise": null,
39
+ "border_width": null,
40
+ "manual": true,
41
+ "plot": true,
42
+ "plot_title": "Order Tracing"
43
+ },
44
+ "scatter": {
45
+ "scatter_degree": 4,
46
+ "scatter_cutoff": 2,
47
+ "border_width": null,
48
+ "extraction_width": 0.3,
49
+ "bias_scaling": "number_of_files",
50
+ "norm_scaling": "divide",
51
+ "plot": true,
52
+ "plot_title": "Background Scatter"
53
+ },
54
+ "norm_flat": {
55
+ "extraction_method": "normalize",
56
+ "smooth_slitfunction": 4,
57
+ "smooth_spectrum": 1e-7,
58
+ "oversampling": 10,
59
+ "maxiter": 20,
60
+ "swath_width": 200,
61
+ "extraction_width": 0.2,
62
+ "threshold": 0.6,
63
+ "threshold_lower": 0,
64
+ "extraction_cutoff": 20,
65
+ "plot": true,
66
+ "plot_title": "Normalized Flat"
67
+ },
68
+ "wavecal_master": {
69
+ "extraction_method": "arc",
70
+ "collapse_function": "median",
71
+ "extraction_width": 0.5,
72
+ "extraction_cutoff": 20,
73
+ "bias_scaling": "number_of_files",
74
+ "norm_scaling": "divide",
75
+ "maxiter": 20,
76
+ "plot": true,
77
+ "plot_title": "Wavelength Calibration Spectrum"
78
+ },
79
+ "wavecal_init": {
80
+ "degree": 2,
81
+ "element": "thar",
82
+ "medium": "vac",
83
+ "wave_delta": 20,
84
+ "nwalkers": 100,
85
+ "steps": 50000,
86
+ "resid_delta": 1000,
87
+ "cutoff": 0.01,
88
+ "smoothing": 0,
89
+ "plot": true,
90
+ "plot_title": "Wavelength Calibration Initial"
91
+ },
92
+ "wavecal": {
93
+ "manual": false,
94
+ "threshold": 100,
95
+ "iterations": 3,
96
+ "dimensionality": "2D",
97
+ "degree": [
98
+ 6,
99
+ 6
100
+ ],
101
+ "nstep": 0,
102
+ "correlate_cols": 0,
103
+ "shift_window": 0.01,
104
+ "element": "thar",
105
+ "medium": "vac",
106
+ "plot": true,
107
+ "plot_title": "Wavelength Calibration"
108
+ },
109
+ "freq_comb_master":{
110
+ "extraction_method": "arc",
111
+ "collapse_function": "median",
112
+ "extraction_width": 0.5,
113
+ "extraction_cutoff": 20,
114
+ "bias_scaling": "number_of_files",
115
+ "norm_scaling": "divide",
116
+ "plot": true,
117
+ "plot_title": "Frequency Comb Spectrum"
118
+ },
119
+ "freq_comb": {
120
+ "lfc_peak_width": 3,
121
+ "dimensionality": "2D",
122
+ "nstep": 0,
123
+ "degree": [
124
+ 6,
125
+ 6
126
+ ],
127
+ "threshold": 100,
128
+ "plot": true,
129
+ "plot_title": "Frequency Comb"
130
+ },
131
+ "curvature": {
132
+ "dimensionality": "1D",
133
+ "degree": 2,
134
+ "curv_degree": 2,
135
+ "extraction_method": "arc",
136
+ "collapse_function": "median",
137
+ "extraction_width": 0.2,
138
+ "curvature_cutoff": 3,
139
+ "extraction_cutoff": 20,
140
+ "peak_threshold": 10,
141
+ "peak_width": 1,
142
+ "window_width": 9,
143
+ "peak_function": "gaussian",
144
+ "bias_scaling": "number_of_files",
145
+ "norm_scaling": "divide",
146
+ "plot": true,
147
+ "plot_title": "Slit Curvature"
148
+ },
149
+ "rectify": {
150
+ "extraction_width": 0.5,
151
+ "input_files": "science",
152
+ "plot": true,
153
+ "plot_title": "Rectified Image"
154
+ },
155
+ "science": {
156
+ "extraction_method": "optimal",
157
+ "extraction_width": 0.25,
158
+ "oversampling": 10,
159
+ "swath_width": 300,
160
+ "maxiter": 20,
161
+ "smooth_slitfunction": 0.1,
162
+ "smooth_spectrum": 1e-7,
163
+ "extraction_cutoff": 20,
164
+ "bias_scaling": "number_of_files",
165
+ "norm_scaling": "divide",
166
+ "plot": true,
167
+ "plot_title": "Science Data"
168
+ },
169
+ "continuum": {
170
+ "plot": true,
171
+ "plot_title": "Continuum Normalization"
172
+ },
173
+ "finalize": {
174
+ "filename": "{instrument}.{night}_{number}.final.ech",
175
+ "plot": true,
176
+ "plot_title": "Final Science Product"
177
+ }
178
+ }