Skip to content

Commit 03cb0d2

Browse files
committed
Explicitly set factor for auto spline_bkpt and require_ngood; other small fixes
1 parent d5a38ab commit 03cb0d2

3 files changed

Lines changed: 107 additions & 63 deletions

File tree

jwst/adaptive_trace_model/adaptive_trace_model_step.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,14 @@ def process(self, input_data):
105105
for slit in model.slits:
106106
log.info(f"Working on slit {slit.name}")
107107
log.debug(f"Slit is of type {type(slit)}")
108-
109108
slit_results = fit_and_oversample(
110109
slit,
111110
fit_threshold=self.fit_threshold,
112111
slope_limit=self.slope_limit,
113112
oversample_factor=self.oversample,
114113
psf_optimal=self.psf_optimal,
115114
return_intermediate_models=self.save_intermediate_results,
115+
metadata_model=model,
116116
)
117117
if self.save_intermediate_results:
118118
for i, intermediate_model in enumerate(slit_results[1:]):

jwst/adaptive_trace_model/tests/test_trace_model.py

Lines changed: 43 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,14 @@ def test_fit_one_region_below_threshold(caplog, fit_region_input_no_source_noisy
213213
{
214214
"lrange": 50,
215215
"col_index": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
216-
# "require_ngood": 15,
217-
# "spline_bkpt": 68,
218216
"space_ratio": 1.6,
219217
"sigma_low": 2.5,
220218
"sigma_high": 2.5,
221219
"fit_iter": 3,
220+
"spline_bkpt": None,
221+
"require_ngood": None,
222+
"auto_bkpt_factor": 2.0,
223+
"auto_ngood_factor": 0.5,
222224
},
223225
),
224226
(
@@ -228,12 +230,14 @@ def test_fit_one_region_below_threshold(caplog, fit_region_input_no_source_noisy
228230
{
229231
"lrange": 50,
230232
"col_index": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
231-
# "require_ngood": 15,
232-
# "spline_bkpt": 68,
233233
"space_ratio": 1.6,
234234
"sigma_low": 2.5,
235235
"sigma_high": 2.5,
236236
"fit_iter": 3,
237+
"spline_bkpt": None,
238+
"require_ngood": None,
239+
"auto_bkpt_factor": 2.0,
240+
"auto_ngood_factor": 0.5,
237241
},
238242
),
239243
(
@@ -243,27 +247,31 @@ def test_fit_one_region_below_threshold(caplog, fit_region_input_no_source_noisy
243247
{
244248
"lrange": 50,
245249
"col_index": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
246-
# "require_ngood": 15,
247-
# "spline_bkpt": 68,
248250
"space_ratio": 1.6,
249251
"sigma_low": 2.5,
250252
"sigma_high": 2.5,
251253
"fit_iter": 3,
254+
"spline_bkpt": None,
255+
"require_ngood": None,
256+
"auto_bkpt_factor": 2.0,
257+
"auto_ngood_factor": 0.5,
252258
},
253259
),
254260
(
255261
"NRS_SLIT",
256-
"NRS2",
257-
None,
262+
"NRS1",
263+
"PRISM",
258264
{
259-
"lrange": 50,
260-
"col_index": [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
261-
# "require_ngood": 15,
262-
# "spline_bkpt": 68,
265+
"lrange": 10,
266+
"col_index": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
263267
"space_ratio": 1.6,
264268
"sigma_low": 2.5,
265269
"sigma_high": 2.5,
266270
"fit_iter": 3,
271+
"spline_bkpt": None,
272+
"require_ngood": None,
273+
"auto_bkpt_factor": 1.0,
274+
"auto_ngood_factor": 0.25,
267275
},
268276
),
269277
(
@@ -273,12 +281,14 @@ def test_fit_one_region_below_threshold(caplog, fit_region_input_no_source_noisy
273281
{
274282
"lrange": 50,
275283
"col_index": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
276-
# "require_ngood": 8,
277-
# "spline_bkpt": 30,
278284
"space_ratio": 1.6,
279285
"sigma_low": 2.5,
280286
"sigma_high": 2.5,
281287
"fit_iter": 3,
288+
"spline_bkpt": None,
289+
"require_ngood": None,
290+
"auto_bkpt_factor": 2.0,
291+
"auto_ngood_factor": 0.5,
282292
},
283293
),
284294
(
@@ -292,8 +302,10 @@ def test_fit_one_region_below_threshold(caplog, fit_region_input_no_source_noisy
292302
"sigma_low": 2.5,
293303
"sigma_high": 2.5,
294304
"fit_iter": 3,
295-
# "spline_bkpt": 36,
305+
"spline_bkpt": 36,
296306
"require_ngood": 8,
307+
"auto_bkpt_factor": None,
308+
"auto_ngood_factor": None,
297309
},
298310
),
299311
(
@@ -307,8 +319,10 @@ def test_fit_one_region_below_threshold(caplog, fit_region_input_no_source_noisy
307319
"sigma_low": 2.5,
308320
"sigma_high": 2.5,
309321
"fit_iter": 3,
310-
# "spline_bkpt": 36,
322+
"spline_bkpt": 36,
311323
"require_ngood": 8,
324+
"auto_bkpt_factor": None,
325+
"auto_ngood_factor": None,
312326
},
313327
),
314328
(
@@ -324,6 +338,8 @@ def test_fit_one_region_below_threshold(caplog, fit_region_input_no_source_noisy
324338
"fit_iter": 3,
325339
"spline_bkpt": 40,
326340
"require_ngood": 8,
341+
"auto_bkpt_factor": None,
342+
"auto_ngood_factor": None,
327343
},
328344
),
329345
(
@@ -339,6 +355,8 @@ def test_fit_one_region_below_threshold(caplog, fit_region_input_no_source_noisy
339355
"fit_iter": 2,
340356
"spline_bkpt": 60,
341357
"require_ngood": 8,
358+
"auto_bkpt_factor": None,
359+
"auto_ngood_factor": None,
342360
},
343361
),
344362
],
@@ -388,8 +406,16 @@ def test_set_oversample_kwargs_error():
388406
tm._set_oversample_kwargs("NRS_SLIT", "NIS")
389407

390408

391-
def test_fit_and_oversample_unsupported_mode():
409+
def test_fit_and_oversample_unknown_detector():
392410
model = ImageModel((10, 10))
393411
model.meta.instrument.detector = "NIS"
394412
with pytest.raises(ValueError, match="Unknown detector"):
395413
tm.fit_and_oversample(model)
414+
415+
416+
def test_fit_and_oversample_unsupported_exptype():
417+
model = ImageModel((10, 10))
418+
model.meta.exposure.type = "MIR_WFSS"
419+
model.meta.instrument.detector = "MIRIMAGE"
420+
with pytest.raises(ValueError, match="MIRI WFSS is not supported"):
421+
tm.fit_and_oversample(model)

0 commit comments

Comments
 (0)