Skip to content

feat: catch dscovr end time error and switch model#81

Merged
sahiljhawar merged 1 commit into
mainfrom
dscovr-try-catch
Jul 9, 2026
Merged

feat: catch dscovr end time error and switch model#81
sahiljhawar merged 1 commit into
mainfrom
dscovr-try-catch

Conversation

@sahiljhawar

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings July 9, 2026 14:29
@sahiljhawar sahiljhawar merged commit b603f9c into main Jul 9, 2026
3 of 4 checks passed
@sahiljhawar sahiljhawar deleted the dscovr-try-catch branch July 9, 2026 14:30

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.

Pull request overview

Adds a DSCOVR-specific fallback path so that when DSCOVR cannot serve data beyond its availability window, the reader switches to ACE (SWACE) instead of failing, and includes a regression test for this behavior.

Changes:

  • Catch ValueError from DSCOVR reads and fall back to SWACE when DSCOVR data is unavailable past its end time.
  • Update the default-order warning message to match the actual default model list.
  • Add a unit test ensuring DSCOVR end-time errors trigger a single ACE read with expected parameters and output labeling.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
swvo/io/solar_wind/read_solar_wind_from_multiple_models.py Adds DSCOVR ValueError handling and switches the active model to SWACE on fallback.
tests/io/solar_wind/test_read_solar_wind_from_multiple_models.py Adds coverage for DSCOVR end-time ValueError fallback-to-ACE behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +119 to +123
except ValueError as e:
if not isinstance(model, DSCOVR):
raise

logger.warning(f"Failed to read DSCOVR data because: {e}. Falling back to ACE.")
Comment on lines +130 to +132
else:
active_model = SWACE(Path("./data"))
logger.info("Falling back to a new instance of SWACE model with default data directory './data'.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants