Example notebook
[1]:
import matplotlib.pyplot as plt
from pommes import test_case_path
from pommes.io.build_input_dataset import (
build_input_parameters,
read_config_file,
)
from pommes.io.save_solution import save_solution
from pommes.model.build_model import build_model
from pommes.model.data_validation.dataset_check import check_inputs
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[1], line 3
1 import matplotlib.pyplot as plt
----> 3 from pommes import test_case_path
4 from pommes.io.build_input_dataset import (
5 build_input_parameters,
6 read_config_file,
7 )
8 from pommes.io.save_solution import save_solution
File /opt/conda/lib/python3.13/site-packages/pommes/__init__.py:12
5 from pommes.io.build_input_dataset import (
6 build_input_parameters,
7 read_config_file,
8 )
9 from pommes.io.calculate_summaries import (
10 generate_summary_dataframes_from_results,
11 )
---> 12 from pommes.io.save_solution import save_solution
13 from pommes.model.build_model import build_model
14 from pommes.model.data_validation.dataset_check import check_inputs
File /opt/conda/lib/python3.13/site-packages/pommes/io/save_solution.py:11
9 from linopy import Model
10 from xarray import Dataset
---> 11 import hdf5plugin
13 logger = logging.getLogger(__name__)
16 def save_solution(
17 model: Model,
18 output_folder: str,
(...) 23 model_parameters: Dataset | None = None,
24 ) -> None:
ModuleNotFoundError: No module named 'hdf5plugin'
[2]:
scenario = "ref"
suffix = "_02161113"
output_folder = f"{test_case_path}/output/{scenario}{suffix}"
solver = "highs" # ["gurobi", "xpress", "highs", "mosek"]
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[2], line 4
1 scenario = "ref"
2 suffix = "_02161113"
----> 4 output_folder = f"{test_case_path}/output/{scenario}{suffix}"
5 solver = "highs" # ["gurobi", "xpress", "highs", "mosek"]
NameError: name 'test_case_path' is not defined
[3]:
config = read_config_file(file_path=test_case_path / "config.yaml")
model_parameters = build_input_parameters(config)
model_parameters = check_inputs(model_parameters)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[3], line 1
----> 1 config = read_config_file(file_path=test_case_path / "config.yaml")
3 model_parameters = build_input_parameters(config)
4 model_parameters = check_inputs(model_parameters)
NameError: name 'read_config_file' is not defined
[4]:
model = build_model(model_parameters)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[4], line 1
----> 1 model = build_model(model_parameters)
NameError: name 'build_model' is not defined
[5]:
model.solve(solver_name=solver)
save_solution(
model=model,
output_folder=output_folder,
model_parameters=model_parameters,
)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[5], line 1
----> 1 model.solve(solver_name=solver)
3 save_solution(
4 model=model,
5 output_folder=output_folder,
6 model_parameters=model_parameters,
7 )
NameError: name 'model' is not defined
[6]:
solution = model.solution
print(model.solution)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 1
----> 1 solution = model.solution
2 print(model.solution)
NameError: name 'model' is not defined
[7]:
dual = model.dual
print(dual)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[7], line 1
----> 1 dual = model.dual
2 print(dual)
NameError: name 'model' is not defined
[8]:
prices = dual.operation_adequacy_constraint
df = prices.to_dataframe(name="value").reset_index()
print(df)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[8], line 1
----> 1 prices = dual.operation_adequacy_constraint
2 df = prices.to_dataframe(name="value").reset_index()
3 print(df)
NameError: name 'dual' is not defined
[9]:
unique_resources = df["resource"].unique()
unique_years = df["year_op"].unique()
unique_areas = df["area"].unique()
colors = plt.cm.tab10(range(len(unique_areas)))
area_color_map = {area: colors[i] for i, area in enumerate(unique_areas)}
fig, axes = plt.subplots(
len(unique_resources),
len(unique_years),
figsize=(15, 10),
sharex=True,
sharey="row",
)
for i, resource in enumerate(unique_resources):
for j, year in enumerate(unique_years):
ax = axes[i, j]
subset = df[(df["resource"] == resource) & (df["year_op"] == year)]
for area in unique_areas:
area_data = subset[subset["area"] == area]
if not area_data.empty:
ax.plot(
area_data["hour"],
area_data["value"],
marker="o",
color=area_color_map[area],
)
if i == 0:
ax.set_title(f"Year: {year}")
if j == 0:
ax.set_ylabel(f"Resource: {resource}")
if i == len(unique_resources) - 1:
ax.set_xlabel("Hour")
legend_elements = [
plt.Line2D(
[0],
[0],
marker="o",
color=color,
linestyle="",
markersize=8,
label=area,
)
for area, color in area_color_map.items()
]
fig.legend(
handles=legend_elements,
loc="upper center",
ncol=len(unique_areas),
title="Area",
)
plt.tight_layout(rect=(0, 0, 1, 0.95))
plt.show()
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[9], line 1
----> 1 unique_resources = df["resource"].unique()
2 unique_years = df["year_op"].unique()
3 unique_areas = df["area"].unique()
NameError: name 'df' is not defined
[ ]: