Skip to content
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

Support payloads for Multi Criteria Modeling #158

Open
gidden opened this issue Jan 31, 2019 · 3 comments
Open

Support payloads for Multi Criteria Modeling #158

gidden opened this issue Jan 31, 2019 · 3 comments

Comments

@gidden
Copy link
Member

gidden commented Jan 31, 2019

We would like to support porting message_ix.Scenario objects into appropriate payloads for running multi criteria analyses with the IIASA MCMA tool. To do so requires a number of steps:

  1. Develop a library of customizeable optimization criteria

For example, one existing criteria is

    CUMGHG =E=
    SUM( (node,type_emission,type_tec,type_year) $ (SAMEAS(type_emission, 'GHGs') AND SAMEAS(type_year,'cumulative')),
         SUM( (year_all2,emission)$( cat_year(type_year,year_all2) AND cat_emission(type_emission,emission) ),
        duration_period(year_all2) * emission_scaling(type_emission,emission) *
            ( EMISS(node,emission,type_tec,year_all2)$( year(year_all2) )
                + historical_emission(node,emission,type_tec,year_all2) )
      )
    / SUM(year_all2$( cat_year(type_year,year_all2) ), duration_period(year_all2) )
       )

This could be updated to

def cumulative_emissions(type_emission):
return
"""
    CUM{type_emission} =E=
    SUM( (node,type_emission,type_tec,type_year) $ (SAMEAS(type_emission, '{type_emission}') AND SAMEAS(type_year,'cumulative')),
         SUM( (year_all2,emission)$( cat_year(type_year,year_all2) AND cat_emission(type_emission,emission) ),
        duration_period(year_all2) * emission_scaling(type_emission,emission) *
            ( EMISS(node,emission,type_tec,year_all2)$( year(year_all2) )
                + historical_emission(node,emission,type_tec,year_all2) )
      )
    / SUM(year_all2$( cat_year(type_year,year_all2) ), duration_period(year_all2) )
       )
""".format(type_emission=type_emission)

Initial entries could be seeded with input from @volker-krey, @adrivinca, @scparkinson, @MarekMakowski and others.

  1. generate a gdx file from an existing scenario (this can be done using available tools in the solve function)

  2. generate a new gms file filled with criteria definitions and a "config" file. Existing config file is below:

CUMCOST
CUMINV

1000 rows
1000 cols

@MarekMakowski should advise on how best to do this automatically.

  1. zip all relevant files
@khaeru
Copy link
Member

khaeru commented Feb 6, 2019

Something to consider: could parts of this be handled in the postproc/reporting structure?

@MarekMakowski
Copy link

MarekMakowski commented Feb 6, 2019

@khaeru: such an approach would not work because the variables representing criteria have to be specified in the core model subject to multi-criteria optimization.

@MarekMakowski
Copy link

The note.pdf provides details and suggestions (it was also uploaded to the sharepoint dir Volker created in January: documents/projects/messga_ix-mcma; there are more related docs in this dir).
note.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants