Skip to content

a parameter has one shape, while Calliope lets the data decide whether a limit is per technology, per node or per group #775

Description

@FBumann

Prompt: "Let’s add one parent issue for caliope and file focused issues for individual topics or link existing ones."

Note

The following content was generated by AI.

Calliope reads annual_flow_max and net_import_share at whatever shape the data gives. A mathspec parameter has one declared shape. The recommendation: refuse this by design, and add a row to limits.md that says to declare one parameter per shape.

Case, why refuse, what to change

Case. In Calliope v0.7.0, annual_energy_balance.yaml reads annual_flow_max per technology, per node, and over a group. net_import_share.yaml does the same with its share. The data decides which shape applies. The port in #770 declares one shape each. The group row reads a separate scalar, annual_flow_max_group, and net_import_share is one number.

Why refuse. A shape that the data decides is a declaration that depends on the data. limits.md already refuses "declarations that depend on the data", because to_spec could then no longer read the file without the data. A parameter per shape states the same model with the shape visible in the file. The port's form is the correct one, not a workaround.

What to change.

If a maintainer sees a case that one parameter per shape cannot state, that case reopens the question.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: data contractWhat a file guarantees about the data it bindsdesign: scopeIs this the language's business at all? Against #30 and ceiling.md

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions