Skip to content

I-ALiRT - add mopra coverage - #3445

Open
laspsandoval wants to merge 1 commit into
IMAP-Science-Operations-Center:devfrom
laspsandoval:mopra_schedule
Open

laspsandoval wants to merge 1 commit into
IMAP-Science-Operations-Center:devfrom
laspsandoval:mopra_schedule

Conversation

@laspsandoval

Copy link
Copy Markdown
Contributor

This pull request adds support for Mopra station's fixed daily coverage allocation to the coverage generation logic, updates tests to reflect the new coverage calculation, and introduces a dedicated test to verify Mopra's schedule. The main changes are as follows:

Coverage calculation enhancements:

  • Added logic in generate_coverage.py to include Mopra station's fixed daily allocation (20:45–00:30 UTC) in the coverage computation, ensuring Mopra is always considered during these windows regardless of geometry.

Testing updates:

  • Updated the test in test_generate_coverage.py to expect the increased total coverage percentage resulting from Mopra's inclusion.
  • Added a new test, test_mopra_coverage, to verify that Mopra's fixed allocation is correctly applied and only covers the specified time windows.

Imports and setup:

  • Imported datetime.time as dt_time to support the new Mopra schedule logic.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Mopra coverage currently ignores DSN blocking and explicit Mopra outages (and the new test should more strictly validate that all Mopra times stay within the intended schedule windows).

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds Mopra station’s fixed daily allocation window into I-ALiRT coverage generation so Mopra contributes to total coverage, and updates/extends unit tests to validate the new behavior.

Changes:

  • Add Mopra fixed daily coverage window (20:45–00:30 UTC) into generate_coverage() output and total coverage mask.
  • Update DSN coverage summary test expectation to reflect Mopra’s added contribution.
  • Add a new unit test for Mopra schedule behavior.
File summaries
File Description
imap_processing/ialirt/generate_coverage.py Adds Mopra’s fixed allocation coverage into the generated coverage/outage dictionaries and total coverage computation.
imap_processing/tests/ialirt/unit/test_generate_coverage.py Updates expected total coverage percent and adds a Mopra-specific test.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +163 to +172
# Mopra: fixed daily allocation (20:45-00:30 UTC), no geometry needed.
# Split into two same-day windows to avoid the midnight rollover.
mopra_evening = StationProperties(0, 0, 0, 0, dt_time(20, 45), dt_time(23, 59, 59))
mopra_morning = StationProperties(0, 0, 0, 0, dt_time(0, 0), dt_time(0, 30))
mopra_mask = create_schedule_mask(mopra_evening, time_range) | create_schedule_mask(
mopra_morning, time_range
)
total_visible_mask |= mopra_mask
coverage_dict["Mopra"] = et_to_utc(time_range[mopra_mask], format_str="ISOC")
outage_dict["Mopra"] = np.array([], dtype="<U23")
Comment on lines +199 to +201
assert "2026-09-22T20:45:00.000" in mopra_times
assert "2026-09-22T00:30:00.000" in mopra_times
assert "2026-09-22T12:00:00.000" not in mopra_times
@laspsandoval laspsandoval linked an issue Sep 10, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Create Mopra Schedule

3 participants