support runoff normalization for partial years with annual normalization data#434
Open
support runoff normalization for partial years with annual normalization data#434
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR enhances the runoff normalization function to support partial years by applying proportional scaling based on available data, while issuing a warning about the strong assumption of even runoff distribution.
- Improved handling of date ranges for runoff and normalization data
- Added partial year normalization logic with proportional scaling and a warning message
- Updated reindexing to use a dynamic coordinate based on the altered dimension
Files not reviewed (1)
- RELEASE_NOTES.rst: Language not supported
Comments suppressed due to low confidence (3)
atlite/convert.py:1026
- [nitpick] Ensure that reindexing using the dynamic dimension (dim) aligns with the intended coordinate, especially if the original 'countries' coordinate was explicitly required in other parts of the code.
).reindex({dim: result.coords[dim]})
atlite/convert.py:1010
- [nitpick] Verify that the proportional scaling logic correctly handles all edge cases, such as when the overlap period almost covers a full year, to ensure the computed fraction accurately reflects the intended partial data scaling.
fraction = (end - start).total_seconds() / ((year_end - year_start).total_seconds())
atlite/convert.py:965
- [nitpick] Consider renaming 'result_time' to a more descriptive name like 'time_index' to more clearly indicate that this variable represents a DatetimeIndex.
result_time = pd.DatetimeIndex(result.coords["time"].values)
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Changes proposed in this Pull Request
It makes
cutout.runoff(normalize_using_yearly=...)more lenient by supporting proportional scaling of partially represented years in thecutout, assuming even distribution of runoff throughout the year. In this case, a warning is printed due to the strong assumption.Relevant for PyPSA/pypsa-eur#1613 (e.g. July-June meteorological years, in case the original cutout does not span Jan-Dec for each year included)
This also means we can include hydro in the CI test of PyPSA-Eur, which uses only a week of weather data.
Checklist
doc.[] Unit tests for new features were added (if applicable).[] Newly introduced dependencies are added toenvironment.yaml,environment_docs.yamlandsetup.py(if applicable).doc/release_notes.rstof the upcoming release is included.