Data Specification

This section explains the structure in which data sets must be supplied in order for HydrOGEnMod.jl to generate the underlying model data. In total, there must exist 8 subfolders that each contain several data sheets on specific parts of the hydrogen value chain in the form of csv files.

Any provided dataset must be structured in the following way:

datafile
├── conversion
│   ├── Capacities.csv
│   ├── Conversion_Data.csv
│   └── Repurposing.csv
├── demand
│   └── Reference_Data.csv
├── general_data
│   ├── Commodities.csv
│   ├── Demand_Blocks.csv
│   ├── Input_Blocks.csv
│   ├── Inputs.csv
│   ├── Market_Power.csv
│   ├── Nodes.csv
│   ├── Origins.csv
│   ├── Temporal_Preferences.csv
│   ├── Timesteps.csv
│   └── Years.csv
├── inputs
│   ├── Availability_Factors.csv
│   ├── Capacity_Expansion_Limits.csv
│   ├── Cost_Parameters.csv
│   ├── Exogenous_Capacities.csv
│   ├── Investment_Cost_Parameters.csv
│   └── Lifetimes.csv
├── production
│   ├── Capacity_Expansion_Limits.csv
│   ├── Exogenous_Capacities.csv
│   └── Technology.csv
├── storage
│   ├── Capacities.csv
│   ├── Losses.csv
│   ├── Repurposing_Data.csv
│   └── Technologies.csv
├── trade
│   ├── Sanctions.csv
│   └── Specific_Market_Power.csv
└── transport
    ├── Commodity_Data.csv
    ├── Exogenous_Pipelines.csv
    ├── Pipeline_Adjacency.csv
    ├── Pipeline_Distances.csv
    ├── Repurposing_Data.csv
    ├── Shipping_Adjacency.csv
    └── Shipping_Distances.csv

The following table gives an overview of their contents.

Data TypeDirectory Name
Conversion Datadatafile/conversion
Demand Datadatafile/demand
General Datadatafile/general_data
Input Datadatafile/inputs
Production Datadatafile/production
Storage Datadatafile/storage
Trade Datadatafile/trade
Transport Datadatafile/transport

Conversion Data

File PathExplanation
datafile/conversion/Capacities.csvThis dataset specifies conversion capacities on a time step basis (i.e. the conversion capacity in one hour/month/season etc., depending upon the setting). For every Node, and for every technology from Input Commodity to Output Commodity, the capacity during the corresponding year is given.
datafile/conversion/Conversion_Data.csvThis dataset specifies operational and investment cost, as well as lifetimes and factor intensities per conversion technology from Input Commodity to Output Commodity. Factor intensity implies, how much energy equivalent of one commodity is required to produce one energy equivalent of output.
datafile/conversion/Repurposing.csvThis dataset specifies unit repurposing costs from one technology to another. In addition, a conversion factor is included, accounting for energy specific differences in repurposing.

Demand Data

Inverse demand functions are assumed to follow a block-wise linear functional form:

\[ \tilde{P}^{T \rightarrow D}_{ncbmy}(\sum_{o \in \mathcal{O}} \sum_{t \in \mathcal{T}}q^{T \rightarrow D}_{tncbomy}) = \alpha^{D}_{ncbmy} + \beta^{D}_{ncbmy} (\sum_{o \in \mathcal{O}} \sum_{t \in \mathcal{T}}q^{T \rightarrow D}_{tncbomy}) \]

The parameters $\alpha^{D}_{ncbmy}, \beta^{D}_{ncbmy}$ from the mathematical formulation are subsequently defined around a reference point with an assumed price elasticity. This implies, that inverse demand curves are uniquely defined by supplying a set of reference quantity and price, as well as a given price elasticity. These data are used in the demand data set instead of directly computed $\alpha^{D}_{ncbmy}, \beta^{D}_{ncbmy}$. For ease of notation, the following equation will be used subsequently to abbreviate the total quantity consumed of commodity $c$ in block $b$ during time step $m$ of year $y$ in node $n$:

\[ Q_{ncbmy} = \sum_{o \in \mathcal{O}} \sum_{t \in \mathcal{T}}q^{T \rightarrow D}_{tncbomy} \]

The partial derivative of the inverse demand with respect to total supply quantity is:

\[ \frac{\partial\tilde{P}^{T \rightarrow D}_{ncbmy}(Q_{ncbmy})}{\partial Q_{ncbmy} } = \beta^{D}_{ncbmy}\]

The price elasticity at a reference point defined by a reference price $\bar{P}_{ncbmy}$ and a reference quantity $\bar{Q}_{ncbmy}$ can be stated as:

\[ \epsilon^{\tilde{P}}_{ncbmy} = \frac{\partial Q_{ncbmy}}{\partial \tilde{P}^{T \rightarrow D}_{ncbmy} (Q_{ncbmy})} \frac{ \bar{P}_{ncbmy}} {\bar{Q}_{ncbmy}}\]

Rearranging yields:

