iiasa / iiasa/message_ix

Problems to represent an existing technology

Open
#376 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
150
Forks
178
Avg merge
17h 32m
Merged PRs (30d)
2

Description

Hi everyone. I hope you are doing fine.

I am facing some issues to represente an existing technology. It would be a technology that is already active with unique parameters related to itself.

So this technology has a historical new capacity and it will be installed for the first vintage year, but cannot be expanded.

For instance let's take a model with 2010 as historical and 2015 and 2020 as model horizon

This technology must have as vintage solely 2010, because it cannot be commissioned in the following years.

However if I set it defining only technical lifetime for 2010 the model complaints about technical lifetime definition

The issue is because the model check the technical lifetime for all inv_tec and for the whole model horizon.

I believe it matches an old issue raise by @OFR-IIASA at https://github.com/iiasa/message_ix/issues/137

```
* check that the economic and technical lifetime are defined and consistent for all investment technologies
loop((node,inv_tec,model_horizon)$( map_tec(node,inv_tec,model_horizon) ),
if ( technical_lifetime(node,inv_tec,model_horizon) <= 0 ,
put_utility 'log'/" Error: Technical lifetime not defined for '"node.tl:0"|"inv_tec.tl:0"|"model_horizon.tl:0"' !" ;
check = 1 ;
) ;
) ;
if (check,
abort "There is a problem with the definition of the technical lifetime!" ;
) ;
```

In that case it is not possible to run the model because it demands technical lifetime information for the existing technology for years 2015 and 2020, considering the previous example.

If I try to not set investment parameters for this technology it will not be taken into account into many other equations regarding capacity, then it will not respect the CAPACITY_MAINTENANCE_HIST for example.

I am wondering if there is a work around solution without changing the equations.

All the Best
Fabio A. Diuana

message_ix.__version__
Out[10]: '3.0.2.dev20+g937c247'

ixmp.__version__
Out[7]: '3.0.1.dev44+gddbe600'

Contributor guide

Open the contributing guide

Research direction

The issue identifies the technical_lifetime validation loop and the CAPACITY_MAINTENANCE_HIST-related equations as entry points. Reproduce the example with 2010 as historical and 2015/2020 as the model horizon, then inspect how existing technologies are represented when investment parameters are absent. Done means the behavior and a supported workaround or change are established.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter-notebook
Domain
backend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.