-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add age of air diagnostic functionality #480
base: main
Are you sure you want to change the base?
Conversation
Tests to do include;
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some vague review comments. I've not properly read through and understood the code yet though. I'll do that a bit later.
thanks! There is a lot more to add yet, this is mostly initial commits for copy/pasting code into CSET. So best to hold of any review, as code needs a lot of tidying up/documentation, plus all the testing and cylc/yaml additions |
Got a bit eager, but its great to see it coming along. I'll mark this PR as a draft for now. |
Meta
YAML
Cycling
20240417T0000Z So all pressure levels run in parallel. |
Only thing left to do now is build the cylc workflow, tests etc. all done. |
Now ready for first stage technical review (quite a big changelog) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks James, this seems like a really useful operator.
The largest thing is going to be updating the recipe to accommodate the changes we have made in CSET over the past couple months. It would probably be worth rebasing your changes on the latest version of the main branch to make that easier. (git rebase main
, then fix a bunch of conflicts...)
I've noted a bunch of specific points, but the general design and approach are sound.
Note that there are other suggestions that GitHub has hidden under "hidden conversations". You might be better off looking through the Files tab for them. |
I think the design of this operator needs some consideration with how it will work with the current default of CSET of cycling through valid-time. The operator expects to be run once, for a given initialisation, and passed all the data for that forecast. I don't really know how compatible this is with the current architecture, because each calculation at each forecast time depends on the preceding data. |
For now this can be worked around by running the operator within the collate step. We are currently discussing a longer term change to cycling on data time, which would alleviate this. |
52517a9
to
59c784f
Compare
I have added an additional call to the plot line series in the recipe, as it is good to also visualise this as a domain average. This currently appends the domain average timeseries plot to the back of the other spatial plots. I'd rather not copy paste the recipe to be re-run for domain average (a lot of extra code, plus duplication of actual run-time to derive the diagnostic). I tried to redefine the title half way through the yaml but it didn't like it. At this stage happy for domain average timeseries to be appended to end of spatial plots, but wondered if there was a better solution to computationally heavy diagnostics that can be visualised in various ways |
I am also getting very low coverage (15%) despite tests covering most combinations, am I missing something? The coverage report highlights most lines in the function but no hover-over/info to tell me why the line isn't executed during the tests. Otherwise, just need to rebase and then ready for final technical/science review |
I need to add some modifications to the script to handle ensemble data (essentially checking to see if a realization dimension exists, and if so, then iterate over it and return same cube with the additional realization dimension to make it compatible). Will also need to add a new test for this (and create some sample data). |
Adding capability to run the age of air diagnostic on data, linked to issue #269