Skip to content

SFMS Wind & Refactor#5200

Merged
brettedw merged 41 commits intomainfrom
task/sfms-daily-refactor
Mar 10, 2026
Merged

SFMS Wind & Refactor#5200
brettedw merged 41 commits intomainfrom
task/sfms-daily-refactor

Conversation

@brettedw
Copy link
Collaborator

@brettedw brettedw commented Mar 9, 2026

  • Adds SFMS tests to integration run
  • Adds Wind Speed and Wind Direction to SFMS Daily Actuals
  • Adds COG generation to everything that didn't already have it
  • Includes a refactor of the job/processor/source structure. The reason for this is that wind speed was temporarily faked in the FFMC calculation before. Now that we have actual wind speed, the weather inputs are different for FFMC than they are for DMC/DC (this is made a bit more confusing by the CFFDRS library, which includes things like RH in DC calculations, even though it isn't actually used in the calculation) link
  • This made me think about calculating ISI/BUI/FWI which have no weather inputs, only other FWI inputs
    ISI/BUI/FWI aren't being calculated as part of this PR, but I included their "Calculators" along with the refactor
  • closes SFMS: Wind Interpolation #5104

Notes

  • shared raster setup lives in one place in grid.py
  • station data to array transformation lives in one place in fields.py
  • processors focus on parameter specific math
  • the daily actuals job builds raster jobs and runs them through one shared execution path in sfms_daily_actuals.py
  • geotiff storage lives in one place publish.py

Test Links:

Landing Page
MoreCast
Percentile Calculator
C-Haines
FireCalc
FireCalc bookmark
Auto Spatial Advisory (ASA)
HFI Calculator
SFMS Insights
Fire Watch

@codecov
Copy link

codecov bot commented Mar 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.06%. Comparing base (49ba2ac) to head (8b438c4).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5200      +/-   ##
==========================================
+ Coverage   68.96%   69.06%   +0.09%     
==========================================
  Files         394      394              
  Lines       16419    16418       -1     
  Branches     1848     1846       -2     
==========================================
+ Hits        11324    11339      +15     
+ Misses       4510     4495      -15     
+ Partials      585      584       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@brettedw brettedw marked this pull request as ready for review March 10, 2026 15:54
@brettedw brettedw changed the title SFMS Refactor SFMS Wind & Refactor Mar 10, 2026
@brettedw brettedw requested review from conbrad and dgboss March 10, 2026 16:24
src_ds=mocker.ANY, output_path=fwi_inputs.cog_key
)
assert publish_spy.call_count == 1
assert publish_spy.await_args.kwargs["output_key"] == fwi_inputs.output_key
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should we also check for the cog key?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is testing that fwi_processor calls publish_dataset with fwi_inputs.output_key, it's not necessarily verifying the output COG key. I think that's covered in well in test_publish

Copy link
Collaborator

@conbrad conbrad left a comment

Choose a reason for hiding this comment

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

Nice work 😎 !

Copy link
Collaborator

@dgboss dgboss left a comment

Choose a reason for hiding this comment

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

🚀 Strong work! I really like the re-factored approach.

@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@brettedw brettedw merged commit 8231082 into main Mar 10, 2026
41 of 43 checks passed
@brettedw brettedw deleted the task/sfms-daily-refactor branch March 10, 2026 19:42
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.

SFMS: Wind Interpolation

3 participants