Skip to content

Create loader cardington.py invoking complete list of diagnostics - #2127

Open
Simon Osborne (mo-sro) wants to merge 12 commits into
mainfrom
cardington_loader
Open

Simon Osborne (mo-sro) wants to merge 12 commits into
mainfrom
cardington_loader

Conversation

@mo-sro

@mo-sro Simon Osborne (mo-sro) commented May 12, 2026

Copy link
Copy Markdown
Contributor

… variable recipes from one toggle

Contribution checklist

Aim to have all relevant checks ticked off before merging. See the developer's guide for more detail.

  • Documentation has been updated to reflect change.
  • New code has tests, and affected old tests have been updated.
  • All tests and CI checks pass.
  • Ensured the pull request title is descriptive.
  • Ensure rose-suite.conf.example has been updated if new diagnostic added.
  • Conda lock files have been updated if dependencies have changed.
  • Attributed any Generative AI, such as GitHub Copilot, used in this PR.
  • Marked the PR as ready to review.

@github-actions

github-actions Bot commented May 12, 2026

Copy link
Copy Markdown
Contributor
Total coverage: 93% (HTML report)
Name                                                              Stmts   Miss Branch BrPart  Cover
---------------------------------------------------------------------------------------------------
src/CSET/__init__.py                                                105      0     14      0   100%
src/CSET/_common.py                                                 156      0     54      0   100%
src/CSET/cset_workflow/app/fetch_fcst/bin/fetch_data.py             117     28     26      0    78%
src/CSET/cset_workflow/app/fetch_nimrod/bin/fetch_nimrod.py          81      8     28     11    83%
src/CSET/cset_workflow/app/finish_website/bin/finish_website.py      79      2      8      2    95%
src/CSET/cset_workflow/app/parbake_recipes/bin/parbake.py            29      0      8      0   100%
src/CSET/cset_workflow/app/send_email/bin/send_email.py              25      0      4      0   100%
src/CSET/cset_workflow/lib/python/jinja_utils.py                     17      0      6      0   100%
src/CSET/extract_workflow.py                                        106      1     26      1    98%
src/CSET/graph.py                                                    44      0     14      0   100%
src/CSET/operators/__init__.py                                       89      0     26      0   100%
src/CSET/operators/_atmospheric_constants.py                          9      0      0      0   100%
src/CSET/operators/_colormaps.py                                    249      3     72      4    98%
src/CSET/operators/_stash_to_lfric.py                                 3      0      0      0   100%
src/CSET/operators/_utils.py                                        200      8     74      6    95%
src/CSET/operators/ageofair.py                                      142      7     64      5    94%
src/CSET/operators/aggregate.py                                      77      1     22      1    98%
src/CSET/operators/aviation.py                                       61      0     18      0   100%
src/CSET/operators/collapse.py                                      155      8     72      3    93%
src/CSET/operators/constraints.py                                   115      7     50      2    93%
src/CSET/operators/convection.py                                     38      4     10      2    88%
src/CSET/operators/ensembles.py                                      27      0     14      0   100%
src/CSET/operators/feature.py                                        44      0     10      0   100%
src/CSET/operators/filters.py                                        67      2     30      0    98%
src/CSET/operators/fluxes.py                                         41      0     10      0   100%
src/CSET/operators/humidity.py                                      135      0     52      0   100%
src/CSET/operators/imageprocessing.py                                57      0     16      0   100%
src/CSET/operators/mesoscale.py                                      18      0      2      0   100%
src/CSET/operators/misc.py                                          172      1     72      3    98%
src/CSET/operators/plot.py                                         1126    159    416     72    82%
src/CSET/operators/power_spectrum.py                                156     10     60      8    91%
src/CSET/operators/precipitation.py                                 204      2     92      2    99%
src/CSET/operators/pressure.py                                       41      0     12      0   100%
src/CSET/operators/read.py                                          440     24    186     15    94%
src/CSET/operators/regrid.py                                        147      1     70      3    98%
src/CSET/operators/scoreswrappers.py                                217     22     66      5    88%
src/CSET/operators/temperature.py                                   121      0     32      0   100%
src/CSET/operators/transect.py                                       63      0     24      0   100%
src/CSET/operators/wind.py                                           46      3     10      2    91%
src/CSET/operators/write.py                                          15      0      6      0   100%
src/CSET/recipes/__init__.py                                        104      0     28      0   100%
src/CSET/sample_data/__init__.py                                      0      0      0      0   100%
---------------------------------------------------------------------------------------------------
TOTAL                                                              5138    301   1804    147    93%

@mo-sro Simon Osborne (mo-sro) changed the title Create new loader called cardington.py which invokes complete list of… Create new loader cardington.py invoking complete list of diagnostics May 14, 2026
@mo-sro Simon Osborne (mo-sro) changed the title Create new loader cardington.py invoking complete list of diagnostics Create loader cardington.py invoking complete list of diagnostics May 14, 2026
@ukmo-huw-lewis
ukmo-huw-lewis self-requested a review June 4, 2026 11:50
@ukmo-huw-lewis

Copy link
Copy Markdown
Contributor
  1. Please update Contributor checklist.

  2. Propose we revisit this PR after addressing Add Cardington recipes #2128, which itself is dependent on other PR. Resolving Add Cardington recipes #2128 will clarify which recipes to build into the workflow via loaders and workflow metadata etc.

Suggest to re-title this PR something like "workflow changes to extend support for analyses using Cardington point observations".

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The new loader is not currently runnable as written (it references non-existent recipe YAMLs and is not wired into the loader execution path), so enabling the new Rose toggle will not produce the intended diagnostics.

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

Pull request overview

This PR introduces a new Cardington-specific loader intended to generate a broader set of Cardington single-point time-series diagnostics under a single Rose toggle, and updates the Rose metadata/example config to reflect the new consolidated switch.

Changes:

  • Added src/CSET/loaders/cardington.py to generate multiple Cardington single-point time-series RawRecipes from one configuration toggle.
  • Updated Rose metadata to replace the separate Cardington air-temperature / relative-humidity toggles with CARDINGTON_SINGLE_POINT_TIME_SERIES.
  • Updated rose-suite.conf.example to use the new consolidated Cardington toggle.
File summaries
File Description
src/CSET/loaders/cardington.py New loader generating multiple Cardington single-point time-series recipes/variables.
src/CSET/cset_workflow/rose-suite.conf.example Replaces old Cardington toggles with the new consolidated toggle in the example suite config.
src/CSET/cset_workflow/meta/observations/rose-meta.conf Consolidates Cardington Rose UI toggles into a single CARDINGTON_SINGLE_POINT_TIME_SERIES option.
Review details
  • Files reviewed: 3/3 changed files
  • Comments generated: 5
  • 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 thread src/CSET/loaders/cardington.py
Comment on lines +55 to +57
yield RawRecipe(
recipe="cardington_visibility_single_point_time_series.yaml",
variables={
Comment thread src/CSET/cset_workflow/rose-suite.conf.example
Comment thread src/CSET/loaders/cardington.py
Comment on lines +152 to +156
(
"relative humidity",
"relative_humidity",
"relative_humidity",
[1.2, 10, 25, 50],
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.

4 participants