CoDICE l1a-l2 FSW updates 20260129 #2679
Merged
lacoak21 merged 13 commits intoIMAP-Science-Operations-Center:devfrom Feb 13, 2026
Merged
CoDICE l1a-l2 FSW updates 20260129 #2679lacoak21 merged 13 commits intoIMAP-Science-Operations-Center:devfrom
lacoak21 merged 13 commits intoIMAP-Science-Operations-Center:devfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates CoDICE L1A/L1B/L2 processing and tests to accommodate the Jan 29, 2026 FSW packet-definition changes, including new RGFO/NSO boundary telemetry and revised LUT-driven compression handling.
Changes:
- Select the CoDICE XTCE packet definition based on the L0 filename date and update direct-event header parsing for packet versions > 1.
- Add new RGFO/NSO boundary variables into Lo L1A products and update L2 geometric-factor logic for angular products using the new boundary info.
- Extend external test data config and add new/updated regression tests for the post-FSW-change packets.
Reviewed changes
Copilot reviewed 22 out of 24 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| imap_processing/tests/external_test_data_config.py | Adds new L0 raw test input entry used for post-2026-01-29 packet validation. |
| imap_processing/tests/codice/test_codice_l2.py | Adjusts L2 angular test descriptor usage and adds a new (post-FSW) masking regression test. |
| imap_processing/tests/codice/test_codice_l1a.py | Adds a new L1A test for post-FSW-change packets and updates XTCE reference in a direct-events test. |
| imap_processing/tests/codice/conftest.py | Adds fixtures for the new Jan-2026 SCI LUT and new post-FSW-change L0 input descriptor. |
| imap_processing/codice/utils.py | Extends ViewTabInfo / view-tab handling to include LUT-provided compression ID. |
| imap_processing/codice/constants.py | Removes hardcoded compression lookup tables and updates Lo angular variable-name lists. |
| imap_processing/codice/codice_l2.py | Updates geometric factor computation to use new RGFO boundary telemetry for angular products and adds boundary masking logic for species intensities. |
| imap_processing/codice/codice_l1b.py | Touches Lo rate-conversion logic (notably around heplusplus handling). |
| imap_processing/codice/codice_l1a_lo_species.py | Switches to LUT-driven compression selection, updates NSO masking boundary behavior, and adds new boundary telemetry variables to L1A output. |
| imap_processing/codice/codice_l1a_lo_priority.py | Switches to LUT-driven compression selection, updates NSO masking to use new boundary telemetry for packet versions > 1, and carries new variables into L1A output. |
| imap_processing/codice/codice_l1a_lo_counters_singles.py | Switches to LUT-driven compression selection, updates NSO masking boundary behavior, and carries new boundary variables into L1A output. |
| imap_processing/codice/codice_l1a_lo_counters_aggregated.py | Switches to LUT-driven compression selection, updates NSO masking boundary behavior, and carries new boundary variables into L1A output. |
| imap_processing/codice/codice_l1a_lo_angular.py | Switches to LUT-driven compression selection, updates NSO masking using new boundary telemetry for packet versions > 1, and carries packet_version/boundary vars into L1A output. |
| imap_processing/codice/codice_l1a_ialirt_hi.py | Switches Hi I-ALiRT decompression to LUT-driven compression selection. |
| imap_processing/codice/codice_l1a_hi_sectored.py | Switches Hi sectored decompression to LUT-driven compression selection. |
| imap_processing/codice/codice_l1a_hi_priority.py | Switches Hi priority decompression to LUT-driven compression selection and adds packet-version-dependent decoding path. |
| imap_processing/codice/codice_l1a_hi_omni.py | Switches Hi omni decompression to LUT-driven compression selection. |
| imap_processing/codice/codice_l1a_hi_counters_singles.py | Switches Hi counters singles decompression to LUT-driven compression selection. |
| imap_processing/codice/codice_l1a_hi_counters_aggregated.py | Switches Hi counters aggregated decompression to LUT-driven compression selection. |
| imap_processing/codice/codice_l1a_de.py | Updates direct-event header extraction for packet versions > 1 and carries new RGFO/NSO boundary metadata. |
| imap_processing/codice/codice_l1a.py | Chooses XTCE packet definition based on the L0 filename date to support pre/post FSW changes. |
| imap_processing/cdf/config/imap_codice_l1a_variable_attrs.yaml | Adds CDF variable attrs for packet_version and the new RGFO/NSO boundary telemetry variables; updates related metadata fields. |
Comments suppressed due to low confidence (1)
imap_processing/tests/external_test_data_config.py:41
- This PR adds new external L0 input (
imap_codice_l0_raw_20260130_v001.pkts) and updates tests to use a new Jan-2026 SCI LUT (imap_codice_l1a-sci-lut_20260129_v001.json), but the Jan-2026 LUT file is not included in this external test data manifest. Add the new LUT JSON here so external-data tests can run in CI.
("imap_codice_l0_hi-direct-events_20250814_v001.pkts", "codice/data/l1a_input/"),
("imap_codice_l0_hskp_20250814_v001.pkts", "codice/data/l1a_input/"),
("imap_codice_l0_raw_20260130_v001.pkts", "codice/data/l1a_input/"),
# L1A LUT
("imap_codice_l1a-sci-lut_20251007_v004.json", "codice/data/l1a_lut/"),
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
tech3371
approved these changes
Feb 10, 2026
Contributor
tech3371
left a comment
There was a problem hiding this comment.
This is my initial review upto codice_l2.py. I will review remaining tomorrow.
8a01b50 to
f1df227
Compare
tech3371
approved these changes
Feb 13, 2026
4d4a9fa
into
IMAP-Science-Operations-Center:dev
14 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change Summary
Overview
Handle FSW changes on jan 29th, 2026.
Updated Files
Testing
Test with new l0 packet that has the new telemetry. Make sure unpacking works for before and after 20260129