EOPS Example

This example demonstrates a simple EOPS model simulation. The system is not a realistic example but rather contains debug data used during the development of EOPS features.

For instance, the exogenous price series consists of values like 0, 10, 20, etc., making it easy to validate that the exogenous price data is correctly written to the expected files.

Since this is a debug setup, no in-depth analysis of input and output data is provided. However, there are still several interesting features worth discussing.

### Setting Up an EOPS Simulation To start an EOPS simulation, two flags in the global settings must be configured:

  • `model_type`: “EOPS”

  • `simulation_type`: “Serial”

Validation

Additionally, the input data must adhere to several rules. To ensure correctness, a thorough validation is performed using the validate_model() function.

The following list summarized the validation rules:

  • The model must contain one and only one area.

  • Neither DC nor AC lines are allowed.

  • A main price series must be present, but secondary price series are not allowed.

  • A valid detailed hydro system is required, meaning at least one reservoir and one plant must be included.

  • Aggregated hydro and batteries are not allowed.

  • Spill and curtailment series must be set.

  • Market steps of type ts-spot for both purchase and sale must be set.

  • Other types of market steps are optional but not required.

  • Loads are optional

  • Wind and solar series are theoretically possible, but their real-world use is rare. - They are therefore restricted in the first version, but may be included later.

  • Market calibration areas are not allowed

Runtime enviroment

The runtime enviroment is only avtivated if the modeltype is set to be EOPS.

Input File

All system details are specified in the eops.json file below.

Expand to see full JSON listing.
   1{
   2    "$schema": "https://gitlab.sintef.no/energy/ltm/pyltmapi/-/raw/main/model.schema.json",
   3    "model": {
   4        "global_settings": {
   5            "name": "eops_test",
   6            "output_path": "testout_EOPS/",
   7            "delete_output_dir": false,
   8            "generate_output_dir": true,
   9            "model_type": "EOPS",
  10            "simulation_type": "parallel",
  11            "simulation_period": {
  12                "timestamps": [
  13                    "2024-W01",
  14                    "2026-W01"
  15                ]
  16            },
  17            "historical_period": {
  18                "timestamps": [
  19                    "1979-01-01T00:00:00Z",
  20                    "1989-01-01T00:00:00Z"
  21                ],
  22                "scenarios": [
  23                    [
  24                        1,
  25                        0
  26                    ]
  27                ],
  28                "unit": "ON/OFF"
  29            },
  30            "max_iterations": 40,
  31            "precision": 0.001,
  32            "timesteps_per_week": 7,
  33            "default_spill_cost": 0.01,
  34            "default_load_penalty": 445.0,
  35            "currency": "EUR"
  36        },
  37        "loads": [
  38            {
  39                "#comment": "Gruppe 16",
  40                "name": "FLAT",
  41                "capacity": {
  42                    "timestamps": [
  43                        "2024-01-01T00:00:00Z"
  44                    ],
  45                    "scenarios": [
  46                        [
  47                            7
  48                        ]
  49                    ]
  50                }
  51            },
  52            {
  53                "#comment": "Gruppe 16",
  54                "name": "FLAT2",
  55                "capacity": {
  56                    "timestamps": [
  57                        "2024-01-01T00:00:00Z"
  58                    ],
  59                    "scenarios": [
  60                        [
  61                            7
  62                        ]
  63                    ]
  64                }
  65            }
  66        ],
  67        "market_steps": [
  68            {
  69                "name": "ts_spot_purchase",
  70                "capacity": {
  71                    "timestamps": [
  72                        "2023-01-02T00:00:00Z"
  73                    ],
  74                    "scenarios": [
  75                        [
  76                            10.0
  77                        ]
  78                    ]
  79                }
  80            },
  81            {
  82                "name": "ts_spot_sale",
  83                "capacity": {
  84                    "timestamps": [
  85                        "2023-01-02T00:00:00Z"
  86                    ],
  87                    "scenarios": [
  88                        [
  89                            -20.0
  90                        ]
  91                    ]
  92                }
  93            }
  94        ],
  95        "inflow_series": [
  96            {
  97                "name": "small",
  98                "series": {
  99                    "timestamps": [
 100                        "1900-01-01T00:00:00Z"
 101                    ],
 102                    "scenarios": [
 103                        [
 104                            0.001
 105                        ]
 106                    ]
 107                }
 108            },
 109            {
 110                "name": "constant",
 111                "series": {
 112                    "timestamps": [
 113                        "1900-01-01T00:00:00Z"
 114                    ],
 115                    "scenarios": [
 116                        [
 117                            1.0
 118                        ]
 119                    ]
 120                }
 121            }
 122        ],
 123        "reservoirs": [
 124            {
 125                "name": "LABRO",
 126                "average_regulated_inflow": 6.359381359381359,
 127                "degree_of_regulation": 4,
 128                "initial_volume": 50,
 129                "max_discharge": 30,
 130                "reference_curve": {
 131                    "timestamps": [
 132                        "2024-04-22T00:00:00Z",
 133                        "2024-06-03T00:00:00Z",
 134                        "2024-12-30T00:00:00Z"
 135                    ],
 136                    "scenarios": [
 137                        [
 138                            95.01,
 139                            0.0,
 140                            95.0
 141                        ]
 142                    ]
 143                },
 144                "regulated_inflow": {
 145                    "#comment": "Refers to unregulated inflow label",
 146                    "timestamps": [
 147                        "0001-01-01T00:00:00Z"
 148                    ],
 149                    "scenarios": [
 150                        [
 151                            37.5954019
 152                        ]
 153                    ]
 154                },
 155                "gross_head": 40.0,
 156                "tailrace_elevation": 1030,
 157                "volume_curve": {
 158                    "x": [
 159                        1050,
 160                        1100
 161                    ],
 162                    "y": [
 163                        0,
 164                        100
 165                    ]
 166                }
 167            },
 168            {
 169                "name": "VITTINGFOSS",
 170                "average_regulated_inflow": 6.359381359381359,
 171                "degree_of_regulation": 4,
 172                "initial_volume": 50,
 173                "max_discharge": 30,
 174                "reference_curve": {
 175                    "timestamps": [
 176                        "2024-04-22T00:00:00Z",
 177                        "2024-06-03T00:00:00Z",
 178                        "2024-12-30T00:00:00Z"
 179                    ],
 180                    "scenarios": [
 181                        [
 182                            95.01,
 183                            0.0,
 184                            95.0
 185                        ]
 186                    ]
 187                },
 188                "regulated_inflow": {
 189                    "#comment": "Refers to unregulated inflow label",
 190                    "timestamps": [
 191                        "0001-01-01T00:00:00Z"
 192                    ],
 193                    "scenarios": [
 194                        [
 195                            37.5954019
 196                        ]
 197                    ]
 198                },
 199                "gross_head": 40.0,
 200                "tailrace_elevation": 1030,
 201                "volume_curve": {
 202                    "x": [
 203                        1050,
 204                        1100
 205                    ],
 206                    "y": [
 207                        0,
 208                        100
 209                    ]
 210                }
 211            },
 212            {
 213                "name": "STORFALL",
 214                "average_regulated_inflow": 6.359381359381359,
 215                "degree_of_regulation": 4,
 216                "initial_volume": 50,
 217                "max_discharge": 30,
 218                "reference_curve": {
 219                    "timestamps": [
 220                        "2024-04-22T00:00:00Z",
 221                        "2024-06-03T00:00:00Z",
 222                        "2024-12-30T00:00:00Z"
 223                    ],
 224                    "scenarios": [
 225                        [
 226                            95.01,
 227                            0.0,
 228                            95.0
 229                        ]
 230                    ]
 231                },
 232                "regulated_inflow": {
 233                    "#comment": "Refers to unregulated inflow label",
 234                    "timestamps": [
 235                        "0001-01-01T00:00:00Z"
 236                    ],
 237                    "scenarios": [
 238                        [
 239                            37.5954019
 240                        ]
 241                    ]
 242                },
 243                "gross_head": 40.0,
 244                "tailrace_elevation": 1030,
 245                "volume_curve": {
 246                    "x": [
 247                        1050,
 248                        1100
 249                    ],
 250                    "y": [
 251                        0,
 252                        100
 253                    ]
 254                }
 255            },
 256            {
 257                "name": "BLASJO",
 258                "average_regulated_inflow": 6.359381359381359,
 259                "degree_of_regulation": 4,
 260                "initial_volume": 50,
 261                "max_discharge": 30,
 262                "reference_curve": {
 263                    "timestamps": [
 264                        "2024-04-22T00:00:00Z",
 265                        "2024-06-03T00:00:00Z",
 266                        "2024-12-30T00:00:00Z"
 267                    ],
 268                    "scenarios": [
 269                        [
 270                            95.01,
 271                            0.0,
 272                            95.0
 273                        ]
 274                    ]
 275                },
 276                "regulated_inflow": {
 277                    "#comment": "Refers to unregulated inflow label",
 278                    "timestamps": [
 279                        "0001-01-01T00:00:00Z"
 280                    ],
 281                    "scenarios": [
 282                        [
 283                            37.5954019
 284                        ]
 285                    ]
 286                },
 287                "gross_head": 40.0,
 288                "tailrace_elevation": 1030,
 289                "volume_curve": {
 290                    "x": [
 291                        1050,
 292                        1100
 293                    ],
 294                    "y": [
 295                        0,
 296                        100
 297                    ]
 298                }
 299            },
 300            {
 301                "name": "mid1",
 302                "degree_of_regulation": 3,
 303                "regulated_inflow_name": "constant",
 304                "average_regulated_inflow": 1,
 305                "max_discharge": 50,
 306                "reference_curve": {
 307                    "timestamps": [
 308                        "2024-W15",
 309                        "2024-W30",
 310                        "2024-W47"
 311                    ],
 312                    "scenarios": [
 313                        [
 314                            50,
 315                            250,
 316                            450
 317                        ]
 318                    ]
 319                },
 320                "initial_volume": 300,
 321                "volume_curve": {
 322                    "x": [
 323                        1000,
 324                        1050
 325                    ],
 326                    "y": [
 327                        0,
 328                        500
 329                    ]
 330                },
 331                "tailrace_elevation": 50.0,
 332                "gross_head": 100.0
 333            },
 334            {
 335                "name": "mid2",
 336                "degree_of_regulation": 3,
 337                "regulated_inflow_name": "constant",
 338                "average_regulated_inflow": 2,
 339                "max_discharge": 50,
 340                "reference_curve": {
 341                    "timestamps": [
 342                        "2024-W15",
 343                        "2024-W30",
 344                        "2024-W47"
 345                    ],
 346                    "scenarios": [
 347                        [
 348                            50,
 349                            250,
 350                            450
 351                        ]
 352                    ]
 353                },
 354                "initial_volume": 250,
 355                "volume_curve": {
 356                    "x": [
 357                        1000,
 358                        1050
 359                    ],
 360                    "y": [
 361                        0,
 362                        500
 363                    ]
 364                },
 365                "tailrace_elevation": 50.0,
 366                "gross_head": 100.0
 367            },
 368            {
 369                "name": "mid3",
 370                "degree_of_regulation": 3,
 371                "regulated_inflow_name": "constant",
 372                "average_regulated_inflow": 3,
 373                "max_discharge": 50,
 374                "reference_curve": {
 375                    "timestamps": [
 376                        "2024-W15",
 377                        "2024-W30",
 378                        "2024-W47"
 379                    ],
 380                    "scenarios": [
 381                        [
 382                            50,
 383                            250,
 384                            450
 385                        ]
 386                    ]
 387                },
 388                "initial_volume": 450,
 389                "volume_curve": {
 390                    "x": [
 391                        1000,
 392                        1050
 393                    ],
 394                    "y": [
 395                        0,
 396                        500
 397                    ]
 398                },
 399                "tailrace_elevation": 50.0,
 400                "gross_head": 100.0
 401            },
 402            {
 403                "name": "coupl_mid1",
 404                "degree_of_regulation": 3,
 405                "regulated_inflow_name": "constant",
 406                "average_regulated_inflow": 1,
 407                "max_discharge": 50,
 408                "reference_curve": {
 409                    "timestamps": [
 410                        "2024-W15",
 411                        "2024-W30",
 412                        "2024-W47"
 413                    ],
 414                    "scenarios": [
 415                        [
 416                            50,
 417                            250,
 418                            450
 419                        ]
 420                    ]
 421                },
 422                "initial_volume": 300,
 423                "tailrace_elevation": 50.0,
 424                "volume_curve": {
 425                    "x": [
 426                        1000,
 427                        1050
 428                    ],
 429                    "y": [
 430                        0,
 431                        500
 432                    ]
 433                },
 434                "gross_head": 900
 435            },
 436            {
 437                "name": "coupl_mid2",
 438                "degree_of_regulation": 3,
 439                "regulated_inflow_name": "constant",
 440                "average_regulated_inflow": 2,
 441                "max_discharge": 50,
 442                "reference_curve": {
 443                    "timestamps": [
 444                        "2024-W15",
 445                        "2024-W30",
 446                        "2024-W47"
 447                    ],
 448                    "scenarios": [
 449                        [
 450                            50,
 451                            250,
 452                            450
 453                        ]
 454                    ]
 455                },
 456                "initial_volume": 250,
 457                "volume_curve": {
 458                    "x": [
 459                        1000,
 460                        1050
 461                    ],
 462                    "y": [
 463                        0,
 464                        500
 465                    ]
 466                },
 467                "gross_head": 900
 468            },
 469            {
 470                "name": "coupl_mid3",
 471                "degree_of_regulation": 3,
 472                "regulated_inflow_name": "constant",
 473                "average_regulated_inflow": 3,
 474                "max_discharge": 50,
 475                "reference_curve": {
 476                    "timestamps": [
 477                        "2024-W15",
 478                        "2024-W30",
 479                        "2024-W47"
 480                    ],
 481                    "scenarios": [
 482                        [
 483                            50,
 484                            250,
 485                            450
 486                        ]
 487                    ]
 488                },
 489                "initial_volume": 450,
 490                "volume_curve": {
 491                    "x": [
 492                        1000,
 493                        1050
 494                    ],
 495                    "y": [
 496                        0,
 497                        500
 498                    ]
 499                },
 500                "gross_head": 900
 501            }
 502        ],
 503        "hydraulic_couplings": [
 504            {
 505                "name": "coupling_200",
 506                "max_flow": 100
 507            },
 508            {
 509                "name": "plant_coupling_100"
 510            }
 511        ],
 512        "plants": [
 513            {
 514                "name": "LABRO_plant",
 515                "average_energy_equivalent": 0.12,
 516                "discharge_energy_equivalent": {
 517                    "timestamps": [
 518                        "2023-01-02T00:00:00Z"
 519                    ],
 520                    "scenarios": [
 521                        [
 522                            0.12
 523                        ]
 524                    ]
 525                },
 526                "pq_curves": {
 527                    "2024-01-01T00:00:00Z": {
 528                        "y": [
 529                            0.0,
 530                            9.89
 531                        ],
 532                        "x": [
 533                            0.0,
 534                            24.6
 535                        ]
 536                    }
 537                },
 538                "average_unregulated_inflow": 0.6359381359,
 539                "unregulated_inflow": {
 540                    "#comment": "Refers to unregulated inflow label",
 541                    "timestamps": [
 542                        "0001-01-01T00:00:00Z"
 543                    ],
 544                    "scenarios": [
 545                        [
 546                            37.5954019
 547                        ]
 548                    ]
 549                }
 550            },
 551            {
 552                "name": "VITTINGFOSS_plant",
 553                "average_energy_equivalent": 0.12,
 554                "discharge_energy_equivalent": {
 555                    "timestamps": [
 556                        "2023-01-02T00:00:00Z"
 557                    ],
 558                    "scenarios": [
 559                        [
 560                            0.12
 561                        ]
 562                    ]
 563                },
 564                "pq_curves": {
 565                    "2024-01-01T00:00:00Z": {
 566                        "y": [
 567                            0.0,
 568                            9.89
 569                        ],
 570                        "x": [
 571                            0.0,
 572                            24.6
 573                        ]
 574                    }
 575                },
 576                "average_unregulated_inflow": 0.635938135938136,
 577                "unregulated_inflow": {
 578                    "#comment": "Refers to unregulated inflow label",
 579                    "timestamps": [
 580                        "0001-01-01T00:00:00Z"
 581                    ],
 582                    "scenarios": [
 583                        [
 584                            37.5954019
 585                        ]
 586                    ]
 587                }
 588            },
 589            {
 590                "name": "STORFALL_plant",
 591                "average_energy_equivalent": 0.12,
 592                "discharge_energy_equivalent": {
 593                    "timestamps": [
 594                        "2023-01-02T00:00:00Z"
 595                    ],
 596                    "scenarios": [
 597                        [
 598                            0.12
 599                        ]
 600                    ]
 601                },
 602                "pq_curves": {
 603                    "2024-01-01T00:00:00Z": {
 604                        "y": [
 605                            0.0,
 606                            9.89
 607                        ],
 608                        "x": [
 609                            0.0,
 610                            24.6
 611                        ]
 612                    }
 613                },
 614                "average_unregulated_inflow": 0.635938135938136,
 615                "unregulated_inflow": {
 616                    "#comment": "Refers to unregulated inflow label",
 617                    "timestamps": [
 618                        "0001-01-01T00:00:00Z"
 619                    ],
 620                    "scenarios": [
 621                        [
 622                            37.5954019
 623                        ]
 624                    ]
 625                }
 626            },
 627            {
 628                "name": "BLASJO_plant",
 629                "average_energy_equivalent": 0.12,
 630                "discharge_energy_equivalent": {
 631                    "timestamps": [
 632                        "2023-01-02T00:00:00Z"
 633                    ],
 634                    "scenarios": [
 635                        [
 636                            0.12
 637                        ]
 638                    ]
 639                },
 640                "pq_curves": {
 641                    "2024-01-01T00:00:00Z": {
 642                        "y": [
 643                            0.0,
 644                            9.89
 645                        ],
 646                        "x": [
 647                            0.0,
 648                            24.6
 649                        ]
 650                    }
 651                },
 652                "average_unregulated_inflow": 0.635938135938136,
 653                "unregulated_inflow": {
 654                    "#comment": "Refers to unregulated inflow label",
 655                    "timestamps": [
 656                        "0001-01-01T00:00:00Z"
 657                    ],
 658                    "scenarios": [
 659                        [
 660                            37.5954019
 661                        ]
 662                    ]
 663                }
 664            },
 665            {
 666                "name": "plant_mid1",
 667                "ownership": 100,
 668                "average_energy_equivalent": 3.0,
 669                "discharge_energy_equivalent": {
 670                    "timestamps": [
 671                        "2023-01-02T00:00:00Z"
 672                    ],
 673                    "scenarios": [
 674                        [
 675                            3.03
 676                        ]
 677                    ]
 678                },
 679                "pq_curves": {
 680                    "2023-01-02T00:00:00Z": {
 681                        "x": [
 682                            0.0,
 683                            70.00
 684                        ],
 685                        "y": [
 686                            0.0,
 687                            300.0
 688                        ]
 689                    }
 690                },
 691                "unregulated_inflow_name": "small",
 692                "average_unregulated_inflow": 0.0
 693            },
 694            {
 695                "name": "plant_mid2",
 696                "ownership": 100,
 697                "average_energy_equivalent": 3.0,
 698                "discharge_energy_equivalent": {
 699                    "timestamps": [
 700                        "2023-01-02T00:00:00Z"
 701                    ],
 702                    "scenarios": [
 703                        [
 704                            3.03
 705                        ]
 706                    ]
 707                },
 708                "pq_curves": {
 709                    "2023-01-02T00:00:00Z": {
 710                        "x": [
 711                            0.0,
 712                            70.00
 713                        ],
 714                        "y": [
 715                            0.0,
 716                            300.0
 717                        ]
 718                    }
 719                },
 720                "unregulated_inflow_name": "small",
 721                "average_unregulated_inflow": 0.0
 722            },
 723            {
 724                "name": "plant_mid3",
 725                "ownership": 100,
 726                "average_energy_equivalent": 3.0,
 727                "discharge_energy_equivalent": {
 728                    "timestamps": [
 729                        "2023-01-02T00:00:00Z"
 730                    ],
 731                    "scenarios": [
 732                        [
 733                            3.03
 734                        ]
 735                    ]
 736                },
 737                "pq_curves": {
 738                    "2023-01-02T00:00:00Z": {
 739                        "x": [
 740                            0.0,
 741                            70.00
 742                        ],
 743                        "y": [
 744                            0.0,
 745                            300.0
 746                        ]
 747                    }
 748                },
 749                "unregulated_inflow_name": "small",
 750                "average_unregulated_inflow": 0.0
 751            },
 752            {
 753                "name": "coupl_plant",
 754                "ownership": 100,
 755                "average_energy_equivalent": 3.0,
 756                "discharge_energy_equivalent": {
 757                    "timestamps": [
 758                        "2023-01-02T00:00:00Z"
 759                    ],
 760                    "scenarios": [
 761                        [
 762                            3.03
 763                        ]
 764                    ]
 765                },
 766                "pq_curves": {
 767                    "2023-01-02T00:00:00Z": {
 768                        "x": [
 769                            0.0,
 770                            70.00
 771                        ],
 772                        "y": [
 773                            0.0,
 774                            300.0
 775                        ]
 776                    }
 777                },
 778                "unregulated_inflow_name": "small",
 779                "average_unregulated_inflow": 0.0,
 780                "min_bypass_curve": {
 781                    "timestamps": [
 782                        "2024-W01",
 783                        "2024-W10",
 784                        "2024-W20",
 785                        "2024-W40",
 786                        "2024-W41"
 787                    ],
 788                    "scenarios": [
 789                        [
 790                            0,
 791                            1,
 792                            10,
 793                            50,
 794                            0
 795                        ]
 796                    ]
 797                }
 798            }
 799        ],
 800        "areas": [
 801            {
 802                "name": "numedal"
 803            }
 804        ],
 805        "price_series_main": [
 806            {
 807                "name": "HOVEDPRISREKKE.csv",
 808                "probabilities": [
 809                    0.3,
 810                    0.2,
 811                    0.5
 812                ],
 813                "series": {
 814                    "timestamps": [
 815                        "2024-01-01T00:00:00Z",
 816                        "2024-01-08T00:00:00Z",
 817                        "2024-01-15T00:00:00Z",
 818                        "2024-01-22T00:00:00Z",
 819                        "2024-01-29T00:00:00Z",
 820                        "2024-02-05T00:00:00Z",
 821                        "2024-02-12T00:00:00Z",
 822                        "2024-02-19T00:00:00Z",
 823                        "2024-02-26T00:00:00Z",
 824                        "2024-03-04T00:00:00Z"
 825                    ],
 826                    "scenarios": [
 827                        [
 828                            0.0,
 829                            10.0,
 830                            20.0,
 831                            30.0,
 832                            40.0,
 833                            50.0,
 834                            60.0,
 835                            70.0,
 836                            80.0,
 837                            90.0
 838                        ],
 839                        [
 840                            1.0,
 841                            11.0,
 842                            21.0,
 843                            31.0,
 844                            41.0,
 845                            51.0,
 846                            61.0,
 847                            71.0,
 848                            81.0,
 849                            91.0
 850                        ],
 851                        [
 852                            2.0,
 853                            12.0,
 854                            22.0,
 855                            32.0,
 856                            42.0,
 857                            52.0,
 858                            62.0,
 859                            72.0,
 860                            82.0,
 861                            92.0
 862                        ],
 863                        [
 864                            3.0,
 865                            13.0,
 866                            23.0,
 867                            33.0,
 868                            43.0,
 869                            53.0,
 870                            63.0,
 871                            73.0,
 872                            83.0,
 873                            93.0
 874                        ],
 875                        [
 876                            4.0,
 877                            14.0,
 878                            24.0,
 879                            34.0,
 880                            44.0,
 881                            54.0,
 882                            64.0,
 883                            74.0,
 884                            84.0,
 885                            94.0
 886                        ],
 887                        [
 888                            5.0,
 889                            15.0,
 890                            25.0,
 891                            35.0,
 892                            45.0,
 893                            55.0,
 894                            65.0,
 895                            75.0,
 896                            85.0,
 897                            95.0
 898                        ],
 899                        [
 900                            6.0,
 901                            16.0,
 902                            26.0,
 903                            36.0,
 904                            46.0,
 905                            56.0,
 906                            66.0,
 907                            76.0,
 908                            86.0,
 909                            96.0
 910                        ],
 911                        [
 912                            7.0,
 913                            17.0,
 914                            27.0,
 915                            37.0,
 916                            47.0,
 917                            57.0,
 918                            67.0,
 919                            77.0,
 920                            87.0,
 921                            97.0
 922                        ],
 923                        [
 924                            8.0,
 925                            18.0,
 926                            28.0,
 927                            38.0,
 928                            48.0,
 929                            58.0,
 930                            68.0,
 931                            78.0,
 932                            88.0,
 933                            98.0
 934                        ],
 935                        [
 936                            9.0,
 937                            19.0,
 938                            29.0,
 939                            39.0,
 940                            49.0,
 941                            59.0,
 942                            69.0,
 943                            79.0,
 944                            89.0,
 945                            99.0
 946                        ],
 947                        [
 948                            100.0,
 949                            1010.0,
 950                            1020.0,
 951                            1030.0,
 952                            1040.0,
 953                            1050.0,
 954                            1060.0,
 955                            1070.0,
 956                            1080.0,
 957                            1090.0
 958                        ],
 959                        [
 960                            101.0,
 961                            1011.0,
 962                            1021.0,
 963                            1031.0,
 964                            1041.0,
 965                            1051.0,
 966                            1061.0,
 967                            1071.0,
 968                            1081.0,
 969                            1091.0
 970                        ],
 971                        [
 972                            102.0,
 973                            1012.0,
 974                            1022.0,
 975                            1032.0,
 976                            1042.0,
 977                            1052.0,
 978                            1062.0,
 979                            1072.0,
 980                            1082.0,
 981                            1092.0
 982                        ],
 983                        [
 984                            103.0,
 985                            1013.0,
 986                            1023.0,
 987                            1033.0,
 988                            1043.0,
 989                            1053.0,
 990                            1063.0,
 991                            1073.0,
 992                            1083.0,
 993                            1093.0
 994                        ],
 995                        [
 996                            104.0,
 997                            1014.0,
 998                            1024.0,
 999                            1034.0,
1000                            1044.0,
1001                            1054.0,
1002                            1064.0,
1003                            1074.0,
1004                            1084.0,
1005                            1094.0
1006                        ],
1007                        [
1008                            105.0,
1009                            1015.0,
1010                            1025.0,
1011                            1035.0,
1012                            1045.0,
1013                            1055.0,
1014                            1065.0,
1015                            1075.0,
1016                            1085.0,
1017                            1095.0
1018                        ],
1019                        [
1020                            106.0,
1021                            1016.0,
1022                            1026.0,
1023                            1036.0,
1024                            1046.0,
1025                            1056.0,
1026                            1066.0,
1027                            1076.0,
1028                            1086.0,
1029                            1096.0
1030                        ],
1031                        [
1032                            107.0,
1033                            1017.0,
1034                            1027.0,
1035                            1037.0,
1036                            1047.0,
1037                            1057.0,
1038                            1067.0,
1039                            1077.0,
1040                            1087.0,
1041                            1097.0
1042                        ],
1043                        [
1044                            108.0,
1045                            1018.0,
1046                            1028.0,
1047                            1038.0,
1048                            1048.0,
1049                            1058.0,
1050                            1068.0,
1051                            1078.0,
1052                            1088.0,
1053                            1098.0
1054                        ],
1055                        [
1056                            109.0,
1057                            1019.0,
1058                            1029.0,
1059                            1039.0,
1060                            1049.0,
1061                            1059.0,
1062                            1069.0,
1063                            1079.0,
1064                            1089.0,
1065                            1099.0
1066                        ],
1067                        [
1068                            200.0,
1069                            2010.0,
1070                            2020.0,
1071                            2030.0,
1072                            2040.0,
1073                            2050.0,
1074                            2060.0,
1075                            2070.0,
1076                            2080.0,
1077                            2090.0
1078                        ],
1079                        [
1080                            201.0,
1081                            2011.0,
1082                            2021.0,
1083                            2031.0,
1084                            2041.0,
1085                            2051.0,
1086                            2061.0,
1087                            2071.0,
1088                            2081.0,
1089                            2091.0
1090                        ],
1091                        [
1092                            202.0,
1093                            2012.0,
1094                            2022.0,
1095                            2032.0,
1096                            2042.0,
1097                            2052.0,
1098                            2062.0,
1099                            2072.0,
1100                            2082.0,
1101                            2092.0
1102                        ],
1103                        [
1104                            203.0,
1105                            2013.0,
1106                            2023.0,
1107                            2033.0,
1108                            2043.0,
1109                            2053.0,
1110                            2063.0,
1111                            2073.0,
1112                            2083.0,
1113                            2093.0
1114                        ],
1115                        [
1116                            204.0,
1117                            2014.0,
1118                            2024.0,
1119                            2034.0,
1120                            2044.0,
1121                            2054.0,
1122                            2064.0,
1123                            2074.0,
1124                            2084.0,
1125                            2094.0
1126                        ],
1127                        [
1128                            205.0,
1129                            2015.0,
1130                            2025.0,
1131                            2035.0,
1132                            2045.0,
1133                            2055.0,
1134                            2065.0,
1135                            2075.0,
1136                            2085.0,
1137                            2095.0
1138                        ],
1139                        [
1140                            206.0,
1141                            2016.0,
1142                            2026.0,
1143                            2036.0,
1144                            2046.0,
1145                            2056.0,
1146                            2066.0,
1147                            2076.0,
1148                            2086.0,
1149                            2096.0
1150                        ],
1151                        [
1152                            207.0,
1153                            2017.0,
1154                            2027.0,
1155                            2037.0,
1156                            2047.0,
1157                            2057.0,
1158                            2067.0,
1159                            2077.0,
1160                            2087.0,
1161                            2097.0
1162                        ],
1163                        [
1164                            208.0,
1165                            2018.0,
1166                            2028.0,
1167                            2038.0,
1168                            2048.0,
1169                            2058.0,
1170                            2068.0,
1171                            2078.0,
1172                            2088.0,
1173                            2098.0
1174                        ],
1175                        [
1176                            209.0,
1177                            2019.0,
1178                            2029.0,
1179                            2039.0,
1180                            2049.0,
1181                            2059.0,
1182                            2069.0,
1183                            2079.0,
1184                            2089.0,
1185                            2099.0
1186                        ]
1187                    ]
1188                }
1189            }
1190        ],
1191        "connections": [
1192            {
1193                "from": "FLAT",
1194                "to": "numedal"
1195            },
1196            {
1197                "from": "FLAT2",
1198                "to": "numedal"
1199            },
1200            {
1201                "from": "VITTINGFOSS",
1202                "to": "numedal"
1203            },
1204            {
1205                "from": "VITTINGFOSS",
1206                "to": "VITTINGFOSS_plant"
1207            },
1208            {
1209                "from": "LABRO",
1210                "to": "numedal"
1211            },
1212            {
1213                "from": "LABRO",
1214                "to": "LABRO_plant"
1215            },
1216            {
1217                "from": "STORFALL",
1218                "to": "numedal"
1219            },
1220            {
1221                "from": "STORFALL",
1222                "to": "STORFALL_plant"
1223            },
1224            {
1225                "from": "BLASJO",
1226                "to": "numedal"
1227            },
1228            {
1229                "from": "BLASJO",
1230                "to": "BLASJO_plant"
1231            },
1232            {
1233                "from": "ts_spot_purchase",
1234                "to": "numedal"
1235            },
1236            {
1237                "from": "ts_spot_sale",
1238                "to": "numedal"
1239            },
1240            {
1241                "from": "mid1",
1242                "to": "plant_mid1"
1243            },
1244            {
1245                "from": "mid2",
1246                "to": "plant_mid2"
1247            },
1248            {
1249                "from": "mid3",
1250                "to": "plant_mid3"
1251            },
1252            {
1253                "from": "plant_mid1",
1254                "to": "plant_coupling_100"
1255            },
1256            {
1257                "from": "plant_mid2",
1258                "to": "plant_coupling_100"
1259            },
1260            {
1261                "from": "plant_mid3",
1262                "to": "plant_coupling_100"
1263            },
1264            {
1265                "from": "mid1",
1266                "to": "numedal"
1267            },
1268            {
1269                "from": "coupl_mid1",
1270                "to": "numedal"
1271            },
1272            {
1273                "from": "coupl_mid1",
1274                "to": "coupling_200"
1275            },
1276            {
1277                "from": "coupl_mid2",
1278                "to": "coupling_200"
1279            },
1280            {
1281                "from": "coupl_mid3",
1282                "to": "coupling_200"
1283            },
1284            {
1285                "from": "coupl_mid3",
1286                "to": "coupl_plant"
1287            }
1288        ]
1289    }
1290}

Results

The link below provides access to a static Jupyter notebook where the LTM-API has been executed using the eops.json file as input. The notebook includes the results from the EOPS model presented through a series of figures.

Additionally, you can download the input model file here: