Closed melanieclarke closed 2 weeks ago
Regression tests here: https://github.com/spacetelescope/RegressionTests/actions/runs/11562865273
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 63.67%. Comparing base (
1cb213a
) to head (952846a
). Report is 2 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Regression tests for test_miri_lrs_nod_masterbg show small differences between the truth products I made on my Mac and the test products on Linux. These are very similar to differences between architectures for the reduction of the same products in test_miri_lrs_slit_spec2 and test_miri_lrs_slit_spec3, so I will okify the Linux results and run again.
New run is here: https://github.com/spacetelescope/RegressionTests/actions/runs/11575966848
No failures.
Partially addresses JP-2928 Resolves JP-3792
Update MIRI LRS regression test data to in-flight examples.
While working with these tests, I noticed a few small bugs relating to master background correction:
If a single spectrum is passed to combine1d, the wavelength array for the input spectrum is sorted in place instead of being copied for the output spectrum. For MIRI, this has the effect of reversing the order of the wavelength array compared to the order of the data, which corrupts the spectrum in the output "combined" product. I added a
.copy()
to the place where the input wavelength array is read. The combined output spectrum is then the same as the input single spectrum.The 'mbsub' suffix is used in
calwebb_spec3
for the master background output, but it is not recorded as a known suffix, so it does not get properly removed for the next product in the pipeline. I added 'mbsub' to the list of known suffixes.In the master_background step, when a user background is provided, there were a couple small bugs relating to changes to the ModelContainer in #8831. There was an overlooked
container.update
call that crashed if the input was also a ModelContainer, since ModelContainers no longer have their own metadata (so noupdate
function exists). There was also a place where a single model was passed to a function that expected a container whensave_background=True
, also causing a crash. I fixed these small issues.For the tests themselves:
For
test_miri_lrs_dedicated_mbkg
andtest_miri_lrs_masterbg_user
, I used data from PID 1529 obs 3 and 4, a LRS fixed slit observation with a dedicated background. The background spectrum is from a standard spec3 reduction of obs 4. I added intermediate file saving (save_background = True
) for both tests to exercise the above fixes.For
test_miri_lrs_nod_masterbg
, I used the standard spec3 ASN file for PID 1530 obs 5, already in artifactory, which specifies background spectra from the alternate nods for the observations, but ignores them for a standard spec3 reduction. To get a non-trivial background subtraction in master_background with these members, it's necessary to run spec2 in a non-standard way:extract_1d
, so that the BACKGROUND table is non-zero in the extracted spectrumFor the latter, I created nod1 and nod2 extraction files that swap source and background locations by nod.
Then, it's also necessary to explicitly enable the master_background step in spec3: MIRI param ref files turn it off by default. Instead of just running this whole process offline and storing the inputs to spec3, to mimic the way the current test works, I added a full spec2 run to the master background test with the non-default extraction files. I think this should help make the test for the intended functionality clearer, as well as exercising the background extraction option for the spec2 pipeline -- I'm not sure if that's covered anywhere else in the regression tests.
With these changes, the output products from the
test_miri_lrs_nod_masterbg
test are comparable to the products from the standard processing of the same inputs intest_miri_lrs_slit_spec3
.Tasks
Build 11.3
(use the latest build if not sure)no-changelog-entry-needed
)changes/
:echo "changed something" > changes/<PR#>.<changetype>.rst
(see below for change types)docs/
pageokify_regtests
to update the truth filesnews fragment change types...
- ``changes/