Skip to content

Commit

Permalink
Fix error propagation for inverse correction
Browse files Browse the repository at this point in the history
  • Loading branch information
melanieclarke committed Jan 31, 2025
1 parent 0641e67 commit a817c79
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
15 changes: 10 additions & 5 deletions jwst/barshadow/bar_shadow.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,18 @@ def do_correction(
# because they're variance, while err is standard deviation
if not inverse:
slitlet.data /= correction.data
slitlet.err /= correction.data
slitlet.var_poisson /= correction.data**2
slitlet.var_rnoise /= correction.data**2
if slitlet.var_flat is not None and np.size(slitlet.var_flat) > 0:
slitlet.var_flat /= correction.data**2
else:
slitlet.data *= correction.data
slitlet.err /= correction.data
slitlet.var_poisson /= correction.data**2
slitlet.var_rnoise /= correction.data**2
if slitlet.var_flat is not None and np.size(slitlet.var_flat) > 0:
slitlet.var_flat /= correction.data**2
slitlet.err *= correction.data
slitlet.var_poisson *= correction.data**2
slitlet.var_rnoise *= correction.data**2
if slitlet.var_flat is not None and np.size(slitlet.var_flat) > 0:
slitlet.var_flat *= correction.data**2
slitlet.barshadow = correction.data

return output_model, corrections
Expand Down
4 changes: 4 additions & 0 deletions jwst/barshadow/tests/test_barshadow_step.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,10 @@ def test_barshadow_correction_pars(nirspec_mos_model):

# output data is the same as input, except that NaNs do not invert
assert np.allclose(inverse_result.slits[0].data[nnan], model.slits[0].data[nnan])
assert np.allclose(inverse_result.slits[0].err[nnan], model.slits[0].err[nnan])
assert np.allclose(inverse_result.slits[0].var_rnoise[nnan], model.slits[0].var_rnoise[nnan])
assert np.allclose(inverse_result.slits[0].var_poisson[nnan], model.slits[0].var_poisson[nnan])
assert np.allclose(inverse_result.slits[0].var_flat[nnan], model.slits[0].var_flat[nnan])

result.close()
inverse_result.close()
Expand Down

0 comments on commit a817c79

Please sign in to comment.