-
Notifications
You must be signed in to change notification settings - Fork 45
Add ensemble statistics preprocessor and 'groupby' option for multimodel #673
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
Merged
Merged
Changes from all commits
Commits
Show all changes
182 commits
Select commit
Hold shift + click to select a range
4e4c1db
First attempt, not clean
sloosvel a27abeb
Compute ensemble stats, pending to test exclude
sloosvel b405759
Deal with excluded datasets
sloosvel e835ebf
Compute stats of ensemble stats, pending to clean
sloosvel e4163d0
Move ensemble means to separate functions
sloosvel de0ee76
Merge remote-tracking branch 'origin/master' into dev_multimodel_ense…
sloosvel bafe50c
Update after merging
sloosvel 8e914e7
Fix calendar units to 'days since 1850-01-01' on a standard calendar
Peter9192 d6b9947
More thorough check on source time frequency; align behaviour with re…
Peter9192 12f9aa4
Simplify _get_overlap
Peter9192 bf82085
Align behaviour for union (full) and intersection (overlap) of time a…
Peter9192 3bd1e82
Add function to make all cubes use the same calendar.
Peter9192 7841a5f
Remove _datetime_to_int_days, as we can just use the time points
Peter9192 f95aa7c
Simplify and rename _slice_cube
Peter9192 db47522
Align _assemble_overlap_data more with _assemble_full_data
Peter9192 127c69b
Align _assemble_full_data more with _assemble_overlap_data
Peter9192 f873ea5
Futher align assemble full and overlap data
Peter9192 3b7b55b
Merge assemble full and overlap data.
Peter9192 168a701
Further simplify
Peter9192 629a9d6
Remove stuff about bounds and aux coords as it is not used anyway
Peter9192 f538fa8
Remove stuff about bounds and aux coords as it is not used anyway
Peter9192 b0cc1ae
Clean up tests and add tests for new functions
Peter9192 aef2578
Valeriu's suggestions
Peter9192 24294df
fix tests
Peter9192 d3a4ddd
Merge remote-tracking branch 'origin/master' into mmstats_simplify_time
Peter9192 35210a5
Realize data before making time slices
Peter9192 d2fddeb
Avoid codacy 'pointless-statement' message
Peter9192 d028b28
Merge remote-tracking branch 'origin/master' into mmstats_simplify_time
Peter9192 cc51e15
Address Bouwe's comments
Peter9192 7c182a2
Update esmvalcore/preprocessor/_multimodel.py
Peter9192 a663ea6
Don't change the calendar if not necessary
Peter9192 2e363c9
Merge branch 'mmstats_simplify_time' of github.com:ESMValGroup/ESMVal…
Peter9192 c8b5f4b
Use template cube's calendar and don't slice by time
Peter9192 fcb9955
Use num2date rather than cells() method
Peter9192 46337f7
Apply suggestions from code review
Peter9192 4e78224
Merge branch 'mmstats_simplify_time' of github.com:ESMValGroup/ESMVal…
Peter9192 a77b1eb
Refactor provenance initialization code
stefsmeets 816fbc2
Refactor code to update ensemble settings
stefsmeets 3f2e126
Avoid double dictionary lookup
stefsmeets 9686643
Clean ensemble statistics code
stefsmeets 798d7dc
Merge branch 'master' into dev_multimodel_ensemble
stefsmeets c5c71cd
Merge remote-tracking branch 'origin/mmstats_simplify_time' into dev_…
Peter9192 8b7f076
Clarify error
stefsmeets 851e0ec
Fix PickleError (lambdas cannot be pickled)
stefsmeets 1bffc76
Fix crash when exp is a list
stefsmeets 8d319b0
Rename variable
stefsmeets 98c2592
Add missing parentheses
stefsmeets 5be9d9b
Don't return the union after a multimodel function
Peter9192 2912372
remove breakpoint
Peter9192 0a587fc
Return all statistics products
Peter9192 d3b1b7f
Clarify code
stefsmeets a3a5f3b
Identify problem with deepcopy
Peter9192 e27954e
Remove debug statements
Peter9192 9824f6c
Merge branch 'dev_multimodel_ensemble' of github.com:ESMValGroup/ESMV…
Peter9192 dcf97f8
Refactor multi_model_statistics
Peter9192 e1005bd
Refactor ensemble_statistics as a 'grouped multi-model_statistics'
Peter9192 af90767
First attempt at dedicated ensemble means function using iris instead…
Peter9192 8244c85
Lookup of supported operators in iris.analysis
Peter9192 d78c34e
Refactor (grouped) multimodel statistics flow
Peter9192 cc2ebe0
Implement group function on PreprocessorFile
stefsmeets 8a2b628
Fix and clean up refactored _multimodel.py
Peter9192 3187700
Merge branch 'dev_multimodel_ensemble' of github.com:ESMValGroup/ESMV…
Peter9192 cc5f61c
Move group keywords to ensemble_stats function
Peter9192 4b31147
Tweak group method
stefsmeets 6523e05
Rename _update_statistic_settings -> _update_multi_model_settings
stefsmeets 21989a4
Refactor product grouping (groupby func)
stefsmeets 73d5afd
Homogenize multi_model/ensemble recipe functions
stefsmeets 42a52b1
Make multimodel-statistics accept a groupby keyword as well
Peter9192 62689bf
Refactor multi model/ensemble settings
stefsmeets aee20ea
Return default value for None argument
stefsmeets 559fcf3
Remove redundant function
stefsmeets 5689953
Fix typo
stefsmeets 9d20217
Use groupby keyword from product settings for ensemble_statistics
Peter9192 74c55f3
Add docstrings
stefsmeets 612f83f
Merge branch 'dev_multimodel_ensemble' of https://www.github.com/ESMV…
stefsmeets e0f3c5a
idea for bypassing update order issue
Peter9192 5d7585c
Fix duplicate filenames when multi-model/ensemble statistics are both…
stefsmeets a643241
Remove unused argument and tweak codestyle
stefsmeets 339ec1e
Change order, improve ancestry updating, better filenaming
Peter9192 6d27aff
Merge branch 'dev_multimodel_ensemble' of https://www.github.com/ESMV…
stefsmeets 85d0bb8
Fix output filenames and pretty print PreprocessorFile
Peter9192 d8ff56a
two typos
Peter9192 09929cd
Make groupby argument work for multi-model statistics preprocessor
Peter9192 1e8762a
Some code formatting
Peter9192 9018c1f
Merge remote-tracking branch 'origin/master' into dev_multimodel_ense…
Peter9192 f4728d1
Make clearer string representation for TrackedFile/PreprocessorFile
stefsmeets 1c3d52c
Fix crash when `exp` is a list
stefsmeets 7ac0827
Make multimodel groupby work for difficult combinations of groups; ad…
Peter9192 46a99d4
Merge branch 'dev_multimodel_ensemble' of github.com:ESMValGroup/ESMV…
Peter9192 1541dd3
tick off todo's
Peter9192 1b081cc
fix bug for monthly data in unify time
Peter9192 c35c530
Remove invalid pytest command
stefsmeets 7d9d855
Pass pytest->test_simple_recipe
stefsmeets 2f2e354
Pass pytest->test_custom_preproc_order
stefsmeets 3b2fe4c
Merge branch 'dev_multimodel_ensemble' of https://www.github.com/ESMV…
stefsmeets 068a628
Fix pytest multimodel errors
stefsmeets 276112a
Remove flatten, it is no longer necessary since the nested loop has b…
Peter9192 d262f0b
Add documentation to _multimodel.py; expose multicube functions to pu…
Peter9192 3d531b9
Add to RTD, improve docstrings, add multicube stats to public API
Peter9192 3a72d58
Raise Exception instead of logging it
stefsmeets d8f4675
Avoid cubes being updated in-place
stefsmeets 92f8c7a
Add tests for multi-model statistics
stefsmeets 14c1baa
Add integration test for ensemble statistics
stefsmeets 40fabbb
Add integration test for multi model statistics
stefsmeets e2db416
Refactor multi_model/ensemble statistics
stefsmeets 9a6bfc2
Fix bugs in tests
stefsmeets 14531d7
Refactor output consistency check
stefsmeets c8a208b
Fix typo
stefsmeets 72f5cc9
Add multi model integration test using groupby
stefsmeets 3d1b7b4
Remove redundant function
stefsmeets f7e7b7b
Refactor groupby function
stefsmeets bbb2e9b
Merge branch 'master' into dev_multimodel_ensemble
stefsmeets 8e21e06
Rename function
stefsmeets 96988c0
Clean function
stefsmeets 8ea0bce
Fix Codacy issues
stefsmeets d16836d
Fix Codacy issues
stefsmeets 22286d4
Fix Codacy issues
stefsmeets 3be28ed
Fix problems with tests
stefsmeets becb7b7
Add `input_products` as valid itype for test
stefsmeets d226a21
Add preprocessor argument checks for multimode/ensemble statistics
stefsmeets aad34bf
Merge branch 'master' into dev_multimodel_ensemble
stefsmeets 8815943
Code formatting
stefsmeets d04e65d
Refactor grouping function
stefsmeets 87f5028
Refactor _match_products
stefsmeets b6fe30b
Update function names
stefsmeets 0d447cf
Tweak error output and make error variable 3 letters
stefsmeets d1125a4
Return empty dict in case products is None or empty
stefsmeets 6400270
add time bounds to output cube
Peter9192 f78c4ff
Merge remote-tracking branch 'origin/master' into dev_multimodel_ense…
Peter9192 2d37a01
Formatting
Peter9192 d7fb1d5
Merge remote-tracking branch 'origin/main' into dev_multimodel_ensemble
sloosvel 95ab23b
Add number of input cubes as cell method comment
sloosvel 43d37c4
Fix test
sloosvel e44dd55
Include sub_exp in ensemble grouping
sloosvel 238ccac
Move ensemble stats to end of chain
sloosvel 75bf641
Allow to exclude datasets
sloosvel 2a4272c
Fix style issues
sloosvel 59aa0fa
Add check for keep_input_datasets
sloosvel 0b670b8
Fix test
sloosvel a558e6d
Fix more tests
sloosvel 4312d3d
Fix flake
sloosvel b93686c
Remove unused import
sloosvel 765a154
Improve test coverage in recipe checks
sloosvel 121b5bd
Improve coverage in multimodel
sloosvel e50e6a2
Remove space
sloosvel 2a1dd49
Generalise check
sloosvel 718e76b
Add more tests in recipe
sloosvel a819525
Improve test coverage of PreprocessorFile
sloosvel 509b116
Improve test coverage of PreprocessorTask
sloosvel 915a3a4
Merge remote-tracking branch 'origin/main' into dev_multimodel_ensemble
sloosvel 78b4187
Merge remote-tracking branch 'origin/main' into dev_multimodel_ensemble
sloosvel 6eb8534
Fix doc
sloosvel 24e467a
Change argument name
sloosvel 0567d25
Change name of variable
sloosvel a1c83f7
Update esmvalcore/preprocessor/_multimodel.py
sloosvel d09412b
Update esmvalcore/preprocessor/_multimodel.py
sloosvel 2d62b2a
Improve docstring
sloosvel 6e52fc7
Apply suggestions from code review
sloosvel 3aaec4e
Apply suggestions from code review
sloosvel 3539019
Change function name
sloosvel 9eaeea4
Merge branch 'dev_multimodel_ensemble' of https://github.com/ESMValGr…
sloosvel 7d39a12
Change name of the function
sloosvel fa11745
Add test for exclude
sloosvel 6471d00
Add docstrings to ensemble stats
sloosvel f17faca
Add documentation about groupby tag
sloosvel d1de891
Update doc/recipe/preprocessor.rst
sloosvel 42d7050
Improve docstrings
sloosvel ffe9e44
Merge branch 'dev_multimodel_ensemble' of https://github.com/ESMValGr…
sloosvel f29c3d9
Merge branch 'main' into dev_multimodel_ensemble
valeriupredoi 3f11033
Apply suggestions from code review
sloosvel effa0ad
Remove keep_input..., add span in ensemble stats
sloosvel 4ed2780
Improve doc
sloosvel 901a47d
Improve doc
sloosvel 89d0ee3
Apply suggestions from code review
sloosvel 149c671
Update doc/recipe/preprocessor.rst
sloosvel a389240
Reorder doc
sloosvel 5ec1a3e
Merge branch 'dev_multimodel_ensemble' of https://github.com/ESMValGr…
sloosvel 6419137
Fix identations
sloosvel b78a84d
Missed one space
sloosvel d43c473
...
sloosvel 448dc12
Merge remote-tracking branch 'origin/main' into dev_multimodel_ensemble
sloosvel 2665374
Adapted docstring of multi_model_statistic functions
schlunma File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.