Skip to content

Commit bb12027

Browse files
committed
fix handling of fill values; remove incorrect mock spacecraft packet test
1 parent ce5c2e2 commit bb12027

2 files changed

Lines changed: 23 additions & 60 deletions

File tree

imap_processing/ialirt/l0/process_swapi.py

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -324,27 +324,29 @@ def process_swapi_ialirt(
324324
pseudo_proton_temperature_list[-5:],
325325
)
326326

327-
if (
328-
np.isfinite(avg_pseudo_proton_density)
329-
and np.isfinite(avg_pseudo_proton_temperature)
330-
and np.isfinite(avg_pseudo_proton_speed)
331-
):
332-
swapi_data.append(
333-
_populate_instrument_header_items(met)
334-
| {
335-
"instrument": "swapi",
336-
"swapi_epoch": int(met_to_ttj2000ns(avg_swapi_met)),
337-
"swapi_pseudo_proton_speed": Decimal(
338-
f"{avg_pseudo_proton_speed:.3f}"
339-
),
340-
"swapi_pseudo_proton_density": Decimal(
341-
f"{avg_pseudo_proton_density:.3f}"
342-
),
343-
"swapi_pseudo_proton_temperature": Decimal(
344-
f"{avg_pseudo_proton_temperature:.3f}"
345-
),
346-
}
347-
)
327+
# replace nans (resulting from geometric means that include fill values) with fill values
328+
avg_pseudo_proton_speed, avg_pseudo_proton_density, avg_pseudo_proton_temperature = np.nan_to_num((
329+
avg_pseudo_proton_speed,
330+
avg_pseudo_proton_density,
331+
avg_pseudo_proton_temperature
332+
), nan=FILLVAL_FLOAT32)
333+
334+
swapi_data.append(
335+
_populate_instrument_header_items(met)
336+
| {
337+
"instrument": "swapi",
338+
"swapi_epoch": int(met_to_ttj2000ns(avg_swapi_met)),
339+
"swapi_pseudo_proton_speed": Decimal(
340+
f"{avg_pseudo_proton_speed:.3f}"
341+
),
342+
"swapi_pseudo_proton_density": Decimal(
343+
f"{avg_pseudo_proton_density:.3f}"
344+
),
345+
"swapi_pseudo_proton_temperature": Decimal(
346+
f"{avg_pseudo_proton_temperature:.3f}"
347+
),
348+
}
349+
)
348350
if incomplete_groups:
349351
logger.info(
350352
f"The following swapi groups were skipped due to "

imap_processing/tests/ialirt/unit/test_process_swapi.py

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -182,45 +182,6 @@ def test_process_swapi_ialirt(
182182
)
183183

184184

185-
@pytest.mark.external_test_data
186-
@mock.patch("imap_processing.ialirt.l0.process_swapi.process_sweep_data")
187-
def test_process_swapi_ialirt_zero_counts(
188-
mock_process_sweep_data,
189-
xarray_data,
190-
ialirt_test_data,
191-
sc_xarray_data,
192-
esa_unit_conversion_table,
193-
):
194-
"""Test that the process_swapi_ialirt() function returns expected keys."""
195-
196-
mock_process_sweep_data.return_value = ialirt_test_data[0]
197-
198-
# Adding necessary time variables from spacecraft packet
199-
xarray_data = xarray_data.assign(sc_sclk_sec=sc_xarray_data["sc_sclk_sec"])
200-
xarray_data["sc_sclk_sec"].data = sc_xarray_data["sc_sclk_sec"][
201-
0 : xarray_data["swapi_flag"].shape[0]
202-
].data
203-
xarray_data = xarray_data.assign(sc_sclk_sub_sec=sc_xarray_data["sc_sclk_sub_sec"])
204-
xarray_data["sc_sclk_sub_sec"].data = sc_xarray_data["sc_sclk_sub_sec"][
205-
0 : xarray_data["swapi_flag"].shape[0]
206-
].data
207-
208-
vars_to_zero = [
209-
"swapi_coin_cnt0",
210-
"swapi_coin_cnt1",
211-
"swapi_coin_cnt2",
212-
"swapi_coin_cnt3",
213-
"swapi_coin_cnt4",
214-
"swapi_coin_cnt5",
215-
]
216-
217-
for v in vars_to_zero:
218-
xarray_data[v] = xr.zeros_like(xarray_data[v])
219-
220-
swapi_result = process_swapi_ialirt(xarray_data, esa_unit_conversion_table)
221-
222-
assert swapi_result == []
223-
224185

225186
def test_count_rate():
226187
"""Use random realistic values to test for expected output of count_rate()."""

0 commit comments

Comments
 (0)