Changelog¶
Unreleased¶
24.8.0 (2024-08-29)¶
This release contains a large number of bug fixes and small improvements, and sets the stage for the major cycling improvement (Issue #750) coming in the next release in a few days.
Added line wrapping for title. by @Sylviabohnenstengel in PR #935
Parse recipe variables as python literals by @jfrost-mo in PR #683
Fixed metplus config issue by @dasha-shchep in PR #693
Clarify error message on missing files by @jfrost-mo in PR #663
Update testing.rst by @Sylviabohnenstengel in PR #696
Correct rst syntax added in #696 by @jfrost-mo in PR #700
Suggest descriptive PR titles instead of changelog entry by @jfrost-mo in PR #701
Improve PR title documentation in developer’s guide by @jfrost-mo in PR #707
Remove Fixes placeholder in PR template by @jfrost-mo in PR #705
Update section header to match PR checklist item by @jfrost-mo in PR #704
Minor wording tweak in marking PR as ready to review docs by @jfrost-mo in PR #702
Add canonical URL links to documentation by @jfrost-mo in PR #650
Clarify running specific tests by @jfrost-mo in PR #703
Fix SET_SUBAREA being required to run some LFRIC recipes by @dasha-shchep in PR #717
Remove deprecated postage stamp contour plot operator by @jfrost-mo in PR #710
Remove unneeded fallback code for old recipe step keys by @jfrost-mo in PR #711
Test vertical plotting with a filename specified by @jfrost-mo in PR #712
Test running recipes with no collate steps and running with a specified style file by @jfrost-mo in PR #713
Test handling of masked arrays in convection operators, and load convection test files with fixtures by @jfrost-mo in PR #714
Ignore cartopy DownloadWarning in pytest by @jfrost-mo in PR #716
LFRic extension to vertical profile by @Sylviabohnenstengel in PR #638
Remove unneeded rose edit setting by @jfrost-mo in PR #722
Test higher dimensional orography handling in convection operators by @jfrost-mo in PR #715
Support STASH codes in generate_var_constraint by @jfrost-mo in PR #723
Add cross-section transect functionality by @jwarner8 in PR #531
Extend UM vertical plotting to model level by @Sylviabohnenstengel in PR #697
UM spatial plot on model levels by @Sylviabohnenstengel in PR #699
Enable spatial fields on full and half levels by @Sylviabohnenstengel in PR #695
Unquote double quoted shell values by @jfrost-mo in PR #729
Remove invalid rose meta trigger for removed variable by @jfrost-mo in PR #733
Add _utils operators to internal function documentation by @jfrost-mo in PR #735
Don’t check documentation hyperlinks in commit CI by @jfrost-mo in PR #749
Generate Histograms for 2D field by @Sylviabohnenstengel in PR #594
Tidy up documentation around recipes and cset bake command, introducing examples by @Sylviabohnenstengel in PR #641
Create operator to combine Cubes/CubeList into single CubeList by @jwarner8 in PR #738
Update copyright attribution per legal advice by @jfrost-mo in PR #753
Enhance level filter operator to return all vertical levels by @jwarner8 in PR #728
Copy source files from any named folder when installing locally by @jfrost-mo in PR #472
Add missing brackets to TemporaryDirectory call when installing local CSET by @jfrost-mo in PR #760
Move all website files under the workflow shared directory by @jfrost-mo in PR #764
Fix overwriting when using transect on multiple variables by @jwarner8 in PR #766
Surface field histogram by @Sylviabohnenstengel in PR #640
Preload plot images on web page by @jfrost-mo in PR #781
Filter irrelevant warning raised by regrid test by @jfrost-mo in PR #796
Merge and concatenate cubes on load by @jfrost-mo in PR #790
Allow Point cell methods for empty constraint, making it possible to unify UM and LFRic recipes by @jfrost-mo in PR #778
Merge install_local_cset into build_conda so environment is setup in a single cylc task by @jfrost-mo in PR #791
Convert time AuxCoord to DimCoord for LFRic data by @jfrost-mo in PR #789
Cancel running PR checks if new commit is pushed by @jfrost-mo in PR #793
Stop ruff warning about ignore-init-module-imports by @jfrost-mo in PR #800
Configurable plotting resolution by @jfrost-mo in PR #803
General small plot improvements and website organisation by @jwarner8 in PR #801
Set figsize to consistent 8 by 8 inches, and reduce resolution to 100 dpi by @jfrost-mo in PR #786
Remove LFRic specific recipes now recipes can handle both UM and LFRic data by @jfrost-mo in PR #805
Move workflow utility code into unstable module within CSET package by @jfrost-mo in PR #792
Add pcolormesh plotting operator by @jfrost-mo in PR #787
Use pcolormesh for Quicklook surface spatial plots by @jfrost-mo in PR #788
Create the plot index in finish_website to avoid a data race between concurrent index writers by @jfrost-mo in PR #794
@dasha-shchep Fixes METPLUS metadata issue in PR #692
- @JKPShonk and @cehalliwell added functionality to CSET to allow it to
generate time series plots from model data mapped on to a selected longitude/latitude location in PR #577
@Sylviabohnenstengel add pdf functionality for spatial fields in PR #594.
@Sylviabohnenstengel documentation: add info on quick pytesting in PR #696
@Sylviabohnenstengel add constraint operator for lfric full_levels and half_levels
@Sylviabohnenstengel introduced lfric_model_level and lfric_model_level_field to rose meta
@Sylviabohnenstengel expand plot operator add plotting lfric vertical profiles on model levels
@Sylviabohnenstengel expand plot operator add plotting on model levels to spatial plot operator
@Sylviabohnenstengel added new recipe for plotting vertical profiles on model levels for lfric.
@Sylviabohnenstengel added new recipe for plotting spatial lfric data on model levels.
@Sylviabohnenstengel added a vertical line plotting operator that plots vertical profiles using an optional series coordinate and an optional sequence coordinate. The series coordinate is currently tested for pressure and the sequence coordinate allows displaying vertical profiles over time using the time slider functionality. Further added a recipe to plot vertical profiles and test functions for the vertical plot operator.Fixes :pr: 494
24.6.0 (2024-06-17)¶
This release contains a quite a number of small improvements, increasing the reliability of CSET significantly, and paving the way for further improvements to come.
@jfrost-mo replaced how the encoding of subprocess output is determined in PR #604. This adds support for python before 3.11, and more accurately reflects the encoding.
@jwarner8 add intelligent determination of whether to plot country lines in PR #655
@daflack added science review guidance to the documentation in PR #649
@jfrost-mo ensured cartopy data files are included in the GitHub Actions cache in PR #647
@jfrost-mo improved the error message for missing data files in PR #663
@jfrost-mo grouped the package install logs in GitHub Actions in PR #645
@daflack added an inflow layer properties diagnostic in PR #353
@jfrost-mo fixed LFRic cube metadata on load in PR #627. This means that loading LFRic data no longer requires special steps in the recipe.
@jfrost-mo made the
install_restricted_files.sh
script non-interactive in PR #606. This should make it less confusing to use.@Sylviabohnenstengel added information to rose-meta for colorbar selection and provided path to example JSON file in PR #632
@jfrost-mo added a Generative AI policy in PR #624
@jfrost-mo linked to the CSET discussion forum in PR #625
@jwarner8 use common operator to identify x/y coord names in regrid operator PR #626
@jwarner8 added generic cube util for common functions so all operators can use to reduce repetition in PR #620
@JorgeBornemann added METPlus GridStat functionality (NIWA) in PR #629
@jfrost-mo added a code of conduct in PR #618
@jfrost-mo fixed some rose edit metadata so the subarea selectors show up when enabled in PR #612
@jfrost-mo removed some old recipes that are now redundant in PR #512
@jfrost-mo added a git cheat sheet to the documentation in PR #598
@jfrost-mo added a warning when input files don’t exist in PR #518. This makes it easier to see if configuration mistakes were made.
@jfrost-mo improved the documentation for adding a new diagnostic in PR #603
@dasha-shchep added
generate_area_constraint
operator and added to LFRic recipes in PR #522. This was their first contribution 🎉@Sylviabohnenstengel added a vertical line plotting operator that plots vertical profiles using an optional series coordinate and an optional sequence coordinate in PR #567. The series coordinate is currently tested for pressure and the sequence coordinate allows displaying vertical profiles over time using the time slider functionality. Furthermore added a recipe to plot vertical profiles and test functions for the vertical plot operator.
@jfrost-mo dropped python 3.9 support in PR #448 The minimum required python is now 3.10.
@jfrost-mo fixed some outdated documentation examples in PR #546
@jfrost-mo added setuptools as an explicit dependency of the workflow in PR #543
@cjohnson-pi added support for custom plotting styles in PR #570. This avoids many issues of side-by-side plots having different scales, or extreme values causing plots to saturate.
@Sylviabohnenstengel documentation: removed necessity to add new recipe to flow.cylc.
@Ashfinn fixed a typo in the documentation in PR #573. This was their first contribution 🎉
@jfrost-mo fixed how arguments from the
CSET_ADDOPTS
environment variable are parsed in PR #569. This fixes issues with passing lists into recipes.@jfrost-mo added a dead link checker to the documentation in PR #556
@Sylviabohnenstengel documented the common error of operating on a CubeList instead of a Cube in PR #541
@Sylviabohnenstengel documented how to update your conda environment in PR #519
@Sylviabohnenstengel documented the common error of no cubes being loaded in PR #513
@Sylviabohnenstengel and @jfrost-mo redid the rose-meta sort orders so that workflow configuration makes more sense in PR #504
@jfrost-mo updated the example rose-suite.conf to reflect what a modern version should look like in PR #508
24.4.1 (2024-04-19)¶
This release contains a large generalisation of the CSET workflow, allowing use of templating to use the same recipe for multiple variables. It also adds cycling to the workflow, so a long workflow can be efficiently processed in parallel.
@jfrost-mo added GitHub Issue and Pull Request templates, and a detailed contribution checklist to the documentation in PR #465
@jfrost-mo added a changelog in PR #468
@jfrost-mo documented the
category
recipe key in PR #499@jfrost-mo renamed the
steps
andpost-steps
keys toparallel
andcollate
in PR #484. This makes them more meaningful, but is a breaking change.@jfrost-mo made the log output of the read operator nicer in PR #461
@jfrost-mo added links to share feedback to the output page in PR #442
@jfrost-mo documented some common errors in PR #443
@jfrost-mo documented the deprecation policy in PR #444
@jfrost-mo fixed an iris deprecation warning for save_split_attrs in PR #459
@jfrost-mo added LFRic specific recipes in PR #462. This allows CSET to read in structured LFRic data.
@jfrost-mo fixed a memory leak when plotting in PR #482
@jfrost-mo included the recipe title in the plot title, giving more context to the output. This was PR #462
@Sylviabohnenstengel added the capability to loop over model levels in PR #441
@Sylviabohnenstengel and @jfrost-mo renamed and better linked up the Developer’s Guide in PR #434 and PR #435
@jfrost-mo updated the documentation Actions workflow to make it simpler and faster in PR #449
@jfrost-mo added a cycling to the cylc workflow so recipes can be run in parallel across multiple nodes. This was PR #395
@jfrost-mo added looping inside an include file for generalisation in PR #387
@jfrost-mo made conda-lock update PRs use a GitHub App in PR #415
@Sylviabohnenstengel retitled code and tooling setup page in PR #433
@Sylviabohnenstengel updated git terminology in PR #436
@jfrost-mo added sequential plot display with unified postage stamp plots in PR #379
@JorgeBornemann fixed IFS in build conda in PR #447
@jfrost-mo added a licence header to convection tests in PR #450
24.2.1 (2024-03-04)¶
A small bug fix release containing several fixes that ensure portability on Australia’s NCI system.
Graceful error when graphing without xdg-open by @jfrost-mo in PR #394
Docs update by @jfrost-mo in PR #392
Update workflow conda lockfiles automatically by @jfrost-mo in PR #410
Handle
LD_LIBRARY_PATH
being unset by @jfrost-mo in PR #404
24.2.0 (2024-02-13)¶
This release open sources the cylc workflow, allowing for much easier running of CSET over large datasets. It also includes support for parametrising recipes to allow a single recipe to work for many cases.
Open source workflow by @jfrost-mo in PR #247
Minor bug fix to cape ratio documentation by @daflack in PR #336
Use cached conda environment for CI by @jfrost-mo in PR #351
Single cube read operator by @jfrost-mo in PR #323
Hash updated config ensuring unique branch by @jfrost-mo in PR #350
Add filter_multiple_cubes operator by @jfrost-mo in PR #362
Test exception for invalid output directory by @jfrost-mo in PR #364
Test no constraints given to filter_multiple_cubes by @jfrost-mo in PR #363
Update workflow-installation.rst by @Sylviabohnenstengel in PR #365
Recipe parametrisation by @jfrost-mo in PR #337
Fix crash when running recipe from env var by @jfrost-mo in PR #384
0.5.0 (2023-11-24)¶
Small update featuring some better looking plots (though still a work-in-progress, see Issue #240) and a documentation fix.
Bump version to 0.5.0 by @jfrost-mo in PR #278
Improve contour plot by @jfrost-mo in PR #282
0.4.0 (2023-11-23)¶
Containing many months of work, this release contains many usability improvements, new generic operators, and a big change to the output, where it is now generated as handily viewable HTML pages.
Update version to 0.4.0 by @jfrost-mo in PR #180
Postage stamp plots by @jfrost-mo in PR #160
Add collapse operator with corresponding yaml file and changes by @Sylviabohnenstengel in PR #168
Make plot.contour_plot and write.write_cube_to_nc return a cube by @jfrost-mo in PR #183
Postage stamp plot fix by @jfrost-mo in PR #181
Document collapse operator by @jfrost-mo in PR #185
Refactor tests to use PyTest helpers by @jfrost-mo in PR #177
Document installing CSET into its own environment by @jfrost-mo in PR #198
Update README.md by @Sylviabohnenstengel in PR #206
Use hash of updated lock files in branch name by @jfrost-mo in PR #201
Add note on updating a cloned repository by @jfrost-mo in PR #190
Skip build-docs on push to main by @jfrost-mo in PR #200
Python 3.12 support by @jfrost-mo in PR #202
Update README.md by @Sylviabohnenstengel in PR #225
Update README.md by @Sylviabohnenstengel in PR #226
Update why-cset.rst by @Sylviabohnenstengel in PR #227
Fix globbing for lock file hashing by @jfrost-mo in PR #229
Update index.rst by @Sylviabohnenstengel in PR #228
Update index.rst by @Sylviabohnenstengel in PR #230
Use static branch name while updating lock files by @jfrost-mo in PR #245
Swap out flake8 for Ruff by @jfrost-mo in PR #218
Including aggregate operator. by @Sylviabohnenstengel in PR #241
Fix filter operator for filtering cube by @daflack in PR #258
Fix pre-commit mangling test data by @jfrost-mo in PR #273
Improve tutorials by @jfrost-mo in PR #209
Model level constraint operator by @Sylviabohnenstengel in PR #272
Plot generation improvements by @jfrost-mo in PR #274
0.3.0 (2023-08-02)¶
This release contains some major changes to the user experience. This includes many of the CLI commands changing names, and the CSET Documentation being completely restructured. Hopefully this should be the last major reshuffle of the user experience, as we are getting closers to being feature complete for our MVP.
Other highlights include the addition of the cset graph command for visualising recipes, and the cset cookbook command for dumping the built in recipes to disk.
Operator runner improvements by @jfrost-mo in PR #128
Add codespell pre-commit hook by @jfrost-mo in PR #135
Add graph command to visualise recipe files by @jfrost-mo in PR #136
Pin version of tox used in environment by @jfrost-mo in PR #142
Increase version number by @jfrost-mo in PR #124
Update description of CSET by @jfrost-mo in PR #141
Refactoring by @jfrost-mo in PR #144
Rename run command to bake by @jfrost-mo in PR #143
Add command to create recipes on disk by @jfrost-mo in PR #140
Documentation restructure by @jfrost-mo in PR #151
Add version command by @jfrost-mo in PR #156
General cleanup by @jfrost-mo in PR #158
Remove Python 3.8 support by @jfrost-mo in PR #173
Fix install instructions in docs by @jfrost-mo in PR #176
Allow PR checks to be run manually by @jfrost-mo in PR #179
Ensemble ingestion with read operator by @jfrost-mo in PR #157
Update working practices link to point to contributing docs by @jfrost-mo in PR #175
0.2.0 (2023-06-16)¶
Lots of good work in the release towards making the recipe format more usable.
Update installation instructions to use conda and add missing operators to documentation by @jfrost-mo in PR #94
Update index.rst by @Sylviabohnenstengel in PR #95
Improve installation instructions by @jfrost-mo in PR #97
Use speedy libmamba when resolving conda environments by @jfrost-mo in PR #105
Add documentation on rational by @jfrost-mo in PR #102
Relax version requirement for sphinx by @jfrost-mo in PR #108
Run PR checks on push to main by @jfrost-mo in PR #109
Move to YAML recipe format by @jfrost-mo in PR #119
Lock pre-commit config to specific SHA by @jfrost-mo in PR #118
Use recipes from environment variable by @jfrost-mo in PR #122
0.1.0 (2023-04-24)¶
The first release of CSET! 🎉 This release contains basic operators to do reading, writing, filtering, and plotting of data. It is however still quite limited in each of them, and still doesn’t promise much in the way of API stability, with things undoubtedly going to undergo significant change in the near future.
This release also serves as a basis for packaging CSET out into the wider world; packages will be released on PyPI, and conda-forge.
Re-enable testing on python 3.11 by @jfrost-mo in PR #61
Operator runner improvements by @jfrost-mo in PR #56
Move METplus tasks out of command line repository by @jfrost-mo in PR #76
Remove extra punctuation from conda lock CI commit message by @jfrost-mo in PR #78
Measure test coverage by @jfrost-mo in PR #68
Improve test coverage by @jfrost-mo in PR #81
Fix link to Git tutorial by @jfrost-mo in PR #83
Fix description of a git tag by @jfrost-mo in PR #84
Add basic plotting capabilities by @jfrost-mo in PR #85
Make PR coverage reports edit last comment by @jfrost-mo in PR #92
Package on PyPI by @jfrost-mo in PR #90