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: