EOPS Example Run¶
This example shows a basic EOPS series simulation.
It also contains two hydraulic couplings, one station joined and one non-station joined.
If licensed feature LTM_OPS_UTJAMNVASS is active, non-station joined coupling will also write additional results showing the hydraulic flow between the connected reservoirs.
[1]:
import os
from pyltmapi import LtmSession, LtmDot
from pathlib import Path
from generate_plots import generate_plots
ltm_core_path = os.environ.get("LTM_CORE_PATH", str(Path("~").expanduser().joinpath("ltm/release/bin/")))
license_file = os.environ.get("LTM_CORE_LICENSE_FILE", str(Path("~").expanduser().joinpath("ltm/ltm-license.dat")))
with LtmSession("ikernel", overwrite_session=True) as session:
session.load(filename="eops.json")
print(session.model.global_settings.model_type)
print(session.model.global_settings.simulation_type)
LtmDot.display_dot_image(session.build_connection_tree())
ModelType.EOPS
SimulationType.Parallel
[2]:
from IPython.display import HTML, display, display_markdown
import logging
from pyltmapi import LtmPlot
logging.basicConfig(level=logging.DEBUG)
import pyltm
import datetime
output_path = ""
with LtmSession(
"ikernel", ltm_core_path=ltm_core_path, overwrite_session=True
) as session:
session.load(filename="eops.json")
gs: pyltm.GlobalSettings = session.model.global_settings
if False:
hp = session.model.get("price_series_main", "HOVEDPRISREKKE.csv")
session.model.remove(hp)
mainprice = pyltm.MainPriceSeries()
start_ts = pyltm.util.parse_timefmt("2024-W01")
timestamps = []
scenarios = []
num_values = 104 * 7 * 24
for n in range(0, num_values):
timestamps.append(start_ts + datetime.timedelta(hours=n))
pass
for s in range(1, 11):
sc = []
for n in range(0, num_values):
sc.append(s + n / 10000)
scenarios.append(sc)
txy = pyltm.Txy()
txy.timestamps = timestamps
txy.scenarios = scenarios
mainprice.series = txy
mainprice.name = "dynpris"
session.model.add(mainprice)
session.model.global_settings.ltm_license_file_path = license_file
validation = session.validate_model()
write_model = session.write_model()
last_rc, results = session.execute_model()
output_path = gs.output_path
if last_rc != 0:
err = results[0]["log_file_contents"]
display_markdown(err)
else:
try:
for a in session.model.areas():
print(a)
for hc in a.hydraulic_couplings():
print(hc)
print(f"hc.station_joined: {hc.station_joined}")
print(
f"hc.have_hydraulic_flow_results: {hc.have_hydraulic_flow_results()}"
)
if hc.station_joined:
pass
LtmPlot.make_generic_plot(
hc.discharge(), f"Discharge '{hc.name}'"
)
LtmPlot.make_generic_plot(
hc.production(), f"Production '{hc.name}'"
)
else:
if hc.have_hydraulic_flow_results():
for rsv in hc.connected_reservoirs():
LtmPlot.make_generic_plot(
rsv.flow(),
f"Hydraulic flow '{hc.name}' - '{rsv.name}'",
)
else:
print(
f"{hc}: Does not have hydraulic exchange/flow results"
)
except Exception as e:
print(e)
pass
generate_plots(session)
DEBUG:LtmApiModule:(ikernel) Session created: "ikernel"
INFO:LtmApiModel:(ikernel) Not deleting output dir (testout_EOPS/), as delete_output_dir: false, and has_generated_output_dir: false
INFO:LtmApiModel:(ikernel) Loading model from file: eops.json
DEBUG:LtmApiModel:(ikernel) Loading model from JSON
DEBUG:LtmApiModel:(ikernel) Parsing model JSON
DEBUG:Validator:(ikernel) Performing model validation
INFO:Validator:(ikernel) Model validation succeeded
DEBUG:LtmApiModel:(ikernel) LtmApiModel::maybe_generate_output_dir: has_generated_output_dir false, generate_output_dir true
INFO:LtmApiModel:(ikernel) LtmApiModel::maybe_generate_output_dir: output_path: /home/sintef/gitlab/pyltmapi/docs/ltm-api/guides/eops/testout_EOPS/2026-11-05-142842.121-EOPS-parallell
INFO:LtmApiModel:(ikernel) Using license file '/home/sintef/ltm/ltm-license.dat'
DEBUG:Validator:(ikernel) Performing model validation
INFO:Validator:(ikernel) Model validation succeeded
INFO:LtmApiModel:(ikernel) Writing model to path /home/sintef/gitlab/pyltmapi/docs/ltm-api/guides/eops/testout_EOPS/2026-11-05-142842.121-EOPS-parallell
DEBUG:LtmApiModel:(ikernel) Creating directory: /home/sintef/gitlab/pyltmapi/docs/ltm-api/guides/eops/testout_EOPS/2026-11-05-142842.121-EOPS-parallell
INFO:InflowHandler:(ikernel) Writing inflow series
DEBUG:AreaHandler:(ikernel) Checking consistency
DEBUG:LtmApiModel:(ikernel) Creating directory: /home/sintef/gitlab/pyltmapi/docs/ltm-api/guides/eops/testout_EOPS/2026-11-05-142842.121-EOPS-parallell
DEBUG:EnergyInflowHandler:(ikernel) Writing energy inflow series
DEBUG:Validator:(ikernel) Performing model validation
INFO:Validator:(ikernel) Model validation succeeded
DEBUG:LtmApiModel:(ikernel) Running command: "eops"
DEBUG:LtmApiModel:(ikernel) Configured stop words: "kritisk,critical,error,feil"
DEBUG:LtmApiModel:(ikernel) Command "eops LtmSystem_EOPS.xml" exited with code 0. Duration: 0.556798019s
INFO:LtmApiModel:(ikernel) Model executed successfully
DEBUG:matplotlib.pyplot:Loaded backend module://matplotlib_inline.backend_inline version unknown.
DEBUG:matplotlib.pyplot:Loaded backend module://matplotlib_inline.backend_inline version unknown.
DEBUG:matplotlib.font_manager:findfont: Matching sans\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0.
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmr10.ttf', name='cmr10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymBol.ttf', name='STIXSizeThreeSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymBol.ttf', name='STIXSizeOneSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBol.ttf', name='STIXGeneral', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansDisplay.ttf', name='DejaVu Sans Display', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-BoldOblique.ttf', name='DejaVu Sans Mono', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmex10.ttf', name='cmex10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBolIta.ttf', name='STIXGeneral', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Oblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 1.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmmi10.ttf', name='cmmi10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Bold.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymBol.ttf', name='STIXSizeFourSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono.ttf', name='DejaVu Sans Mono', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Bold.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 0.33499999999999996
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Oblique.ttf', name='DejaVu Sans Mono', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Bold.ttf', name='DejaVu Sans Mono', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmsy10.ttf', name='cmsy10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBol.ttf', name='STIXNonUnicode', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmb10.ttf', name='cmb10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 1.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBolIta.ttf', name='STIXNonUnicode', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 0.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymReg.ttf', name='STIXSizeFourSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmtt10.ttf', name='cmtt10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFiveSymReg.ttf', name='STIXSizeFiveSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymReg.ttf', name='STIXSizeThreeSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-BoldItalic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymBol.ttf', name='STIXSizeTwoSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmss10.ttf', name='cmss10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Italic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymReg.ttf', name='STIXSizeTwoSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerifDisplay.ttf', name='DejaVu Serif Display', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymReg.ttf', name='STIXSizeOneSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralItalic.ttf', name='STIXGeneral', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneral.ttf', name='STIXGeneral', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniIta.ttf', name='STIXNonUnicode', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUni.ttf', name='STIXNonUnicode', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: Matching sans\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=10.0 to DejaVu Sans ('/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf') with score of 0.050000.
DEBUG:matplotlib.font_manager:findfont: Matching sans\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=12.0.
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmr10.ttf', name='cmr10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymBol.ttf', name='STIXSizeThreeSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymBol.ttf', name='STIXSizeOneSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBol.ttf', name='STIXGeneral', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansDisplay.ttf', name='DejaVu Sans Display', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-BoldOblique.ttf', name='DejaVu Sans Mono', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmex10.ttf', name='cmex10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralBolIta.ttf', name='STIXGeneral', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Oblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 1.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmmi10.ttf', name='cmmi10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Bold.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymBol.ttf', name='STIXSizeFourSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono.ttf', name='DejaVu Sans Mono', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Bold.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 0.33499999999999996
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Oblique.ttf', name='DejaVu Sans Mono', style='oblique', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Bold.ttf', name='DejaVu Sans Mono', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif.ttf', name='DejaVu Serif', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmsy10.ttf', name='cmsy10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBol.ttf', name='STIXNonUnicode', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmb10.ttf', name='cmb10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf', name='DejaVu Sans', style='oblique', variant='normal', weight=700, stretch='normal', size='scalable')) = 1.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniBolIta.ttf', name='STIXNonUnicode', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf', name='DejaVu Sans', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 0.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymReg.ttf', name='STIXSizeFourSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmtt10.ttf', name='cmtt10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizFiveSymReg.ttf', name='STIXSizeFiveSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymReg.ttf', name='STIXSizeThreeSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-BoldItalic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=700, stretch='normal', size='scalable')) = 11.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymBol.ttf', name='STIXSizeTwoSym', style='normal', variant='normal', weight=700, stretch='normal', size='scalable')) = 10.335
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/cmss10.ttf', name='cmss10', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Italic.ttf', name='DejaVu Serif', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymReg.ttf', name='STIXSizeTwoSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSerifDisplay.ttf', name='DejaVu Serif Display', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymReg.ttf', name='STIXSizeOneSym', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneralItalic.ttf', name='STIXGeneral', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXGeneral.ttf', name='STIXGeneral', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUniIta.ttf', name='STIXNonUnicode', style='italic', variant='normal', weight=400, stretch='normal', size='scalable')) = 11.05
DEBUG:matplotlib.font_manager:findfont: score(FontEntry(fname='/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/STIXNonUni.ttf', name='STIXNonUnicode', style='normal', variant='normal', weight=400, stretch='normal', size='scalable')) = 10.05
DEBUG:matplotlib.font_manager:findfont: Matching sans\-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=12.0 to DejaVu Sans ('/home/sintef/gitlab/venv-3.14/lib/python3.14/site-packages/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf') with score of 0.050000.
area/numedal
hydraulic_coupling/plant_coupling_100
hc.station_joined: True
hc.have_hydraulic_flow_results: True
hydraulic_coupling/coupling_200
hc.station_joined: False
hc.have_hydraulic_flow_results: True
DEBUG:matplotlib.colorbar:locator: <matplotlib.ticker.FixedLocator object at 0x7f68bcd84440>
Area: numedal
INFO:LtmApiModel:(ikernel) Not deleting output dir (/home/sintef/gitlab/pyltmapi/docs/ltm-api/guides/eops/testout_EOPS/2026-11-05-142842.121-EOPS-parallell), as delete_output_dir: false, and has_generated_output_dir: true
[3]:
import subprocess
with LtmSession(
"ikernel", ltm_core_path=ltm_core_path, overwrite_session=True
) as import_session:
# konvtiltser expects `LtmSystem.xml`, symlink `LtmSystem_EOPS.xml` to `LtmSystem.XML`
os.symlink(f"{output_path}/LtmSystem_EOPS.xml", f"{output_path}/LtmSystem.XML")
subprocess.run(f"konvtiltser", cwd=output_path)
# Import runtime directory
import_session.import_directory(output_path)
# Dump the model to a new directory
import_session.dump_model("eops-dump-out")
DEBUG:LtmApiModule:(ikernel) Session created: "ikernel"
INFO:LtmApiModel:(ikernel) Starting import from classic LTM folder '/home/sintef/gitlab/pyltmapi/docs/ltm-api/guides/eops/testout_EOPS/2026-11-05-142842.121-EOPS-parallell'
INFO:LtmApiModel:(ikernel) Importing EOPS dataset from '/home/sintef/gitlab/pyltmapi/docs/ltm-api/guides/eops/testout_EOPS/2026-11-05-142842.121-EOPS-parallell'
INFO:LtmApiModel:(ikernel) Importing market description from 'numedal.ENMD'
INFO:DetdImporter:(ikernel) Starting import of system 'numedal'
INFO:DetdImporter:(ikernel) - Importing reservoir 'VITTINGFOSS'
INFO:DetdImporter:(ikernel) - Importing reservoir 'mid1'
INFO:DetdImporter:(ikernel) - Importing reservoir 'coupl_mid2'
INFO:DetdImporter:(ikernel) - Importing reservoir 'LABRO'
INFO:DetdImporter:(ikernel) - Importing reservoir 'mid2'
INFO:DetdImporter:(ikernel) - Importing reservoir 'STORFALL'
INFO:DetdImporter:(ikernel) - Importing reservoir 'mid3'
INFO:DetdImporter:(ikernel) - Importing reservoir 'BLASJO'
INFO:DetdImporter:(ikernel) - Importing reservoir 'coupl_mid3'
INFO:DetdImporter:(ikernel) - Importing reservoir 'coupl_mid1'
INFO:DetdImporter:(ikernel) - Importing hydraulic coupling 'plant_coupling_100' of type 100
INFO:DetdImporter:(ikernel) Importing system numedal
INFO:LtmApiModel:(ikernel) Importing Historical series 'constant'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 1.00 (1979.01.01-1988.12.31) to 1.00 (1979.01.01-1988.12.31) for module mid1
INFO:LtmApiModel:(ikernel) Done importing 'constant'
INFO:LtmApiModel:(ikernel) Importing Historical series 'regulated_inflow_BLASJO'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 6.36 (1979.01.01-1988.12.31) to 6.36 (1979.01.01-1988.12.31) for module BLASJO
INFO:LtmApiModel:(ikernel) Done importing 'regulated_inflow_BLA'
INFO:LtmApiModel:(ikernel) Importing Historical series 'regulated_inflow_LABRO'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 6.36 (1979.01.01-1988.12.31) to 6.36 (1979.01.01-1988.12.31) for module LABRO
INFO:LtmApiModel:(ikernel) Done importing 'regulated_inflow_LAB'
INFO:LtmApiModel:(ikernel) Importing Historical series 'regulated_inflow_STORFALL'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 6.36 (1979.01.01-1988.12.31) to 6.36 (1979.01.01-1988.12.31) for module STORFALL
INFO:LtmApiModel:(ikernel) Done importing 'regulated_inflow_STO'
INFO:LtmApiModel:(ikernel) Importing Historical series 'regulated_inflow_VITTINGFOSS'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 6.36 (1979.01.01-1988.12.31) to 6.36 (1979.01.01-1988.12.31) for module VITTINGFOSS
INFO:LtmApiModel:(ikernel) Done importing 'regulated_inflow_VIT'
INFO:LtmApiModel:(ikernel) Importing Historical series 'small'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 0.00 (1979.01.01-1988.12.31) to 0.00 (1979.01.01-1988.12.31) for module mid1-plant
INFO:LtmApiModel:(ikernel) Done importing 'small'
INFO:LtmApiModel:(ikernel) Importing Historical series 'unregulated_inflow_BLASJO_plant'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 0.64 (1979.01.01-1988.12.31) to 0.64 (1979.01.01-1988.12.31) for module BLASJO-plant
INFO:LtmApiModel:(ikernel) Done importing 'unregulated_inflow_B'
INFO:LtmApiModel:(ikernel) Importing Historical series 'unregulated_inflow_LABRO_plant'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 0.64 (1979.01.01-1988.12.31) to 0.64 (1979.01.01-1988.12.31) for module LABRO-plant
INFO:LtmApiModel:(ikernel) Done importing 'unregulated_inflow_L'
INFO:LtmApiModel:(ikernel) Importing Historical series 'unregulated_inflow_STORFALL_plant'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 0.64 (1979.01.01-1988.12.31) to 0.64 (1979.01.01-1988.12.31) for module STORFALL-plant
INFO:LtmApiModel:(ikernel) Done importing 'unregulated_inflow_S'
INFO:LtmApiModel:(ikernel) Importing Historical series 'unregulated_inflow_VITTINGFOSS_plant'
INFO:LtmApiModel:(ikernel) Recalculated average yearly inflow from 0.64 (1979.01.01-1988.12.31) to 0.64 (1979.01.01-1988.12.31) for module VITTINGFOSS-plant
INFO:LtmApiModel:(ikernel) Done importing 'unregulated_inflow_V'
INFO:LtmApiModel:(ikernel) Not deleting output dir (), as delete_output_dir: false, and has_generated_output_dir: false
INFO:LtmApiModel:(ikernel) Not deleting output dir (), as delete_output_dir: false, and has_generated_output_dir: false
::::: :: :: :: :::::: :::::: ::::::
:: :: ::: :: :: :: ::
:::: :: :: : :: :: :::: ::::
:: :: :: ::: :: :: ::
::::: :: :: :: :: :::::: :: Energi AS
KONVTILTSER - R10.18.0/Release/1a9a23166 - 2026-10-30
-------------------------------------------------------------------
Brukerveiledning..: LTM v10
SINTEF Support....: support.energy@sintef.no, Tel: 40471700/Senb: 45456000
Kj�retidspunkt....: 5. november 2026, kl 15:28:48
-> logfile_with_path: logfiles/konvtiltser.log
-> Creating directory: logfiles
-> Moving file konvtiltser.log to directory logfiles
WARNING: Reading ENMIN values from file: numedal.ENMIN
-> Managed to successfully read an EOPS dataset.
-> Clean up internal files that have to be removed ...
-> Backup directory for the original ENMD-files: ENMD_OPPR
-> Creating directory: ENMD_OPPR
-> For the EOPS area convert all ENMD contracts to h5 timeseries.
-> Area : 0 : numedal.ENMD
-> Backup copy of the wanted file to the directory: ENMD_OPPR
-> Convert to ts-contracts and save to h5-file.
WARNING: Reading ENMIN values from file: numedal.ENMIN
WARNING: Reading ENMIN values from file: numedal.ENMIN