\[ \frac{\partial \tilde{P}^{T \rightarrow D}_{ncbmy} (Q_{ncbmy})}{\partial Q_{ncbmy}} = \frac{ \bar{P}_{ncbmy}} {\bar{Q}_{ncbmy}} \frac{1}{\epsilon^{\tilde{P}}_{ncbmy} }\]

Which in turn yields:

\[ \beta^{D}_{ncbmy} = \frac{ \bar{P}_{ncbmy}} {\bar{Q}_{ncbmy}} \frac{1}{\epsilon^{\tilde{P}}_{ncbmy} }\]

Inserting this into the inverse demand function, we get:

\[ \alpha^{D}_{ncbmy} = \bar{P}_{ncbmy} - \frac{ \bar{P}_{ncbmy}}{\epsilon^{\tilde{P}}_{ncbmy} }\]

File PathExplanation
datafile/demand/Reference_Data.csvThis dataset specifies reference consumption, prices and elasticities per node, commodity, timestep and demand block to calculate $\alpha^{D}_{ncbmy}, \beta^{D}_{ncbmy}$ from the mathematical formulation.

General Data

This dataset provides an overarching structure. Most notably, it determines which options from the datasets are actually included into the model data.

Warning

If any element is not listed in this dataset, it will not be utilized by the model, despite being present in other data. This allows to quickly turn on/off model features without changing the fundamental data structure.

File PathExplanation
datafile/general_data/Commodities.csvLists all modeled commodities.
datafile/general_data/Demand_Blocks.csvLists all modeled demand blocks.
datafile/general_data/Input_Blocks.csvLists all modeled input blocks.
datafile/general_data/Inputs.csvLists all modeled inputs.
datafile/general_data/Market_Power.csvLists conjectural variation factor for all commodities. 0 implies perfect competition, 1 implies Nash-Cournot.
datafile/general_data/Nodes.csvLists all modeled nodes. Each node comes with a regional specific cost factor, a model region and a mapping to a nodal (domestic) trader.
datafile/general_data/Origins.csvLists all modeled origins.
datafile/general_data/Temporal_Preferences.csvIndicates the assumed discount rate.
datafile/general_data/Timesteps.csvLists all time steps within a year, including their weight.
datafile/general_data/Years.csvLists all modeled years, including the step size between modeled years.

Input Data

File PathExplanation
datafile/inputs/Availability_Factors.csv)Lists input capacity availabilities per input, node, and block.
datafile/inputs/Capacity_Expansion_Limits.csv)Lists input procurement capacity expansion limits per input, node, block and year.
datafile/inputs/Cost_Parameters.csv)Lists input procurement operational cost per input, node, block and year.
datafile/inputs/Exogenous_Capacities.csv)Lists exogenous input procurement capacities per input, node, block and year.
datafile/inputs/Investment_Cost_Parameters.csv)Lists input procurement investment cost per input, node, block and year.
datafile/inputs/Lifetimes.csv)Lists lifetimes of input procurement technologies

Production Data

File PathExplanation
datafile/production/Capacity_Expansion_Limits.csvLists production capacity expansion limit per node, output, origin and year.
datafile/production/Exogenous_Capacities.csvLists exogenous production capacities per node, output, origin and year.
datafile/production/Technology.csvLists operational and investment cost for production, as well as factor intensities, origins and lifetimes per output.

Storage Data

File PathExplanation
datafile/storage/Capacities.csvLists exogenous storage capacity as well as capacity expansion limits.
datafile/storage/Losses.csvLists losses for storing between time steps for different commodities.
datafile/storage/Repurposing_Data.csvLists costs for different repurposing options, including a repurposing factor.
datafile/storage/Technologies.csvLists injection, extraction and investment costs, as well as storage lifetimes for different commodities.

Trade Data

File PathExplanation
datafile/trade/Sanctions.csvLists traders' yearly sales limits per node, commodity and origin. Can be used to prohibit sales from specific production origin or to include geopolitical aspects.
datafile/trade/Specific_Market_Power.csvLists exertion of market power by specific traders diverging from the default option per commodity.

Transport Data

Commodities are split into shipping-based and pipeline-based. For piped commodities, an explicit investment into specific routes must be made, while shipping-investment is assumed to be flexible, i.e. only distance dependent charges apply.

File PathExplanation
datafile/transport/Commodity_Data.csvProvides commodity specific data such as investment and operational cost per kkm, as well as asset lifetime. In addition, it is specified by which mode of transport a commodity must flow.
datafile/transport/Exogenous_Pipelines.csvIndicates exogenous pipeline capacities between any two arcs.
datafile/transport/Pipeline_Adjacency.csvIndicates if pipelines between two arcs are possible. This translates into the set $\mathcal{AC}$ from the mathematical description.
datafile/transport/Pipeline_Distances.csvIndicates the transport distance for piped commodities.
datafile/transport/Repurposing_Data.csvIndicates costs per kkm to repurpose capacity from one commodity to another on any arc.
datafile/transport/Shipping_Adjacency.csvIndicates if shipping between two arcs is possible. This translates into the set $\mathcal{AC}$ from the mathematical description.
datafile/transport/Shipping_Distances.csvIndicates the transport distance for shipped commodities.