Skip to content

CoDICE l1a-l2 FSW updates 20260129 #2679

Merged
lacoak21 merged 13 commits intoIMAP-Science-Operations-Center:devfrom
lacoak21:codice_fsw_changes_jan
Feb 13, 2026
Merged

CoDICE l1a-l2 FSW updates 20260129 #2679
lacoak21 merged 13 commits intoIMAP-Science-Operations-Center:devfrom
lacoak21:codice_fsw_changes_jan

Conversation

@lacoak21
Copy link
Contributor

@lacoak21 lacoak21 commented Feb 9, 2026

Change Summary

Overview

Handle FSW changes on jan 29th, 2026.

Updated Files

  • see copilot file updates below

Testing

Test with new l0 packet that has the new telemetry. Make sure unpacking works for before and after 20260129

@lacoak21 lacoak21 added this to the February 2026 milestone Feb 9, 2026
@lacoak21 lacoak21 requested a review from tech3371 February 9, 2026 18:19
@lacoak21 lacoak21 self-assigned this Feb 9, 2026
@lacoak21 lacoak21 added this to IMAP Feb 9, 2026
@lacoak21 lacoak21 requested a review from Copilot February 9, 2026 18:19
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 tech3371 moved this to Todo in IMAP Feb 9, 2026
Copy link
Contributor

@tech3371 tech3371 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is my initial review upto codice_l2.py. I will review remaining tomorrow.

@lacoak21 lacoak21 force-pushed the codice_fsw_changes_jan branch from 8a01b50 to f1df227 Compare February 12, 2026 22:30
Copy link
Contributor

@tech3371 tech3371 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't look closely at test but in main code changes, nothing jumped out for me. Looks good to me. Only minor comments

@lacoak21 lacoak21 merged commit 4d4a9fa into IMAP-Science-Operations-Center:dev Feb 13, 2026
14 checks passed
@github-project-automation github-project-automation bot moved this from Todo to Done in IMAP Feb 13, 2026
@lacoak21 lacoak21 deleted the codice_fsw_changes_jan branch February 13, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants