calliope
calliope copied to clipboard
[meta] Update config to better align with typedconfig validation
There's a bunch of changes/improvements that need to be applied to our YAML configuration files so they can be validated with https://github.com/calliope-project/typedconfig.
These include:
- Explicit links (#324)
- Removing file imports in preference of explicitly pointing to a list of techs, locations, etc. files from the main model config (e.g.
techs: ['techs1.yaml', 'techs2.yaml']
) - Reorganise nesting of costs, to have the cost classes as the last key:value pair in defining tech costs (e.g.
costs.energy_cap.monetary: 2
instead ofcosts.monetary.energy_cap
) - Explicitly specify which constraints etc. are completely optional (and if never defined, the model includes nothing related to it)
Just to check, is by solving this #260 also solved the following problem: for constraints of type demand_share_per_timestep_min, when I define a group constraint for the minimum share of one technology over several locations I get the following error: "Invalid constraint expression. The constraint expression resolved to a trivial Boolean (True) instead of a Pyomo object. Please modify your rule to return Constraint.Feasible instead of True." I have three conversion technologies that can meet one type of demand and I want to constrain it that one of the conversion technology need to meet a certain share of demand in all the timesteps. The same issue occurs in versions 0.6.6post1 and 0.6.5 but works completely fine in 0.6.4.
(1), (3), (4) all Fixed in #518. We decided not implement (2) and to stick with our current approach of relatie file imports.