Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changes/10509.extract_2d.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix a bug that caused missing BUNIT header keywords for WFSS MultiSlitModels
1 change: 1 addition & 0 deletions changes/10509.wfss_contam.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update slit metadata in the contam and simul_slits intermediate products
8 changes: 4 additions & 4 deletions jwst/extract_2d/grisms.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ def build_grism_submodel(
if source_ypos is not None:
sub_model.source_ypos = source_ypos
sub_model.source_id = 1
sub_model.bunit_data = input_model.meta.bunit_data
sub_model.bunit_err = input_model.meta.bunit_err
sub_model.meta.bunit_data = input_model.meta.bunit_data
sub_model.meta.bunit_err = input_model.meta.bunit_err
if getattr(input_model, "int_times", None) is not None:
sub_model.int_times = input_model.int_times.copy()

Expand Down Expand Up @@ -793,8 +793,8 @@ def extract_grism_objects(
new_slit.source_id = obj.sid
new_slit.source_dec = obj.sky_centroid.dec.value
new_slit.source_ra = obj.sky_centroid.ra.value
new_slit.bunit_data = input_model.meta.bunit_data
new_slit.bunit_err = input_model.meta.bunit_err
new_slit.meta.bunit_data = input_model.meta.bunit_data
new_slit.meta.bunit_err = input_model.meta.bunit_err
slits.append(new_slit)
output_model.slits.extend(slits)

Expand Down
2 changes: 1 addition & 1 deletion jwst/wfss_contam/observations.py
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ def _construct_slitmodel(
[thisobj_minx, thisobj_maxx, thisobj_miny, thisobj_maxy] = bounds
slit = datamodels.SlitModel()
slit.source_id = sid
slit.name = f"source_{sid}"
slit.name = f"{sid}"
slit.xstart = thisobj_minx + 1 # FITS pixels are 1-indexed, matching extract_2d convention
slit.xsize = thisobj_maxx - thisobj_minx + 1
slit.ystart = thisobj_miny + 1 # FITS pixels are 1-indexed, matching extract_2d convention
Expand Down
2 changes: 1 addition & 1 deletion jwst/wfss_contam/tests/test_observations.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def test_disperse_order(observation, segmentation_map, chunk_size):
assert len(obs.simulated_slits.slits) == 8
slit = obs.simulated_slits.slits[1]
# check metadata
assert slit.name == "source_51"
assert slit.name == "51"
assert slit.data.shape == (slit.ysize, slit.xsize)

# Result should be close to the same for all chunk sizes
Expand Down
4 changes: 3 additions & 1 deletion jwst/wfss_contam/wfss_contam.py
Original file line number Diff line number Diff line change
Expand Up @@ -478,17 +478,19 @@ def contam_corr(
for slit in output_model.slits:
try:
good_idx = _find_matching_simul_slit(slit, simul_slit_sids, simul_slit_orders)
this_simul = obs.simulated_slits.slits[good_idx]
this_simul = datamodels.SlitModel(obs.simulated_slits.slits[good_idx].instance)
slit, this_simul = match_backplane_prefer_first(slit, this_simul)
simul_all_cut = _cut_frame_to_match_slit(obs.simulated_image, slit)
contam_cut = simul_all_cut - this_simul.data
this_simul.update(slit)
simul_slits.slits.append(this_simul)

except (UnmatchedSlitIDError, SlitOverlapError) as e:
log.warning(e)
contam_cut = np.zeros_like(slit.data)

contam_slit = datamodels.SlitModel()
contam_slit.update(slit)
contam_slit.data = contam_cut
contam_model.slits.append(contam_slit)

Expand Down
Loading