Skip to content

Reporting#

One of the base fragments of Calliope in fragments. Calliope's postprocessed results: capacity factors, total generation and levelised costs. Every entry is reported, so none of it is in the math, and a quotient may divide by a variable.

dimensions:
  nodes:
    description: Calliope's `nodes` — the places technologies stand at
  techs:
    description: Calliope's `techs` — technologies
  carriers:
    description: Calliope's `carriers` — energy and commodity carriers
  timesteps:
    description: Calliope's `timesteps` — time steps, in order
    dtype: datetime
  costs:
    description: Calliope's `costs` — cost classes, such as monetary and CO2

given:
  parameters:
    timestep_resolution: { dims: [timesteps] }
    timestep_weights: { dims: [timesteps] }
  variables:
    flow_cap: { dims: [nodes, techs, carriers] }
    flow_out: { dims: [nodes, techs, carriers, timesteps] }
    flow_export: { dims: [nodes, techs, carriers, timesteps] }
  expressions:
    cost: { dims: [nodes, techs, costs] }

expressions:
  capacity_factor:
    description: "`capacity_factor` — the share of its flow capacity a technology puts out in a time step"
    expression: flow_out / (flow_cap * timestep_resolution)
  systemwide_capacity_factor:
    description: "`systemwide_capacity_factor` — the share of its flow capacity a technology puts out over every node and time step"
    expression: >-
      sum(flow_out * timestep_weights, over=[nodes, timesteps])
      / (sum(flow_cap, over=nodes) * sum(timestep_resolution * timestep_weights, over=timesteps))
  total_generation:
    description: >-
      `total_generation` — outflow over every node and time step. Calliope
      weights only the export, as written here
    expression: sum(flow_out + flow_export * timestep_weights, over=[nodes, timesteps])
  systemwide_levelised_cost:
    description: "`systemwide_levelised_cost` — a technology's cost per unit of what it generates, over every node"
    expression: sum(cost, over=nodes) / total_generation
  total_levelised_cost:
    description: "`total_levelised_cost` — the system's cost per unit of a carrier generated"
    expression: sum(cost, over=[nodes, techs]) / sum(total_generation, over=techs)

Sets#

Symbol Meaning
\(\mathcal{N}\) index \(n\) — nodes — Calliope's nodes — the places technologies stand at
\(\mathcal{I}\) index \(i\) — techs — Calliope's techs — technologies
\(\mathcal{C}\) index \(c\) — carriers — Calliope's carriers — energy and commodity carriers
\(\mathcal{T}\) index \(t\) — timesteps — Calliope's timesteps — time steps, in order
\(\mathcal{K}\) index \(k\) — costs — Calliope's costs — cost classes, such as monetary and CO2

Given#

Symbol Meaning
\(\mathrm{timestep\_resolution}\) timestep_resolution over \(\mathcal{T}\), data another file declares
\(\mathrm{timestep\_weights}\) timestep_weights over \(\mathcal{T}\), data another file declares
\(\mathit{flow\_cap}\) flow_cap over \(\mathcal{N} \times \mathcal{I} \times \mathcal{C}\)
\(\mathit{flow\_out}\) flow_out over \(\mathcal{N} \times \mathcal{I} \times \mathcal{C} \times \mathcal{T}\)
\(\mathit{flow\_export}\) flow_export over \(\mathcal{N} \times \mathcal{I} \times \mathcal{C} \times \mathcal{T}\)
\(\mathit{cost}\) cost over \(\mathcal{N} \times \mathcal{I} \times \mathcal{K}\), an expression another file defines

Definitions#

Symbol Meaning
\(\mathit{capacity\_factor}\) capacity_factor over \(\mathcal{N} \times \mathcal{I} \times \mathcal{C} \times \mathcal{T}\) — capacity_factor — the share of its flow capacity a technology puts out in a time step
\(\mathit{systemwide\_capacity\_factor}\) systemwide_capacity_factor over \(\mathcal{I} \times \mathcal{C}\) — systemwide_capacity_factor — the share of its flow capacity a technology puts out over every node and time step
\(\mathit{total\_generation}\) total_generation over \(\mathcal{I} \times \mathcal{C}\) — total_generation — outflow over every node and time step. Calliope weights only the export, as written here
\(\mathit{systemwide\_levelised\_cost}\) systemwide_levelised_cost over \(\mathcal{I} \times \mathcal{C} \times \mathcal{K}\) — systemwide_levelised_cost — a technology's cost per unit of what it generates, over every node
\(\mathit{total\_levelised\_cost}\) total_levelised_cost over \(\mathcal{C} \times \mathcal{K}\) — total_levelised_cost — the system's cost per unit of a carrier generated

Definitions#

capacity_factor

\[ \mathit{capacity\_factor}_{n,i,c,t} = \frac{\mathit{flow\_out}_{n,i,c,t}}{\mathit{flow\_cap}_{n,i,c} \cdot \mathrm{timestep\_resolution}_{t}} \qquad \forall\, n \in \mathcal{N},\ i \in \mathcal{I},\ c \in \mathcal{C},\ t \in \mathcal{T} \]

systemwide_capacity_factor

\[ \mathit{systemwide\_capacity\_factor}_{i,c} = \frac{\sum_{n \in \mathcal{N},\ t \in \mathcal{T}} \mathit{flow\_out}_{n,i,c,t} \cdot \mathrm{timestep\_weights}_{t}}{\left( \sum_{n \in \mathcal{N}} \mathit{flow\_cap}_{n,i,c} \right) \cdot \left( \sum_{t \in \mathcal{T}} \mathrm{timestep\_resolution}_{t} \cdot \mathrm{timestep\_weights}_{t} \right)} \qquad \forall\, i \in \mathcal{I},\ c \in \mathcal{C} \]

total_generation

\[ \mathit{total\_generation}_{i,c} = \sum_{n \in \mathcal{N},\ t \in \mathcal{T}} \left( \mathit{flow\_out}_{n,i,c,t} + \mathit{flow\_export}_{n,i,c,t} \cdot \mathrm{timestep\_weights}_{t} \right) \qquad \forall\, i \in \mathcal{I},\ c \in \mathcal{C} \]

systemwide_levelised_cost

\[ \mathit{systemwide\_levelised\_cost}_{i,c,k} = \frac{\sum_{n \in \mathcal{N}} \mathit{cost}_{n,i,k}}{\mathit{total\_generation}_{i,c}} \qquad \forall\, i \in \mathcal{I},\ c \in \mathcal{C},\ k \in \mathcal{K} \]

total_levelised_cost

\[ \mathit{total\_levelised\_cost}_{c,k} = \frac{\sum_{n \in \mathcal{N},\ i \in \mathcal{I}} \mathit{cost}_{n,i,k}}{\sum_{i \in \mathcal{I}} \mathit{total\_generation}_{i,c}} \qquad \forall\, c \in \mathcal{C},\ k \in \mathcal{K} \]