Giter Site home page Giter Site logo

Region hard-coded about remind HOT 8 CLOSED

remindmodel avatar remindmodel commented on July 29, 2024
Region hard-coded

from remind.

Comments (8)

Renato-Rodrigues avatar Renato-Rodrigues commented on July 29, 2024

Anything with _regi in the set name is not really a hard coded region.
This is a set subgroup created dynamically that will group any subregions that aggregated together is equal to a H12 region. As far as I know, H12 should be our lower level of aggregation for REMIND regions, so they simply act as subsets for H12 specific code.

So, for example:

  • for H12 -> EUR_regi = EUR
  • for REMIND-EU -> EUR_regi = (ENC,EWN,ECS,ESC,ECE,FRA,DEU,UKI,ESW).
  • and for any other region aggregation used in the future, ex. a potential full split of EU countries, EUR_regi will be calculated dynamically in R and updated in the gams code to correspond to the regions that sum up to the original EU region.

One could move the code for the biomass tax to the regipol module instead of the taxes module if you don't want references that use this subset in the tax modules. However, I think this could be counterproductive as it would just put related code in two different modules instead of concentrating it on the same module.

from remind.

giannou avatar giannou commented on July 29, 2024

I thought so, thanks. Where is the part about H12 being the lowest level of aggregation for REMIND documented? I have managed to generate the input data for a 2-region world (USA and rest) and want to start a REMIND run with it now so I can finally have a fulldata.gdx with only 2 regions that would increase the speed of our output tests.

If H12 is the lowest level of aggregation for REMIND then the present issue is not a bug, by the way.

from remind.

Renato-Rodrigues avatar Renato-Rodrigues commented on July 29, 2024

on the H12 being the lowest level of aggregation for REMIND, it was just an assumption that I made based on the mappings that we had and the way we create input data for fossils and other related data. I don't think there is actually a documentation saying expressly that.

I can see the problem with creating a test version with less than 12 regions. I am afraid you would need to create an exception in the prepare_and_run script to create this region subset with empty elements instead, or use europe as one of your two regions instead. I would go for the latter as we have much more region specific coding in Europe than in USA, and it would be more justifiable to test EUR because of this reason.

from remind.

giannou avatar giannou commented on July 29, 2024

ok I see. So you reckon a constellation (EUR, rest of world) would work?

from remind.

Renato-Rodrigues avatar Renato-Rodrigues commented on July 29, 2024

In the gams part of the code it should work, as this subset was introduced to deal with REMIND-EU specific code changes and it is only used so far, as far as I know, for EUR_regi.

Even so, you are in uncharted waters. If there is any error related with that on gams, just let me know and I can try to help figuring out a work around.

from remind.

giannou avatar giannou commented on July 29, 2024

Ok changing to (EUR, rest) worked*, but I think it'd be nice if the model had more flexibility in the regional resolution.

*: to make it work I had to delete these two lines

pm_ppfen_shares(t,"REF","enhi","fehei") = 0.3;

pm_ppfen_shares(t,"REF","enhi","fehei")$(t.val le 2030) = 0.50 - (0.20/25)*(t.val-2005);

(so there are still some hard-coded regions after all)

from remind.

Renato-Rodrigues avatar Renato-Rodrigues commented on July 29, 2024

In order to avoid those lines to cause problems in the future they should be written like this:

pm_ppfen_shares(t,regi,"enhi","fehei")$(sameas(regi,"REF")) = 0.3; 
pm_ppfen_shares(t,regi,"enhi","fehei")$(t.val le 2030 and (sameas(regi,"REF"))) = 0.50 - (0.20/25)*(t.val-2005); 

I can commit this change once I finish working in other stuff. This is, if you don't beat me to do it before. :)

I agree that we should avoid region specific conditions in the code. People should dedicate some time to check where they appear and think about alternative formulations, additional input data, or other alternatives.
Although I show as the last person that changed those lines, for many cases like this one I just rewrote previous code to be compatible with the current REMIND formulation or more up to date data.

from remind.

giannou avatar giannou commented on July 29, 2024

solved with 867c0da

from remind.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.