diff --git a/imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py b/imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py index a0cd7930a..2f9ed9826 100644 --- a/imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py +++ b/imap_processing/tests/ultra/unit/test_ultra_l1b_extended.py @@ -119,3 +119,11 @@ def test_get_ssd_back_position_and_tof_offset( tof_offset_rt[ssd_number_rt == 4], np.full(len(tof_offset_rt[ssd_number_rt == 4]), -4), ) + + assert np.all(ssd_number_lt >= 0), "Values in ssd_number_lt out of range." + + assert np.all(ssd_number_lt <= 7), "Values in ssd_number_lt out of range." + + assert np.all(ssd_number_rt >= 0), "Values in ssd_number_rt out of range." + + assert np.all(ssd_number_rt <= 7), "Values in ssd_number_rt out of range." diff --git a/imap_processing/ultra/l1b/ultra_l1b_extended.py b/imap_processing/ultra/l1b/ultra_l1b_extended.py index 35fa6e87a..a70e5e032 100644 --- a/imap_processing/ultra/l1b/ultra_l1b_extended.py +++ b/imap_processing/ultra/l1b/ultra_l1b_extended.py @@ -301,19 +301,17 @@ def get_ssd_back_position_and_tof_offset( tof_offset = np.zeros(len(indices), dtype=np.float64) for i in range(8): + ssd_flag_mask = de_filtered[f"SSD_FLAG_{i}"].data == 1 + # Multiply ybs times 100 to convert to hundredths of a millimeter. - yb[de_filtered[f"SSD_FLAG_{i}"].data == 1] = ( - get_image_params(f"YBKSSD{i}") * 100 - ) - ssd_number[de_filtered[f"SSD_FLAG_{i}"].data == 1] = i + yb[ssd_flag_mask] = get_image_params(f"YBKSSD{i}") * 100 + ssd_number[ssd_flag_mask] = i tof_offset[ - (de_filtered["START_TYPE"] == StartType.Left.value) - & (de_filtered[f"SSD_FLAG_{i}"].data == 1) + (de_filtered["START_TYPE"] == StartType.Left.value) & ssd_flag_mask ] = get_image_params(f"TOFSSDLTOFF{i}") tof_offset[ - (de_filtered["START_TYPE"] == StartType.Right.value) - & (de_filtered[f"SSD_FLAG_{i}"].data == 1) + (de_filtered["START_TYPE"] == StartType.Right.value) & ssd_flag_mask ] = get_image_params(f"TOFSSDRTOFF{i}") return yb, tof_offset, ssd_number