primap-community/primap2

CSG: next steps

Opened this issue · 1 comments

Some possible steps for the CSG development. Grouped in one issue for now. they can be split into seperate issues when we start working on them.

  • Entity selection: currently there is no way to specify the entity in the priority_definition and strategy_definition. We could use different definitions for different entities, but this would lead to definitions which are mostly identical except for some special cases especially fro the strategy_definition. Thus I think it would be great to enable entity specification in the definitions.
  • Numerical operations: To enable purely numerical operations into the csg process (interpolation, extrapolation) we could add special tags in the definitions and special filling strategies. This would enable the final numerical extrapolation and interpolation in the CSG for simple cases (all cases in current PRIMAP-hist). It would also help with some of the current exception cases where we use numerical methods to help with matching of inconsistent data. However, more advanced extrapolation methods, e.g. using proxy data can not be implemented using the CSG.
  • Wrapper: build a wrapper function for the csg, that handles country and gas basket aggregation, can add regions, handles filling of priority coordinates etc. Most functionality already exists in the primap2 ecosystem but needs to be included into primap2 with proper tests etc.
  • Small regression test: test with a few time-series which present interesting cases, which is fast to run and can go into CI and normal test suite
  • Larger regression test: test with multiple time-series, comparable to PRIMAP-hist (run only on demand not in CI)
  • Filling algorithms: test basic filling algorithms and develop more advanced filling strategies based on the results

Thus I think it would be great to enable entity specification in the definitions.

Agreed, I will look into it today.

numerical operations

I think it would be great to talk a bit about what is needed there and how to implement it.

wrapper

I think the best strategy here is to write the code that does everything which needs to be done for primap-hist first in one big notebook or function, then see what we can pull out into separate functions.