pyreduce-astro 0.7a4__cp314-cp314-win_amd64.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.
- pyreduce/__init__.py +67 -0
- pyreduce/__main__.py +322 -0
- pyreduce/cli.py +342 -0
- pyreduce/clib/Release/_slitfunc_2d.cp311-win_amd64.exp +0 -0
- pyreduce/clib/Release/_slitfunc_2d.cp311-win_amd64.lib +0 -0
- pyreduce/clib/Release/_slitfunc_2d.cp312-win_amd64.exp +0 -0
- pyreduce/clib/Release/_slitfunc_2d.cp312-win_amd64.lib +0 -0
- pyreduce/clib/Release/_slitfunc_2d.cp313-win_amd64.exp +0 -0
- pyreduce/clib/Release/_slitfunc_2d.cp313-win_amd64.lib +0 -0
- pyreduce/clib/Release/_slitfunc_2d.cp314-win_amd64.exp +0 -0
- pyreduce/clib/Release/_slitfunc_2d.cp314-win_amd64.lib +0 -0
- pyreduce/clib/Release/_slitfunc_2d.obj +0 -0
- pyreduce/clib/Release/_slitfunc_bd.cp311-win_amd64.exp +0 -0
- pyreduce/clib/Release/_slitfunc_bd.cp311-win_amd64.lib +0 -0
- pyreduce/clib/Release/_slitfunc_bd.cp312-win_amd64.exp +0 -0
- pyreduce/clib/Release/_slitfunc_bd.cp312-win_amd64.lib +0 -0
- pyreduce/clib/Release/_slitfunc_bd.cp313-win_amd64.exp +0 -0
- pyreduce/clib/Release/_slitfunc_bd.cp313-win_amd64.lib +0 -0
- pyreduce/clib/Release/_slitfunc_bd.cp314-win_amd64.exp +0 -0
- pyreduce/clib/Release/_slitfunc_bd.cp314-win_amd64.lib +0 -0
- pyreduce/clib/Release/_slitfunc_bd.obj +0 -0
- pyreduce/clib/__init__.py +0 -0
- pyreduce/clib/_slitfunc_2d.cp311-win_amd64.pyd +0 -0
- pyreduce/clib/_slitfunc_2d.cp312-win_amd64.pyd +0 -0
- pyreduce/clib/_slitfunc_2d.cp313-win_amd64.pyd +0 -0
- pyreduce/clib/_slitfunc_2d.cp314-win_amd64.pyd +0 -0
- pyreduce/clib/_slitfunc_bd.cp311-win_amd64.pyd +0 -0
- pyreduce/clib/_slitfunc_bd.cp312-win_amd64.pyd +0 -0
- pyreduce/clib/_slitfunc_bd.cp313-win_amd64.pyd +0 -0
- pyreduce/clib/_slitfunc_bd.cp314-win_amd64.pyd +0 -0
- pyreduce/clib/build_extract.py +75 -0
- pyreduce/clib/slit_func_2d_xi_zeta_bd.c +1313 -0
- pyreduce/clib/slit_func_2d_xi_zeta_bd.h +55 -0
- pyreduce/clib/slit_func_bd.c +362 -0
- pyreduce/clib/slit_func_bd.h +17 -0
- pyreduce/clipnflip.py +147 -0
- pyreduce/combine_frames.py +861 -0
- pyreduce/configuration.py +191 -0
- pyreduce/continuum_normalization.py +329 -0
- pyreduce/cwrappers.py +404 -0
- pyreduce/datasets.py +238 -0
- pyreduce/echelle.py +413 -0
- pyreduce/estimate_background_scatter.py +130 -0
- pyreduce/extract.py +1362 -0
- pyreduce/extraction_width.py +77 -0
- pyreduce/instruments/__init__.py +0 -0
- pyreduce/instruments/aj.py +9 -0
- pyreduce/instruments/aj.yaml +51 -0
- pyreduce/instruments/andes.py +102 -0
- pyreduce/instruments/andes.yaml +72 -0
- pyreduce/instruments/common.py +711 -0
- pyreduce/instruments/common.yaml +57 -0
- pyreduce/instruments/crires_plus.py +103 -0
- pyreduce/instruments/crires_plus.yaml +101 -0
- pyreduce/instruments/filters.py +195 -0
- pyreduce/instruments/harpn.py +203 -0
- pyreduce/instruments/harpn.yaml +140 -0
- pyreduce/instruments/harps.py +312 -0
- pyreduce/instruments/harps.yaml +144 -0
- pyreduce/instruments/instrument_info.py +140 -0
- pyreduce/instruments/jwst_miri.py +29 -0
- pyreduce/instruments/jwst_miri.yaml +53 -0
- pyreduce/instruments/jwst_niriss.py +98 -0
- pyreduce/instruments/jwst_niriss.yaml +60 -0
- pyreduce/instruments/lick_apf.py +35 -0
- pyreduce/instruments/lick_apf.yaml +60 -0
- pyreduce/instruments/mcdonald.py +123 -0
- pyreduce/instruments/mcdonald.yaml +56 -0
- pyreduce/instruments/metis_ifu.py +45 -0
- pyreduce/instruments/metis_ifu.yaml +62 -0
- pyreduce/instruments/metis_lss.py +45 -0
- pyreduce/instruments/metis_lss.yaml +62 -0
- pyreduce/instruments/micado.py +45 -0
- pyreduce/instruments/micado.yaml +62 -0
- pyreduce/instruments/models.py +257 -0
- pyreduce/instruments/neid.py +156 -0
- pyreduce/instruments/neid.yaml +61 -0
- pyreduce/instruments/nirspec.py +215 -0
- pyreduce/instruments/nirspec.yaml +63 -0
- pyreduce/instruments/nte.py +42 -0
- pyreduce/instruments/nte.yaml +55 -0
- pyreduce/instruments/uves.py +46 -0
- pyreduce/instruments/uves.yaml +65 -0
- pyreduce/instruments/xshooter.py +39 -0
- pyreduce/instruments/xshooter.yaml +63 -0
- pyreduce/make_shear.py +607 -0
- pyreduce/masks/mask_crires_plus_det1.fits.gz +0 -0
- pyreduce/masks/mask_crires_plus_det2.fits.gz +0 -0
- pyreduce/masks/mask_crires_plus_det3.fits.gz +0 -0
- pyreduce/masks/mask_ctio_chiron.fits.gz +0 -0
- pyreduce/masks/mask_elodie.fits.gz +0 -0
- pyreduce/masks/mask_feros3.fits.gz +0 -0
- pyreduce/masks/mask_flames_giraffe.fits.gz +0 -0
- pyreduce/masks/mask_harps_blue.fits.gz +0 -0
- pyreduce/masks/mask_harps_red.fits.gz +0 -0
- pyreduce/masks/mask_hds_blue.fits.gz +0 -0
- pyreduce/masks/mask_hds_red.fits.gz +0 -0
- pyreduce/masks/mask_het_hrs_2x5.fits.gz +0 -0
- pyreduce/masks/mask_jwst_miri_lrs_slitless.fits.gz +0 -0
- pyreduce/masks/mask_jwst_niriss_gr700xd.fits.gz +0 -0
- pyreduce/masks/mask_lick_apf_.fits.gz +0 -0
- pyreduce/masks/mask_mcdonald.fits.gz +0 -0
- pyreduce/masks/mask_nes.fits.gz +0 -0
- pyreduce/masks/mask_nirspec_nirspec.fits.gz +0 -0
- pyreduce/masks/mask_sarg.fits.gz +0 -0
- pyreduce/masks/mask_sarg_2x2a.fits.gz +0 -0
- pyreduce/masks/mask_sarg_2x2b.fits.gz +0 -0
- pyreduce/masks/mask_subaru_hds_red.fits.gz +0 -0
- pyreduce/masks/mask_uves_blue.fits.gz +0 -0
- pyreduce/masks/mask_uves_blue_binned_2_2.fits.gz +0 -0
- pyreduce/masks/mask_uves_middle.fits.gz +0 -0
- pyreduce/masks/mask_uves_middle_2x2_split.fits.gz +0 -0
- pyreduce/masks/mask_uves_middle_binned_2_2.fits.gz +0 -0
- pyreduce/masks/mask_uves_red.fits.gz +0 -0
- pyreduce/masks/mask_uves_red_2x2.fits.gz +0 -0
- pyreduce/masks/mask_uves_red_2x2_split.fits.gz +0 -0
- pyreduce/masks/mask_uves_red_binned_2_2.fits.gz +0 -0
- pyreduce/masks/mask_xshooter_nir.fits.gz +0 -0
- pyreduce/pipeline.py +619 -0
- pyreduce/rectify.py +138 -0
- pyreduce/reduce.py +2065 -0
- pyreduce/settings/settings_AJ.json +19 -0
- pyreduce/settings/settings_ANDES.json +89 -0
- pyreduce/settings/settings_CRIRES_PLUS.json +89 -0
- pyreduce/settings/settings_HARPN.json +73 -0
- pyreduce/settings/settings_HARPS.json +69 -0
- pyreduce/settings/settings_JWST_MIRI.json +55 -0
- pyreduce/settings/settings_JWST_NIRISS.json +55 -0
- pyreduce/settings/settings_LICK_APF.json +62 -0
- pyreduce/settings/settings_MCDONALD.json +58 -0
- pyreduce/settings/settings_METIS_IFU.json +77 -0
- pyreduce/settings/settings_METIS_LSS.json +77 -0
- pyreduce/settings/settings_MICADO.json +78 -0
- pyreduce/settings/settings_NEID.json +73 -0
- pyreduce/settings/settings_NIRSPEC.json +58 -0
- pyreduce/settings/settings_NTE.json +60 -0
- pyreduce/settings/settings_UVES.json +54 -0
- pyreduce/settings/settings_XSHOOTER.json +78 -0
- pyreduce/settings/settings_pyreduce.json +184 -0
- pyreduce/settings/settings_schema.json +850 -0
- pyreduce/tools/__init__.py +0 -0
- pyreduce/tools/combine.py +117 -0
- pyreduce/trace.py +979 -0
- pyreduce/util.py +1366 -0
- pyreduce/wavecal/MICADO_HK_3arcsec_chip5.npz +0 -0
- pyreduce/wavecal/atlas/thar.fits +4946 -13
- pyreduce/wavecal/atlas/thar_list.txt +4172 -0
- pyreduce/wavecal/atlas/une.fits +0 -0
- pyreduce/wavecal/convert.py +38 -0
- pyreduce/wavecal/crires_plus_J1228_Open_det1.npz +0 -0
- pyreduce/wavecal/crires_plus_J1228_Open_det2.npz +0 -0
- pyreduce/wavecal/crires_plus_J1228_Open_det3.npz +0 -0
- pyreduce/wavecal/harpn_harpn_2D.npz +0 -0
- pyreduce/wavecal/harps_blue_2D.npz +0 -0
- pyreduce/wavecal/harps_blue_pol_2D.npz +0 -0
- pyreduce/wavecal/harps_red_2D.npz +0 -0
- pyreduce/wavecal/harps_red_pol_2D.npz +0 -0
- pyreduce/wavecal/mcdonald.npz +0 -0
- pyreduce/wavecal/metis_lss_l_2D.npz +0 -0
- pyreduce/wavecal/metis_lss_m_2D.npz +0 -0
- pyreduce/wavecal/nirspec_K2.npz +0 -0
- pyreduce/wavecal/uves_blue_360nm_2D.npz +0 -0
- pyreduce/wavecal/uves_blue_390nm_2D.npz +0 -0
- pyreduce/wavecal/uves_blue_437nm_2D.npz +0 -0
- pyreduce/wavecal/uves_middle_2x2_2D.npz +0 -0
- pyreduce/wavecal/uves_middle_565nm_2D.npz +0 -0
- pyreduce/wavecal/uves_middle_580nm_2D.npz +0 -0
- pyreduce/wavecal/uves_middle_600nm_2D.npz +0 -0
- pyreduce/wavecal/uves_middle_665nm_2D.npz +0 -0
- pyreduce/wavecal/uves_middle_860nm_2D.npz +0 -0
- pyreduce/wavecal/uves_red_580nm_2D.npz +0 -0
- pyreduce/wavecal/uves_red_600nm_2D.npz +0 -0
- pyreduce/wavecal/uves_red_665nm_2D.npz +0 -0
- pyreduce/wavecal/uves_red_760nm_2D.npz +0 -0
- pyreduce/wavecal/uves_red_860nm_2D.npz +0 -0
- pyreduce/wavecal/xshooter_nir.npz +0 -0
- pyreduce/wavelength_calibration.py +1871 -0
- pyreduce_astro-0.7a4.dist-info/METADATA +106 -0
- pyreduce_astro-0.7a4.dist-info/RECORD +182 -0
- pyreduce_astro-0.7a4.dist-info/WHEEL +4 -0
- pyreduce_astro-0.7a4.dist-info/entry_points.txt +2 -0
- pyreduce_astro-0.7a4.dist-info/licenses/LICENSE +674 -0
|
@@ -0,0 +1,850 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "pyreduce.schema",
|
|
4
|
+
"title": "PyReduce Settings",
|
|
5
|
+
"description": "Available settings for the PyReduce reduction pipeline",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"__instrument__": {
|
|
9
|
+
"description": "The name of the instrument these settings are designed for",
|
|
10
|
+
"type": "string"
|
|
11
|
+
},
|
|
12
|
+
"reduce": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"base_dir": {
|
|
16
|
+
"description": "Base directory of all reduce operations, to keep input and output seperate",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"input_dir": {
|
|
20
|
+
"description": "Directory containing the input data, relative to the base directory. May contain {instrument}, {night}, {mode}, {target} tags.",
|
|
21
|
+
"type": "string"
|
|
22
|
+
},
|
|
23
|
+
"output_dir": {
|
|
24
|
+
"description": "Directory to place the output (and temporary) files in, relative to the base directory. May contain {instrument}, {night}, {mode}, {target} tags.",
|
|
25
|
+
"type": "string"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"required": [
|
|
29
|
+
"base_dir",
|
|
30
|
+
"input_dir",
|
|
31
|
+
"output_dir"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"instrument": {
|
|
35
|
+
"type": "object"
|
|
36
|
+
},
|
|
37
|
+
"mask": {
|
|
38
|
+
"type": "object"
|
|
39
|
+
},
|
|
40
|
+
"bias": {
|
|
41
|
+
"allOf": [
|
|
42
|
+
{
|
|
43
|
+
"$ref": "#/definitions/step"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "object",
|
|
47
|
+
"properties": {
|
|
48
|
+
"degree": {
|
|
49
|
+
"description": "Polynomial degree of the fit between exposure time and pixel values",
|
|
50
|
+
"type": "number",
|
|
51
|
+
"minimum": 0
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"required": [
|
|
55
|
+
"degree"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"flat": {
|
|
61
|
+
"allOf": [
|
|
62
|
+
{
|
|
63
|
+
"$ref": "#/definitions/step"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"$ref": "#/definitions/bias_scaling"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
"orders": {
|
|
71
|
+
"allOf": [
|
|
72
|
+
{
|
|
73
|
+
"$ref": "#/definitions/step"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"$ref": "#/definitions/bias_scaling"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"type": "object",
|
|
80
|
+
"properties": {
|
|
81
|
+
"degree": {
|
|
82
|
+
"description": "Polynomial degree of the fit to the orders on the detector",
|
|
83
|
+
"type": "integer",
|
|
84
|
+
"minimum": 0
|
|
85
|
+
},
|
|
86
|
+
"degree_before_merge": {
|
|
87
|
+
"description": "Polynomial degree of the first fit to the orders, before merging clusters",
|
|
88
|
+
"type": [
|
|
89
|
+
"integer",
|
|
90
|
+
"string"
|
|
91
|
+
],
|
|
92
|
+
"minimum": 0
|
|
93
|
+
},
|
|
94
|
+
"regularization": {
|
|
95
|
+
"description": "Regularization parameter for the order fitting (before merging)",
|
|
96
|
+
"type": "number",
|
|
97
|
+
"minimum": 0
|
|
98
|
+
},
|
|
99
|
+
"closing_shape": {
|
|
100
|
+
"description": "Shape for binary closing (fills gaps within traces)",
|
|
101
|
+
"type": "array",
|
|
102
|
+
"minItems": 2,
|
|
103
|
+
"maxItems": 2,
|
|
104
|
+
"items": {
|
|
105
|
+
"type": "integer",
|
|
106
|
+
"minimum": 1
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"opening_shape": {
|
|
110
|
+
"description": "Shape for binary opening (removes isolated noise pixels)",
|
|
111
|
+
"type": "array",
|
|
112
|
+
"minItems": 2,
|
|
113
|
+
"maxItems": 2,
|
|
114
|
+
"items": {
|
|
115
|
+
"type": "integer",
|
|
116
|
+
"minimum": 1
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"auto_merge_threshold": {
|
|
120
|
+
"description": "Fractional threshold, for automatic merging",
|
|
121
|
+
"type": "number",
|
|
122
|
+
"minimum": 0,
|
|
123
|
+
"maximum": 1
|
|
124
|
+
},
|
|
125
|
+
"merge_min_threshold": {
|
|
126
|
+
"description": "Minimum merge probabilty to consider",
|
|
127
|
+
"type": "number",
|
|
128
|
+
"minimum": 0,
|
|
129
|
+
"maximum": 1
|
|
130
|
+
},
|
|
131
|
+
"split_sigma": {
|
|
132
|
+
"description": "Number of standard deviations around the best fit polyonomial of all orders, to split data points of of. Set to 0 to disable splitting.",
|
|
133
|
+
"type": "number",
|
|
134
|
+
"minimum": 0
|
|
135
|
+
},
|
|
136
|
+
"filter_x": {
|
|
137
|
+
"description": "Gaussian smoothing sigma along x-axis (dispersion direction). Set to 0 to disable. Useful for noisy data or thin fiber traces.",
|
|
138
|
+
"type": "integer",
|
|
139
|
+
"minimum": 0,
|
|
140
|
+
"default": 0
|
|
141
|
+
},
|
|
142
|
+
"filter_y": {
|
|
143
|
+
"description": "Smoothing width along y-axis (cross-dispersion) for background estimation. Estimated automatically if null. Use small values for thin closely-spaced traces.",
|
|
144
|
+
"type": [
|
|
145
|
+
"integer",
|
|
146
|
+
"null"
|
|
147
|
+
],
|
|
148
|
+
"minimum": 0
|
|
149
|
+
},
|
|
150
|
+
"filter_type": {
|
|
151
|
+
"description": "Type of smoothing filter for background estimation: boxcar (uniform average), gaussian, or whittaker (edge-preserving).",
|
|
152
|
+
"type": "string",
|
|
153
|
+
"enum": ["boxcar", "gaussian", "whittaker"],
|
|
154
|
+
"default": "boxcar"
|
|
155
|
+
},
|
|
156
|
+
"min_cluster": {
|
|
157
|
+
"description": "Smallest allowed size of clusters before merging. Estimated automatically if null.",
|
|
158
|
+
"type": [
|
|
159
|
+
"integer",
|
|
160
|
+
"null"
|
|
161
|
+
],
|
|
162
|
+
"minimum": 0
|
|
163
|
+
},
|
|
164
|
+
"min_width": {
|
|
165
|
+
"description": "Minimum width of a cluster to be considered after merging. If between 0 and 1, use that fraction of the detector width. Estimated automatically if null",
|
|
166
|
+
"type": [
|
|
167
|
+
"number",
|
|
168
|
+
"null"
|
|
169
|
+
],
|
|
170
|
+
"minimum": 0
|
|
171
|
+
},
|
|
172
|
+
"noise": {
|
|
173
|
+
"description": "Background noise level cutoff. Estimated automatically if null.",
|
|
174
|
+
"type": [
|
|
175
|
+
"integer",
|
|
176
|
+
"null"
|
|
177
|
+
],
|
|
178
|
+
"minimum": 0
|
|
179
|
+
},
|
|
180
|
+
"border_width": {
|
|
181
|
+
"description": "Number of pixels to disregard at the border of the image. Estimated automatically if null.",
|
|
182
|
+
"type": [
|
|
183
|
+
"integer",
|
|
184
|
+
"null"
|
|
185
|
+
],
|
|
186
|
+
"minimum": 0
|
|
187
|
+
},
|
|
188
|
+
"manual": {
|
|
189
|
+
"description": "Ask for manual confirmation before merging any clusters. Otherwise only ask when overlap below 90%.",
|
|
190
|
+
"type": "boolean"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"required": [
|
|
194
|
+
"degree",
|
|
195
|
+
"filter_x",
|
|
196
|
+
"filter_y",
|
|
197
|
+
"min_cluster",
|
|
198
|
+
"noise",
|
|
199
|
+
"border_width",
|
|
200
|
+
"manual"
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
"scatter": {
|
|
206
|
+
"allOf": [
|
|
207
|
+
{
|
|
208
|
+
"$ref": "#/definitions/step"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"$ref": "#/definitions/bias_scaling"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"type": "object",
|
|
215
|
+
"properties": {
|
|
216
|
+
"scatter_degree": {
|
|
217
|
+
"description": "Polynomial degree of the background scatter, in both pixel dimensions",
|
|
218
|
+
"type": [
|
|
219
|
+
"integer",
|
|
220
|
+
"array"
|
|
221
|
+
],
|
|
222
|
+
"minimum": 0,
|
|
223
|
+
"items": {
|
|
224
|
+
"type": "integer",
|
|
225
|
+
"minimum": 0
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"extraction_width": {
|
|
229
|
+
"description": "Number of pixels below and above the order to use in the extraction. If a value under 1.5 is given it will be understood as the fractional difference to the next order. If only a single value is given it will be applied to all orders, otherwise values need to be provided for all orders",
|
|
230
|
+
"type": [
|
|
231
|
+
"integer",
|
|
232
|
+
"number",
|
|
233
|
+
"array"
|
|
234
|
+
],
|
|
235
|
+
"items": {
|
|
236
|
+
"type": [
|
|
237
|
+
"integer",
|
|
238
|
+
"number"
|
|
239
|
+
]
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
"scatter_cutoff": {
|
|
243
|
+
"description": "Number of sigmas around the mean to include in the background scatter fit",
|
|
244
|
+
"type": "number",
|
|
245
|
+
"exclusiveMinimum": 0
|
|
246
|
+
},
|
|
247
|
+
"border_width": {
|
|
248
|
+
"description": "Border Width to ignore for background fit.",
|
|
249
|
+
"type": [
|
|
250
|
+
"number",
|
|
251
|
+
"null"
|
|
252
|
+
],
|
|
253
|
+
"minimum": 0
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"required": [
|
|
257
|
+
"scatter_degree",
|
|
258
|
+
"scatter_cutoff",
|
|
259
|
+
"border_width"
|
|
260
|
+
]
|
|
261
|
+
}
|
|
262
|
+
]
|
|
263
|
+
},
|
|
264
|
+
"norm_flat": {
|
|
265
|
+
"allOf": [
|
|
266
|
+
{
|
|
267
|
+
"$ref": "#/definitions/step"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"$ref": "#/definitions/extraction"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"type": "object",
|
|
274
|
+
"properties": {
|
|
275
|
+
"threshold": {
|
|
276
|
+
"description": "Background level threshold, if lower than 0, it is understood as a fraction of the maximum",
|
|
277
|
+
"type": [
|
|
278
|
+
"number",
|
|
279
|
+
"integer"
|
|
280
|
+
],
|
|
281
|
+
"exclusiveMinimum": 0
|
|
282
|
+
},
|
|
283
|
+
"threshold_lower":{
|
|
284
|
+
"description": "Lower background level threshold, after the extraction. Always absolute, by default 0.",
|
|
285
|
+
"type": "number",
|
|
286
|
+
"minimum": 0
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"required": [
|
|
290
|
+
"threshold",
|
|
291
|
+
"threshold_lower"
|
|
292
|
+
]
|
|
293
|
+
}
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
"wavecal_master": {
|
|
297
|
+
"allOf": [
|
|
298
|
+
{
|
|
299
|
+
"$ref": "#/definitions/step"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"$ref": "#/definitions/extraction"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"$ref": "#/definitions/bias_scaling"
|
|
306
|
+
}
|
|
307
|
+
]
|
|
308
|
+
},
|
|
309
|
+
"wavecal_init": {
|
|
310
|
+
"allOf": [
|
|
311
|
+
{
|
|
312
|
+
"$ref": "#/definitions/step"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"type": "object",
|
|
316
|
+
"properties": {
|
|
317
|
+
"degree": {
|
|
318
|
+
"description": "Degree of the polynomial fit for the initial guess",
|
|
319
|
+
"type": "number",
|
|
320
|
+
"minimum": 2
|
|
321
|
+
},
|
|
322
|
+
"element": {
|
|
323
|
+
"description": "Element(s) of the Gas Lamp used for calibration",
|
|
324
|
+
"type": "string"
|
|
325
|
+
},
|
|
326
|
+
"medium": {
|
|
327
|
+
"description": "Medium of the detector, either air or vaccum. This affects the wavelength scale",
|
|
328
|
+
"type": "string",
|
|
329
|
+
"enum": [
|
|
330
|
+
"vac",
|
|
331
|
+
"air"
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
"wave_delta": {
|
|
335
|
+
"description": "Wavelength uncertainty on the initial guess in Angstrom",
|
|
336
|
+
"type": "number",
|
|
337
|
+
"minimum": 0
|
|
338
|
+
},
|
|
339
|
+
"nwalkers": {
|
|
340
|
+
"description": "Number of MCMC walkers",
|
|
341
|
+
"type": "number",
|
|
342
|
+
"minimum": 1
|
|
343
|
+
},
|
|
344
|
+
"steps": {
|
|
345
|
+
"description": "Number of MCMC steps per walker",
|
|
346
|
+
"type": "number",
|
|
347
|
+
"minimum": 1
|
|
348
|
+
},
|
|
349
|
+
"resid_delta": {
|
|
350
|
+
"description": "Residual Uncertainty allowed to match a peak to its known wavelength in m/s",
|
|
351
|
+
"type": "number",
|
|
352
|
+
"minimum": 0
|
|
353
|
+
},
|
|
354
|
+
"smoothing": {
|
|
355
|
+
"description": "Gaussian smoothing parameter applied to the observed spectrum in pixel scale, set to 0 to disable smoothing",
|
|
356
|
+
"type": "number",
|
|
357
|
+
"minimum": 0
|
|
358
|
+
},
|
|
359
|
+
"cutoff": {
|
|
360
|
+
"description": "Minimum height of spectral lines in the normalized spectrum, values of 1 and above are interpreted as percentiles of the spectrum, set to 0 to disable the cutoff",
|
|
361
|
+
"type": "number",
|
|
362
|
+
"minimum": 0,
|
|
363
|
+
"maximum": 100
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
"required": [
|
|
367
|
+
"degree",
|
|
368
|
+
"element",
|
|
369
|
+
"medium",
|
|
370
|
+
"wave_delta",
|
|
371
|
+
"nwalkers",
|
|
372
|
+
"steps",
|
|
373
|
+
"resid_delta",
|
|
374
|
+
"smoothing",
|
|
375
|
+
"cutoff"
|
|
376
|
+
]
|
|
377
|
+
}
|
|
378
|
+
]
|
|
379
|
+
},
|
|
380
|
+
"wavecal": {
|
|
381
|
+
"allOf": [
|
|
382
|
+
{
|
|
383
|
+
"$ref": "#/definitions/step"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"$ref": "#/definitions/polynomialfit"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"type": "object",
|
|
390
|
+
"properties": {
|
|
391
|
+
"manual": {
|
|
392
|
+
"description": "Use only manual order alignment if true. When false still allow manual alignment after automatic alignment if plot is true",
|
|
393
|
+
"type": "boolean"
|
|
394
|
+
},
|
|
395
|
+
"correlate_cols": {
|
|
396
|
+
"description": "The number of columns used for 2D cross correlation alignment. 0 means all pixels (slow).",
|
|
397
|
+
"type": "integer",
|
|
398
|
+
"minimum": 0
|
|
399
|
+
},
|
|
400
|
+
"shift_window": {
|
|
401
|
+
"description": "The fraction of the columns that each order can be shifted individually to align with the reference",
|
|
402
|
+
"type": "number",
|
|
403
|
+
"minimum": 0,
|
|
404
|
+
"maximum": 1
|
|
405
|
+
},
|
|
406
|
+
"threshold": {
|
|
407
|
+
"description": "Residual threshold in m/s above which lines will be removed from the fit",
|
|
408
|
+
"type": "number",
|
|
409
|
+
"exclusiveMinimum": 0
|
|
410
|
+
},
|
|
411
|
+
"iterations": {
|
|
412
|
+
"description": "Number of iterations in the Remove Lines, Identify Lines loop",
|
|
413
|
+
"type": "integer",
|
|
414
|
+
"minimum": 0
|
|
415
|
+
},
|
|
416
|
+
"element": {
|
|
417
|
+
"description": "Element(s) of the Gas Lamp used for calibration",
|
|
418
|
+
"type": ["string", "null"]
|
|
419
|
+
},
|
|
420
|
+
"medium": {
|
|
421
|
+
"description": "Medium of the detector, either air or vaccum. This affects the wavelength scale",
|
|
422
|
+
"type": "string",
|
|
423
|
+
"enum": [
|
|
424
|
+
"vac",
|
|
425
|
+
"air"
|
|
426
|
+
]
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
"required": [
|
|
430
|
+
"manual",
|
|
431
|
+
"shift_window",
|
|
432
|
+
"threshold",
|
|
433
|
+
"iterations",
|
|
434
|
+
"element",
|
|
435
|
+
"medium"
|
|
436
|
+
]
|
|
437
|
+
}
|
|
438
|
+
]
|
|
439
|
+
},
|
|
440
|
+
"freq_comb_master": {
|
|
441
|
+
"allOf": [
|
|
442
|
+
{
|
|
443
|
+
"$ref": "#/definitions/step"
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"$ref": "#/definitions/extraction"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"$ref": "#/definitions/bias_scaling"
|
|
450
|
+
}
|
|
451
|
+
]
|
|
452
|
+
},
|
|
453
|
+
"freq_comb": {
|
|
454
|
+
"allOf": [
|
|
455
|
+
{
|
|
456
|
+
"$ref": "#/definitions/step"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"$ref": "#/definitions/polynomialfit"
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"type": "object",
|
|
463
|
+
"properties": {
|
|
464
|
+
"lfc_peak_width": {
|
|
465
|
+
"description": "Required width of the frequency comb peaks, in the peak detection algorithm",
|
|
466
|
+
"type": [
|
|
467
|
+
"integer",
|
|
468
|
+
"null"
|
|
469
|
+
],
|
|
470
|
+
"minimum": 1
|
|
471
|
+
},
|
|
472
|
+
"threshold": {
|
|
473
|
+
"description": "Residual threshold in m/s above which lines will be removed from the fit",
|
|
474
|
+
"type": "number",
|
|
475
|
+
"exclusiveMinimum": 0
|
|
476
|
+
}
|
|
477
|
+
},
|
|
478
|
+
"required": [
|
|
479
|
+
"lfc_peak_width",
|
|
480
|
+
"degree",
|
|
481
|
+
"dimensionality",
|
|
482
|
+
"threshold"
|
|
483
|
+
]
|
|
484
|
+
}
|
|
485
|
+
]
|
|
486
|
+
},
|
|
487
|
+
"curvature": {
|
|
488
|
+
"allOf": [
|
|
489
|
+
{
|
|
490
|
+
"$ref": "#/definitions/step"
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"$ref": "#/definitions/polynomialfit"
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"$ref": "#/definitions/bias_scaling"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"$ref": "#/definitions/extraction"
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"type": "object",
|
|
503
|
+
"properties": {
|
|
504
|
+
"curv_degree": {
|
|
505
|
+
"description": "Number of orders of the curvature to fit. I.e. 1: only linear curvature, 2: second order curvature",
|
|
506
|
+
"type": "integer",
|
|
507
|
+
"minimum": 1,
|
|
508
|
+
"maximum": 2
|
|
509
|
+
},
|
|
510
|
+
"peak_threshold": {
|
|
511
|
+
"description": "Peak detection noise threshold. This much times * 10% noise must be the prominence of the peaks",
|
|
512
|
+
"type": "number",
|
|
513
|
+
"minimum": 0
|
|
514
|
+
},
|
|
515
|
+
"peak_width": {
|
|
516
|
+
"description": "Minimum width of the peaks in the curvature detection. Usually 1 for sharp peaks as in the wavecal, or 3 for broader peaks of the freq comb",
|
|
517
|
+
"type": [
|
|
518
|
+
"null",
|
|
519
|
+
"number",
|
|
520
|
+
"array"
|
|
521
|
+
],
|
|
522
|
+
"minimum": 1,
|
|
523
|
+
"items": {
|
|
524
|
+
"type": "number"
|
|
525
|
+
},
|
|
526
|
+
"minItems": 2,
|
|
527
|
+
"maxItems": 2
|
|
528
|
+
},
|
|
529
|
+
"window_width": {
|
|
530
|
+
"description": "Width of the window to look for the peak of each row, within each line. The value here speciefies only on direction the window size is actually twice this +1.",
|
|
531
|
+
"type": "integer",
|
|
532
|
+
"minimum": 1
|
|
533
|
+
},
|
|
534
|
+
"peak_function": {
|
|
535
|
+
"description": "Function that is used to fit individual line peaks",
|
|
536
|
+
"type": "string",
|
|
537
|
+
"enum": [
|
|
538
|
+
"gaussian",
|
|
539
|
+
"lorentzian"
|
|
540
|
+
]
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
"required": [
|
|
544
|
+
"dimensionality",
|
|
545
|
+
"degree",
|
|
546
|
+
"peak_function",
|
|
547
|
+
"window_width",
|
|
548
|
+
"peak_width",
|
|
549
|
+
"peak_threshold",
|
|
550
|
+
"curv_degree"
|
|
551
|
+
]
|
|
552
|
+
}
|
|
553
|
+
]
|
|
554
|
+
},
|
|
555
|
+
"rectify": {
|
|
556
|
+
"allOf": [
|
|
557
|
+
{
|
|
558
|
+
"$ref": "#/definitions/step"
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"type": "object",
|
|
562
|
+
"properties": {
|
|
563
|
+
"extraction_width": {
|
|
564
|
+
"description": "Number of pixels below and above the order to use in the extraction. If a value under 1.5 is given it will be understood as the fractional difference to the next order. If only a single value is given it will be applied to all orders, otherwise values need to be provided for all orders",
|
|
565
|
+
"type": [
|
|
566
|
+
"integer",
|
|
567
|
+
"number",
|
|
568
|
+
"array"
|
|
569
|
+
],
|
|
570
|
+
"items": {
|
|
571
|
+
"type": [
|
|
572
|
+
"integer",
|
|
573
|
+
"number"
|
|
574
|
+
]
|
|
575
|
+
}
|
|
576
|
+
},
|
|
577
|
+
"input_files": {
|
|
578
|
+
"description": "Which input files to rectify. Usually 'science' for the science files, but could be any other step with input files",
|
|
579
|
+
"type": "string",
|
|
580
|
+
"enum": [
|
|
581
|
+
"science",
|
|
582
|
+
"flat",
|
|
583
|
+
"bias",
|
|
584
|
+
"scatter",
|
|
585
|
+
"orders",
|
|
586
|
+
"curvature",
|
|
587
|
+
"wavecal",
|
|
588
|
+
"freq_comb"
|
|
589
|
+
]
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"required": [
|
|
593
|
+
"extraction_width"
|
|
594
|
+
]
|
|
595
|
+
}
|
|
596
|
+
]
|
|
597
|
+
},
|
|
598
|
+
"science": {
|
|
599
|
+
"allOf": [
|
|
600
|
+
{
|
|
601
|
+
"$ref": "#/definitions/step"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"$ref": "#/definitions/extraction"
|
|
605
|
+
}
|
|
606
|
+
]
|
|
607
|
+
},
|
|
608
|
+
"continuum": {
|
|
609
|
+
"$ref": "#/definitions/step"
|
|
610
|
+
},
|
|
611
|
+
"finalize": {
|
|
612
|
+
"allOf": [
|
|
613
|
+
{
|
|
614
|
+
"$ref": "#/definitions/step"
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"properties": {
|
|
618
|
+
"filename": {
|
|
619
|
+
"description": "Name of the output file. Can include placeholders for instrument, mode, night and observation this night",
|
|
620
|
+
"type": "string"
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
]
|
|
625
|
+
}
|
|
626
|
+
},
|
|
627
|
+
"required": [
|
|
628
|
+
"reduce",
|
|
629
|
+
"instrument",
|
|
630
|
+
"mask",
|
|
631
|
+
"bias",
|
|
632
|
+
"flat",
|
|
633
|
+
"orders",
|
|
634
|
+
"scatter",
|
|
635
|
+
"norm_flat",
|
|
636
|
+
"wavecal_master",
|
|
637
|
+
"wavecal_init",
|
|
638
|
+
"wavecal",
|
|
639
|
+
"freq_comb_master",
|
|
640
|
+
"freq_comb",
|
|
641
|
+
"curvature",
|
|
642
|
+
"continuum",
|
|
643
|
+
"finalize"
|
|
644
|
+
],
|
|
645
|
+
"definitions": {
|
|
646
|
+
"step": {
|
|
647
|
+
"type": "object",
|
|
648
|
+
"properties": {
|
|
649
|
+
"plot": {
|
|
650
|
+
"description": "Plot results and progress if true",
|
|
651
|
+
"type": [
|
|
652
|
+
"boolean",
|
|
653
|
+
"integer"
|
|
654
|
+
],
|
|
655
|
+
"minimum": 0
|
|
656
|
+
},
|
|
657
|
+
"plot_title": {
|
|
658
|
+
"description": "Title used in the plots, if any",
|
|
659
|
+
"type": [
|
|
660
|
+
"string",
|
|
661
|
+
"null"
|
|
662
|
+
]
|
|
663
|
+
}
|
|
664
|
+
},
|
|
665
|
+
"required": [
|
|
666
|
+
"plot",
|
|
667
|
+
"plot_title"
|
|
668
|
+
]
|
|
669
|
+
},
|
|
670
|
+
"extraction": {
|
|
671
|
+
"description": "Common settings for an extraction",
|
|
672
|
+
"type": "object",
|
|
673
|
+
"$comment": "There are two options for the extraction. Each has its own set of parameters that need to be present",
|
|
674
|
+
"oneOf": [
|
|
675
|
+
{
|
|
676
|
+
"title": "Optimal Extraction",
|
|
677
|
+
"properties": {
|
|
678
|
+
"extraction_method": {
|
|
679
|
+
"description": "The method to use for extraction",
|
|
680
|
+
"type": "string",
|
|
681
|
+
"enum": [
|
|
682
|
+
"normalize",
|
|
683
|
+
"optimal"
|
|
684
|
+
]
|
|
685
|
+
},
|
|
686
|
+
"oversampling": {
|
|
687
|
+
"description": "Ovsersampling factor",
|
|
688
|
+
"type": "integer",
|
|
689
|
+
"minimum": 1
|
|
690
|
+
},
|
|
691
|
+
"smooth_slitfunction": {
|
|
692
|
+
"description": "Smoothing parameter for the slitfunction",
|
|
693
|
+
"type": "number",
|
|
694
|
+
"minimum": 0
|
|
695
|
+
},
|
|
696
|
+
"smooth_spectrum": {
|
|
697
|
+
"description": "Smoothing parameter for the spectrum",
|
|
698
|
+
"type": "number",
|
|
699
|
+
"minimum": 0
|
|
700
|
+
},
|
|
701
|
+
"swath_width": {
|
|
702
|
+
"description": "Approximate width of each swath. Exact width might vary slightly",
|
|
703
|
+
"type": "integer",
|
|
704
|
+
"minimum": 3
|
|
705
|
+
},
|
|
706
|
+
"extraction_width": {
|
|
707
|
+
"description": "Number of pixels below and above the order to use in the extraction. If a value under 1.5 is given it will be understood as the fractional difference to the next order. If only a single value is given it will be applied to all orders, otherwise values need to be provided for all orders",
|
|
708
|
+
"type": [
|
|
709
|
+
"integer",
|
|
710
|
+
"number",
|
|
711
|
+
"array"
|
|
712
|
+
],
|
|
713
|
+
"items": {
|
|
714
|
+
"type": [
|
|
715
|
+
"integer",
|
|
716
|
+
"number"
|
|
717
|
+
]
|
|
718
|
+
}
|
|
719
|
+
},
|
|
720
|
+
"extraction_cutoff": {
|
|
721
|
+
"description": "Number of sigma above the median of the sorounding pixels to curoff the pixel as a bad pixel. Before the main extraction!. Set to 0 to ignore.",
|
|
722
|
+
"type": "number",
|
|
723
|
+
"minimum": 0
|
|
724
|
+
}
|
|
725
|
+
},
|
|
726
|
+
"required": [
|
|
727
|
+
"extraction_method",
|
|
728
|
+
"oversampling",
|
|
729
|
+
"smooth_slitfunction",
|
|
730
|
+
"smooth_spectrum",
|
|
731
|
+
"swath_width",
|
|
732
|
+
"extraction_width",
|
|
733
|
+
"extraction_cutoff"
|
|
734
|
+
]
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"title": "Arc Extraction",
|
|
738
|
+
"properties": {
|
|
739
|
+
"extraction_method": {
|
|
740
|
+
"description": "The method to use for extraction",
|
|
741
|
+
"type": "string",
|
|
742
|
+
"enum": [
|
|
743
|
+
"arc"
|
|
744
|
+
]
|
|
745
|
+
},
|
|
746
|
+
"extraction_width": {
|
|
747
|
+
"description": "Number of pixels below and above the order to use in the extraction. If a value under 1.5 is given it will be understood as the fractional difference to the next order. If only a single value is given it will be applied to all orders, otherwise values need to be provided for all orders",
|
|
748
|
+
"type": [
|
|
749
|
+
"integer",
|
|
750
|
+
"number",
|
|
751
|
+
"array"
|
|
752
|
+
],
|
|
753
|
+
"items": {
|
|
754
|
+
"type": [
|
|
755
|
+
"integer",
|
|
756
|
+
"number"
|
|
757
|
+
]
|
|
758
|
+
}
|
|
759
|
+
},
|
|
760
|
+
"extraction_cutoff": {
|
|
761
|
+
"description": "Number of sigma above the median of the sorounding pixels to curoff the pixel as a bad pixel. Before the main extraction!. Set to 0 to ignore.",
|
|
762
|
+
"type": "number",
|
|
763
|
+
"minimum": 0
|
|
764
|
+
},
|
|
765
|
+
"collapse_function": {
|
|
766
|
+
"description": "Function used to collapse the image into a spectrum",
|
|
767
|
+
"type": "string",
|
|
768
|
+
"enum": [
|
|
769
|
+
"sum",
|
|
770
|
+
"mean",
|
|
771
|
+
"median"
|
|
772
|
+
]
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
"required": [
|
|
776
|
+
"extraction_method",
|
|
777
|
+
"extraction_width",
|
|
778
|
+
"extraction_cutoff",
|
|
779
|
+
"collapse_function"
|
|
780
|
+
]
|
|
781
|
+
}
|
|
782
|
+
]
|
|
783
|
+
},
|
|
784
|
+
"polynomialfit": {
|
|
785
|
+
"type": "object",
|
|
786
|
+
"oneOf": [
|
|
787
|
+
{
|
|
788
|
+
"properties": {
|
|
789
|
+
"dimensionality": {
|
|
790
|
+
"type": "string",
|
|
791
|
+
"enum": [
|
|
792
|
+
"1D"
|
|
793
|
+
]
|
|
794
|
+
},
|
|
795
|
+
"degree": {
|
|
796
|
+
"description": "Polynomial degree in column direction",
|
|
797
|
+
"type": "integer",
|
|
798
|
+
"minimum": 0
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"properties": {
|
|
804
|
+
"dimensionality": {
|
|
805
|
+
"type": "string",
|
|
806
|
+
"enum": [
|
|
807
|
+
"2D"
|
|
808
|
+
]
|
|
809
|
+
},
|
|
810
|
+
"degree": {
|
|
811
|
+
"description": "Polynomial degree in each direction. The first element is in column direction, the second in order direction",
|
|
812
|
+
"type": "array",
|
|
813
|
+
"items": {
|
|
814
|
+
"type": "integer",
|
|
815
|
+
"minimum": 0
|
|
816
|
+
},
|
|
817
|
+
"minItems": 2,
|
|
818
|
+
"maxItems": 2
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
}
|
|
822
|
+
]
|
|
823
|
+
},
|
|
824
|
+
"bias_scaling": {
|
|
825
|
+
"type": "object",
|
|
826
|
+
"properties": {
|
|
827
|
+
"bias_scaling": {
|
|
828
|
+
"description": "determines how the bias is applied",
|
|
829
|
+
"type": "string",
|
|
830
|
+
"enum": [
|
|
831
|
+
"number_of_files",
|
|
832
|
+
"exposure_time",
|
|
833
|
+
"mean",
|
|
834
|
+
"median",
|
|
835
|
+
"none"
|
|
836
|
+
]
|
|
837
|
+
},
|
|
838
|
+
"norm_scaling":{
|
|
839
|
+
"description": "determines how to apply the normalized flat",
|
|
840
|
+
"type": "string",
|
|
841
|
+
"enum": ["divide", "none"]
|
|
842
|
+
}
|
|
843
|
+
},
|
|
844
|
+
"required": [
|
|
845
|
+
"bias_scaling",
|
|
846
|
+
"norm_scaling"
|
|
847
|
+
]
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
}
|