Exogeous prices market stepsΒΆ

[1]:
import os
from pyltmapi import LtmSession
from pathlib import Path

from generate_plots import display_dot_image

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="model1.json")
    print(session.model.global_settings.model_type)
    print(session.model.global_settings.simulation_type)
    display_dot_image(session.build_connection_tree())

ModelType.EMPS
SimulationType.Parallel
../../../_images/ltm-api_guides_exogeneous_prices_market_step_exogeneous_prices_market_steps-notebook_1_1.svg
[2]:
with LtmSession(
    "ikernel", overwrite_session=True, ltm_core_path=ltm_core_path
) as session:
    session.load(filename="model1.json")

    session.model.global_settings.ltm_license_file_path = license_file

    try:
        discrepancies = session.validate_model()
        if not discrepancies:

            write_model = session.write_model()
            last_rc, results = session.execute_model()

    except RuntimeError as e:
        print(e)
        raise(e)
[3]:
with LtmSession(
    "ikernel", overwrite_session=True, ltm_core_path=ltm_core_path
) as session:
    session.load(filename="model2.json")

    session.model.global_settings.ltm_license_file_path = license_file

    try:
        discrepancies = session.validate_model()
        if not discrepancies:

            write_model = session.write_model()
            last_rc, results = session.execute_model()

            numedal_enmd_path = (
                f"{session.model.global_settings.output_path}/numedal.ENMD"
            )

            with open(numedal_enmd_path, "r", encoding="ISO-8859-1") as file:
                for line_number, line in enumerate(file, start=1):
                    if 7 <= line_number <= 8 or 18 <= line_number <= 29:
                        print(f"{line_number}: {line.strip()}")

    except RuntimeError as e:
        print(e)
        raise(e)
7: 17,T,                                                        * Datagruppe PRISREKKE
8: 'HOVEDPRISREKKE.CSV',                                        * Navn paa prisrekkefil
18: 1,  52,                                                   * Start V.V., Slutt V.V.
19: 51,  40,    0.001000,                                      * Ant. pkt mag. V.V.,Maks ant. int V.V., Pres. krav V.V.
20: T,   0,   0,   1,                                            * Autom. gen. vekttall, Ant. tilsigsalt. ved vv. Beregn., Ant. sluttuker, Ant. tilsigtilstander ved vv. Beregn
21: 4,T,                                                         * Datagruppe PREFDA: Kjp/import, salg/eksport, varmekraft, rasjonering
22: 3,  12,'ms_exo_direct       ',F,    0.000000,             * Typenr, Kategori, Navn, Eget(T), Ekst.var.>>..003
23: 'ms_exo_direct',                                             * Filnavn til prisrekke for annen usikkerhet
24: 0.000000,    1.000000,    0.000000,                      * Skaleringsfaktor hovedprisrekke, Skaleringsfaktor prisrekke for annen usikkerhet, Konstantledd
25: TAPP,                                                        * * Kode for referanse til tidsserier kapasitet v.v.beregninger
26: 4,  12,'ms_exo_ref          ',F,    0.000000,             * Typenr, Kategori, Navn, Eget(T), Ekst.var.>>..004
27: 'sps1',                                                      * Filnavn til prisrekke for annen usikkerhet
28: 0.200000,    0.500000,    1.200000,                      * Skaleringsfaktor hovedprisrekke, Skaleringsfaktor prisrekke for annen usikkerhet, Konstantledd
29: TAPP,                                                        * * Kode for referanse til tidsserier kapasitet v.v.beregninger