Usage#
Installation#
An important prerequisite is to have [GAMS](https://www.gams.com/) installed on your system, as this packages calls certain GAMS commands through python. To use BackboneTools, install it using pip:
(.venv) $ pip install backbonetools
Examples of usage#
Very easy example#
from backbonetools.io import BackboneResult
result = BackboneResult('someBackboneOutputFile.gdx')
# any symbol is available as DataFrame
gen_df = result.r_gen_gnuft()
gen_df.head()
This yields something like this:
grid |
node |
unit |
f |
t |
Val |
|
|---|---|---|---|---|---|---|
0 |
elec |
AT0 0 |
AT0 0 CCGT |
f00 |
6 |
3295.9 |
1 |
elec |
AT0 0 |
AT0 0 CCGT |
f00 |
7 |
3295.9 |
2 |
elec |
AT0 0 |
AT0 0 CCGT |
f00 |
8 |
3295.9 |
3 |
elec |
AT0 0 |
AT0 0 CCGT |
f00 |
9 |
3295.9 |
4 |
elec |
AT0 0 |
AT0 0 CCGT |
f00 |
10 |
3295.9 |
More detailed explanations of the existing functionalities can be found in the API description.
Calculate full load hours#
backbonetools can easily be used to calculate full load hours of units:
import backbonetools
bb_input = backbonetools.io.inputs.BackboneInput("path_to_input.gdx")
bb_result = backbonetools.io.BackboneResult("path_to_result.gdx")
# get generated energy from result
generation = bb_result.r_gen_gnu().set_index("unit")[["Val"]]
# get invested capacity from result
invested_cap = bb_result.r_invest_unitCount_u().set_index("unit")
# read previously installed capacity from input
p_gnu_io = bb_input.p_gnu_io()
p_gnu_io = p_gnu_io.loc[p_gnu_io["Dim1"] == "elec"]
p_gnu_io = p_gnu_io.loc[p_gnu_io["Dim5"] == "capacity"]
p_gnu_io.set_index("Dim3", inplace=True)
p_gnu_io = p_gnu_io[["Val"]].dropna()
# calculate full load hours
unitname = "PT1 0 solar"
flh = generation.loc[unitname]/(p_gnu_io.loc[unitname] + invested_cap.loc[unitname])