message_ix icon indicating copy to clipboard operation
message_ix copied to clipboard

Add a module for implementing (sub-annual) time slices

Open glatterf42 opened this issue 1 year ago • 6 comments

This PR supersedes iiasa/message-ix-models#197 as @khaeru suggested this tool might be better placed in message_ix.

@behnam-zakeri Please take a look at the changes. Several things come to mind before merging this:

  • [ ] Use the existing logging functionality instead of printing to stdout
  • [ ] Write a bit of documentation on how to use this tool (e.g. via a README.rst as was done for add_year)
  • [ ] Write tests for this new functionality.

How to review

Check the above boxes plus:

  • Read the diff and note that the CI checks all pass.
  • Run a specific code snippet or command and check the output.
  • Build the documentation and look at a certain page.
  • Ensure that changes/additions are self-documenting, i.e. that another developer (someone like the reviewer) will be able to understand what the code does in the future.

PR checklist

  • [ ] Continuous integration checks all ✅
  • [ ] Add or expand tests; coverage checks both ✅
  • [ ] Add, expand, or update documentation.
  • [x] Update release notes.

glatterf42 avatar Jun 14 '24 12:06 glatterf42

Codecov Report

Attention: Patch coverage is 0% with 255 lines in your changes missing coverage. Please review.

Project coverage is 90.3%. Comparing base (1125579) to head (baeb7f8). Report is 39 commits behind head on main.

Files with missing lines Patch % Lines
message_ix/tools/add_timeslice/add_timeslice.py 0.0% 255 Missing :warning:

:exclamation: There is a different number of reports uploaded between BASE (1125579) and HEAD (baeb7f8). Click for more details.

HEAD has 133 uploads less than BASE
Flag BASE (1125579) HEAD (baeb7f8)
151 18
Additional details and impacted files
@@           Coverage Diff           @@
##            main    #852     +/-   ##
=======================================
- Coverage   95.6%   90.3%   -5.4%     
=======================================
  Files         46      47      +1     
  Lines       4333    4588    +255     
=======================================
  Hits        4143    4143             
- Misses       190     445    +255     
Files with missing lines Coverage Δ
message_ix/tools/add_timeslice/add_timeslice.py 0.0% <0.0%> (ø)

codecov[bot] avatar Jun 14 '24 12:06 codecov[bot]

In the MESSAGE meeting just now, @behnam-zakeri mentioned that https://github.com/iiasa/message_ix/pull/680 might be related.

glatterf42 avatar Oct 17 '24 07:10 glatterf42

@glatterf42 Related to the test, I have added an example of Westeros model via the Excel file, which is used by the code to create a Westeros scenario with time slices, exactly similar to the one we have in our published tutorials (Westeros_seasonality.ipynb). So, the only part missing will be to check if the output of these two models are the same or not.

  1. Running the new code with input data from Westeros_baseline scenario and config data from Excel. [done]
  2. Loading an already existing or running Westeros_Seasonality scenario (can be done easily).
  3. Comparing the results of 1 and 2, e.g.:
  • asserting if "time" related sets are the same ("time", "duration_time")
  • asserting OBJ.
  • asserting ACT of coal_ppl or wind_ppl in different times (winter or summer).

behnam-zakeri avatar Oct 24 '24 11:10 behnam-zakeri

Unfortunately, neither @behnam-zakeri nor me have enough time to finish this PR in time for the 3.10 milestone. We hope this will be better for 3.11, though.

glatterf42 avatar Jan 15 '25 13:01 glatterf42

Not a lot seems to be missing here (mainly tests), but I don't think I'll have time to finish this before my leave. So I'm not sure when this will finally be nudged over the finish line.

glatterf42 avatar Nov 28 '25 18:11 glatterf42