feat: add circular progress component and update historical lake data indices

This commit is contained in:
David Fencl
2026-06-06 10:38:43 +02:00
parent 27551f9183
commit a3b3d40769
15 changed files with 2896 additions and 243 deletions
+271 -1
View File
@@ -6833,10 +6833,280 @@
{ {
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 467.72, "level": 467.72,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 14.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 467.72,
"flow": 0, "flow": 0,
"inflow": 2.88, "inflow": 2.88,
"volume": 26.49, "volume": 26.49,
"temperature": 11.6, "temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 467.72,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 467.72,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 467.72,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 467.72,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 467.72,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 467.73,
"flow": 0,
"inflow": 2.88,
"volume": 26.49,
"temperature": 10.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 10.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 10.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 10.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 10.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 10.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 467.73,
"flow": 0,
"inflow": 2.88,
"volume": 26.51,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 467.73,
"flow": 0,
"inflow": 2.88,
"volume": 26.51,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 467.73,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 467.74,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 467.74,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 467.74,
"flow": 0.7,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:30:00.000Z",
"level": 467.74,
"flow": 0,
"inflow": 2.24,
"volume": 26.53,
"temperature": 17.5,
"precipitation": 0 "precipitation": 0
} }
] ]
+271 -1
View File
@@ -6834,9 +6834,279 @@
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 352.85, "level": 352.85,
"flow": 2.53, "flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 12.1,
"precipitation": 5.7
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 1.46, "inflow": 1.46,
"volume": 32.37, "volume": 32.37,
"temperature": 11.6, "temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 352.85,
"flow": 2.55,
"inflow": 1.46,
"volume": 32.34,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 352.85,
"flow": 2.55,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 1.46,
"volume": 32.36,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 352.84,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 352.84,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 352.85,
"flow": 2.52,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 352.85,
"flow": 2.52,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 352.85,
"flow": 2.52,
"inflow": 1.46,
"volume": 32.33,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 352.85,
"flow": 2.52,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 352.84,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 352.84,
"flow": 2.52,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 352.84,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 352.84,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 352.84,
"flow": 2.52,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 352.84,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 352.84,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 352.84,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 352.85,
"flow": 2.53,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:30:00.000Z",
"level": 352.84,
"flow": 0,
"inflow": 1.47,
"volume": 32.32,
"temperature": 17.3,
"precipitation": 0 "precipitation": 0
} }
] ]
+307 -1
View File
@@ -6834,9 +6834,315 @@
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 369.79, "level": 369.79,
"flow": 1.25, "flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 18.234727964853622,
"precipitation": 0
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 369.79,
"flow": 1.25,
"inflow": 10.82, "inflow": 10.82,
"volume": 20.24, "volume": 20.24,
"temperature": 11.1, "temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 369.79,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 369.79,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 369.79,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 369.79,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 369.79,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 369.8,
"flow": 1.25,
"inflow": 10.82,
"volume": 20.27,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 369.8,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 369.8,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 369.81,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 369.81,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 369.81,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 369.81,
"flow": 1.25,
"inflow": 10.82,
"volume": 20.3,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 369.81,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 369.81,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 369.83,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 369.83,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 369.83,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 369.83,
"flow": 1.25,
"inflow": 10.82,
"volume": 20.33,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 369.83,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 369.83,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 369.84,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 369.85,
"flow": 1.25,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 369.84,
"flow": 14.17,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 369.84,
"flow": 14.17,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 369.84,
"flow": 14.17,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:10:00.000Z",
"level": 369.84,
"flow": 14.17,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:20:00.000Z",
"level": 369.83,
"flow": 14.17,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:30:00.000Z",
"level": 369.83,
"flow": 14.17,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:40:00.000Z",
"level": 369.83,
"flow": 14.17,
"inflow": 0,
"volume": 20.39,
"temperature": 16,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 369.81,
"flow": 14.17,
"inflow": 0,
"volume": 0,
"temperature": 16,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 369.81,
"flow": 6.78,
"inflow": 0,
"volume": 0,
"temperature": 16,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 369.83,
"flow": 2.5,
"inflow": 0,
"volume": 0,
"temperature": 16,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:30:00.000Z",
"level": 369.83,
"flow": 2.5,
"inflow": 0,
"volume": 20.33,
"temperature": 17.6,
"precipitation": 0 "precipitation": 0
} }
] ]
+307 -1
View File
@@ -6834,9 +6834,315 @@
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 352.42, "level": 352.42,
"flow": 19.01, "flow": 19.01,
"inflow": 0,
"volume": 0,
"temperature": 12.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 352.43,
"flow": 11.37,
"inflow": 14.13, "inflow": 14.13,
"volume": 2.74, "volume": 2.74,
"temperature": 11.1, "temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 352.42,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 352.42,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 352.42,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 352.42,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 352.42,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 10.9,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 352.42,
"flow": 0.13,
"inflow": 14.13,
"volume": 2.74,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 352.43,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 352.44,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 352.43,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 352.43,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 352.44,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.7,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 352.44,
"flow": 0.13,
"inflow": 14.13,
"volume": 2.74,
"temperature": 9.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 352.44,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 352.45,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 352.45,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 352.45,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 352.45,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 9.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 352.45,
"flow": 0.13,
"inflow": 14.13,
"volume": 2.74,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 352.46,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 352.47,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 352.48,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 352.49,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 352.52,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 352.56,
"flow": 0.13,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 352.57,
"flow": 19.05,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:10:00.000Z",
"level": 352.57,
"flow": 19.05,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:20:00.000Z",
"level": 352.56,
"flow": 19.05,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:30:00.000Z",
"level": 352.56,
"flow": 19.05,
"inflow": 0,
"volume": 0,
"temperature": 8.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:40:00.000Z",
"level": 352.56,
"flow": 19.05,
"inflow": 13.43,
"volume": 2.79,
"temperature": 15.1,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 352.56,
"flow": 19.05,
"inflow": 0,
"volume": 0,
"temperature": 15.1,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 352.56,
"flow": 19.05,
"inflow": 0,
"volume": 0,
"temperature": 15.1,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 352.56,
"flow": 19.05,
"inflow": 0,
"volume": 0,
"temperature": 15.1,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:30:00.000Z",
"level": 352.56,
"flow": 19.05,
"inflow": 13.43,
"volume": 2.79,
"temperature": 16.9,
"precipitation": 0 "precipitation": 0
} }
] ]
+289 -1
View File
@@ -6834,9 +6834,297 @@
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 723.08, "level": 723.08,
"flow": 1.51, "flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 18.62002326908434,
"precipitation": 0
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 723.08,
"flow": 1.51,
"inflow": 2.51, "inflow": 2.51,
"volume": 199.67, "volume": 199.67,
"temperature": 11.5, "temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 723.08,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 2.51,
"volume": 199.28,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 723.08,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 723.08,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 723.08,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 723.08,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 11,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 2.51,
"volume": 199.67,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 2.51,
"volume": 199.67,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:10:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:20:00.000Z",
"level": 723.09,
"flow": 0,
"inflow": 9.25,
"volume": 199.67,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 723.09,
"flow": 1.51,
"inflow": 0,
"volume": 0,
"temperature": 10,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:30:00.000Z",
"level": 723.09,
"flow": 0,
"inflow": 9.25,
"volume": 199.67,
"temperature": 16.3,
"precipitation": 0 "precipitation": 0
} }
] ]
+308 -2
View File
@@ -6815,7 +6815,7 @@
{ {
"timestamp": "2026-06-05T21:20:00.000Z", "timestamp": "2026-06-05T21:20:00.000Z",
"level": 559.89, "level": 559.89,
"flow": 0, "flow": 7.18,
"inflow": 0, "inflow": 0,
"volume": 0, "volume": 0,
"temperature": 17.97824695485787, "temperature": 17.97824695485787,
@@ -6834,9 +6834,315 @@
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 559.87, "level": 559.87,
"flow": 0, "flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 17.97824695485787,
"precipitation": 0
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 559.86,
"flow": 0,
"inflow": 3.71, "inflow": 3.71,
"volume": 0.68, "volume": 0.68,
"temperature": 8.7, "temperature": 8.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 559.85,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 8.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 559.84,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 8.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 559.83,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 8.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 559.82,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 8.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 559.81,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 8.6,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 559.8,
"flow": 0,
"inflow": 3.71,
"volume": 0.66,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 559.79,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 559.78,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 559.77,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 559.76,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 559.75,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 8.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 559.73,
"flow": 0,
"inflow": 3.71,
"volume": 0.64,
"temperature": 7.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 559.72,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 7.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 559.71,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 7.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 559.7,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 7.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 559.69,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 7.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 559.68,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 7.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 559.67,
"flow": 0,
"inflow": 3.71,
"volume": 0.62,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 559.66,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 559.59,
"flow": 7.15,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 559.52,
"flow": 7.18,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 559.44,
"flow": 7.15,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 559.37,
"flow": 7.15,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 559.29,
"flow": 7.15,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 559.21,
"flow": 7.15,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:10:00.000Z",
"level": 559.2,
"flow": 7.15,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:20:00.000Z",
"level": 559.19,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:30:00.000Z",
"level": 559.18,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 7.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:40:00.000Z",
"level": 559.16,
"flow": 0,
"inflow": 5.37,
"volume": 0.51,
"temperature": 16.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 559.13,
"flow": 7.15,
"inflow": 0,
"volume": 0,
"temperature": 16.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 559.12,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 16.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 559.11,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 16.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:30:00.000Z",
"level": 559.09,
"flow": 0,
"inflow": 5.37,
"volume": 0.49,
"temperature": 17.7,
"precipitation": 0 "precipitation": 0
} }
] ]
+298 -1
View File
@@ -6834,9 +6834,306 @@
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 345.26, "level": 345.26,
"flow": 0, "flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 18.70045888971512,
"precipitation": 0
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 23.84, "inflow": 23.84,
"volume": 522.12, "volume": 522.12,
"temperature": 12, "temperature": 11.8,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.8,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.8,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 345.24,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.8,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.8,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.8,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 23.84,
"volume": 522.12,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 345.27,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 345.24,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.1,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 23.84,
"volume": 521.92,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 345.27,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 23.84,
"volume": 521.92,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 345.25,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:10:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:20:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:30:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.4,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:40:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 24.39,
"volume": 522.12,
"temperature": 16.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 345.26,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 16.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 345.27,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 16.2,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 345.27,
"flow": 0,
"inflow": 24.39,
"volume": 522.12,
"temperature": 17.6,
"precipitation": 0 "precipitation": 0
} }
] ]
+316 -1
View File
@@ -6834,9 +6834,324 @@
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 269.84, "level": 269.84,
"flow": 0, "flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 16.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 269.87,
"flow": 0,
"inflow": 46.5, "inflow": 46.5,
"volume": 260.21, "volume": 260.21,
"temperature": 11.5, "temperature": 11.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 269.89,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 269.87,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 269.82,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 269.81,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 269.82,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 11.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 269.83,
"flow": 0,
"inflow": 46.5,
"volume": 261.2,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 269.84,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 269.84,
"flow": 68.9,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 269.84,
"flow": 97.7,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 269.85,
"flow": 95.8,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 269.87,
"flow": 97.87,
"inflow": 0,
"volume": 0,
"temperature": 10.2,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 269.85,
"flow": 97.69,
"inflow": 46.5,
"volume": 260.66,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 269.85,
"flow": 88.74,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 269.87,
"flow": 25.95,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 269.86,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 269.84,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 269.82,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 269.83,
"flow": 0,
"inflow": 46.5,
"volume": 260.76,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 269.85,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 269.87,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 269.86,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 269.89,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 269.86,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 269.89,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 269.88,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:10:00.000Z",
"level": 269.88,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:20:00.000Z",
"level": 269.87,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:30:00.000Z",
"level": 269.89,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:40:00.000Z",
"level": 269.89,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:50:00.000Z",
"level": 269.89,
"flow": 0,
"inflow": 81.06,
"volume": 261.05,
"temperature": 17.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 269.89,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 17.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 269.89,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 17.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 269.88,
"flow": 0,
"inflow": 0,
"volume": 0,
"temperature": 17.8,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:30:00.000Z",
"level": 269.87,
"flow": 0,
"inflow": 81.06,
"volume": 261.23,
"temperature": 18.6,
"precipitation": 0 "precipitation": 0
} }
] ]
+307 -1
View File
@@ -6834,9 +6834,315 @@
"timestamp": "2026-06-05T21:40:00.000Z", "timestamp": "2026-06-05T21:40:00.000Z",
"level": 218.72, "level": 218.72,
"flow": 25.33, "flow": 25.33,
"inflow": 0,
"volume": 0,
"temperature": 18.450684013836877,
"precipitation": 0
},
{
"timestamp": "2026-06-05T21:50:00.000Z",
"level": 218.54,
"flow": 25.33,
"inflow": 19.85, "inflow": 19.85,
"volume": 9.68, "volume": 9.68,
"temperature": 11.5, "temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:00:00.000Z",
"level": 218.6,
"flow": 25.39,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:10:00.000Z",
"level": 218.62,
"flow": 47.22,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:20:00.000Z",
"level": 218.45,
"flow": 60.59,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:30:00.000Z",
"level": 218.53,
"flow": 60.74,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:40:00.000Z",
"level": 218.45,
"flow": 60.6,
"inflow": 0,
"volume": 0,
"temperature": 11.4,
"precipitation": 0
},
{
"timestamp": "2026-06-05T22:50:00.000Z",
"level": 218.34,
"flow": 60.68,
"inflow": 19.85,
"volume": 9.69,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:00:00.000Z",
"level": 218.42,
"flow": 60.67,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:10:00.000Z",
"level": 218.33,
"flow": 39.08,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:20:00.000Z",
"level": 218.38,
"flow": 25.38,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:30:00.000Z",
"level": 218.54,
"flow": 25.38,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:40:00.000Z",
"level": 218.45,
"flow": 25.33,
"inflow": 0,
"volume": 0,
"temperature": 10.3,
"precipitation": 0
},
{
"timestamp": "2026-06-05T23:50:00.000Z",
"level": 218.54,
"flow": 25.38,
"inflow": 19.85,
"volume": 9.51,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:00:00.000Z",
"level": 218.62,
"flow": 25.35,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:10:00.000Z",
"level": 218.55,
"flow": 40.15,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:20:00.000Z",
"level": 218.6,
"flow": 50.5,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:30:00.000Z",
"level": 218.52,
"flow": 50.47,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:40:00.000Z",
"level": 218.49,
"flow": 50.47,
"inflow": 0,
"volume": 0,
"temperature": 9.9,
"precipitation": 0
},
{
"timestamp": "2026-06-06T00:50:00.000Z",
"level": 218.49,
"flow": 35.85,
"inflow": 19.85,
"volume": 9.71,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T01:00:00.000Z",
"level": 218.43,
"flow": 25.34,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T02:00:00.000Z",
"level": 218.33,
"flow": 25.34,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T03:00:00.000Z",
"level": 218.25,
"flow": 25.34,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T04:00:00.000Z",
"level": 218.1,
"flow": 60.76,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T05:00:00.000Z",
"level": 217.82,
"flow": 75.61,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T06:00:00.000Z",
"level": 217.57,
"flow": 60.65,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:00:00.000Z",
"level": 217.32,
"flow": 50.51,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:10:00.000Z",
"level": 217.29,
"flow": 37.55,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:20:00.000Z",
"level": 217.27,
"flow": 25.32,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:30:00.000Z",
"level": 217.24,
"flow": 25.32,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:40:00.000Z",
"level": 217.23,
"flow": 25.32,
"inflow": 0,
"volume": 0,
"temperature": 9.6,
"precipitation": 0
},
{
"timestamp": "2026-06-06T07:50:00.000Z",
"level": 217.22,
"flow": 25.32,
"inflow": 48.25,
"volume": 8.48,
"temperature": 17.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:00:00.000Z",
"level": 217.19,
"flow": 25.31,
"inflow": 0,
"volume": 0,
"temperature": 17.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:10:00.000Z",
"level": 217.17,
"flow": 25.31,
"inflow": 0,
"volume": 0,
"temperature": 17.5,
"precipitation": 0
},
{
"timestamp": "2026-06-06T08:20:00.000Z",
"level": 217.17,
"flow": 25.31,
"inflow": 48.25,
"volume": 8.36,
"temperature": 18.1,
"precipitation": 0 "precipitation": 0
} }
] ]
+151 -151
View File
@@ -4,28 +4,28 @@
"name": "Lipno 1", "name": "Lipno 1",
"river": "Vltava", "river": "Vltava",
"priority": true, "priority": true,
"level": "723.08", "level": "723.09",
"capacity": 76.2, "capacity": 76.3,
"storageDiff": -1.82, "storageDiff": -1.81,
"inflow": "2.5", "inflow": "9.3",
"outflow": "1.5", "outflow": "0.0",
"volume": 199.67, "volume": 199.67,
"maxVolume": 306, "maxVolume": 306,
"lat": 48.6322, "lat": 48.6322,
"lng": 14.2215, "lng": 14.2215,
"sparkline": [ "sparkline": [
34.78, 723.09,
37.78, 723.09,
33.61, 723.09,
14.02, 723.09,
1.51, 723.09,
1.51, 723.09,
1.51, 723.09,
1.51, 723.09,
1.51, 723.09,
1.51, 723.09,
1.51, 723.09,
1.51 723.09
] ]
}, },
{ {
@@ -33,28 +33,28 @@
"name": "Lipno II", "name": "Lipno II",
"river": "Vltava", "river": "Vltava",
"priority": false, "priority": false,
"level": "559.87", "level": "559.09",
"capacity": 100, "capacity": 100,
"storageDiff": 48.37, "storageDiff": 47.59,
"inflow": "3.7", "inflow": "5.4",
"outflow": "0.0", "outflow": "0.0",
"volume": 0.68, "volume": 0.49,
"maxVolume": 1.5, "maxVolume": 1.5,
"lat": 48.625, "lat": 48.625,
"lng": 14.318, "lng": 14.318,
"sparkline": [ "sparkline": [
7.48, 559.44,
7.29, 559.37,
7.27, 559.29,
7.24, 559.21,
0, 559.2,
0, 559.19,
0, 559.18,
7.18, 559.16,
7.18, 559.13,
0, 559.12,
0, 559.11,
0 559.09
] ]
}, },
{ {
@@ -62,28 +62,28 @@
"name": "Hněvkovice", "name": "Hněvkovice",
"river": "Vltava", "river": "Vltava",
"priority": true, "priority": true,
"level": "369.79", "level": "369.83",
"capacity": 87.1, "capacity": 87.8,
"storageDiff": -0.31, "storageDiff": -0.27,
"inflow": "10.8", "inflow": "0.0",
"outflow": "1.3", "outflow": "2.5",
"volume": 20.24, "volume": 20.33,
"maxVolume": 21.1, "maxVolume": 21.1,
"lat": 49.183, "lat": 49.183,
"lng": 14.444, "lng": 14.444,
"sparkline": [ "sparkline": [
18.46, 369.85,
14.28, 369.84,
5, 369.84,
1.25, 369.84,
1.25, 369.84,
1.25, 369.83,
1.25, 369.83,
1.25, 369.83,
1.25, 369.81,
1.25, 369.81,
1.25, 369.83,
1.25 369.83
] ]
}, },
{ {
@@ -91,28 +91,28 @@
"name": "Kořensko", "name": "Kořensko",
"river": "Vltava", "river": "Vltava",
"priority": false, "priority": false,
"level": "352.42", "level": "352.56",
"capacity": 28, "capacity": 37.3,
"storageDiff": -0.18, "storageDiff": -0.04,
"inflow": "14.1", "inflow": "13.4",
"outflow": "19.0", "outflow": "19.1",
"volume": 2.74, "volume": 2.79,
"maxVolume": 2.8, "maxVolume": 2.8,
"lat": 49.255, "lat": 49.255,
"lng": 14.398, "lng": 14.398,
"sparkline": [ "sparkline": [
19.01, 352.49,
19.01, 352.52,
19.01, 352.56,
19.01, 352.57,
19.01, 352.57,
19.01, 352.56,
19.01, 352.56,
19.01, 352.56,
19.01, 352.56,
19.01, 352.56,
19.01, 352.56,
19.01 352.56
] ]
}, },
{ {
@@ -120,28 +120,28 @@
"name": "Orlík", "name": "Orlík",
"river": "Vltava", "river": "Vltava",
"priority": true, "priority": true,
"level": "345.26", "level": "345.27",
"capacity": 63.6, "capacity": 63.6,
"storageDiff": -4.64, "storageDiff": -4.63,
"inflow": "23.8", "inflow": "24.4",
"outflow": "0.0", "outflow": "0.0",
"volume": 522.12, "volume": 522.12,
"maxVolume": 716.5, "maxVolume": 716.5,
"lat": 49.606, "lat": 49.606,
"lng": 14.17, "lng": 14.17,
"sparkline": [ "sparkline": [
444.3, 345.26,
370.39, 345.26,
381.47, 345.25,
431.93, 345.26,
432.4, 345.26,
432.9, 345.26,
432.41, 345.26,
377.67, 345.26,
137.48, 345.26,
0, 345.26,
0, 345.27,
0 345.27
] ]
}, },
{ {
@@ -178,28 +178,28 @@
"name": "Slapy", "name": "Slapy",
"river": "Vltava", "river": "Vltava",
"priority": true, "priority": true,
"level": "269.84", "level": "269.87",
"capacity": 77.5, "capacity": 78,
"storageDiff": -0.76, "storageDiff": -0.73,
"inflow": "46.5", "inflow": "81.1",
"outflow": "0.0", "outflow": "0.0",
"volume": 260.21, "volume": 261.23,
"maxVolume": 269.3, "maxVolume": 269.3,
"lat": 49.822, "lat": 49.822,
"lng": 14.436, "lng": 14.436,
"sparkline": [ "sparkline": [
310.27, 269.86,
308.35, 269.89,
304.36, 269.88,
284.81, 269.88,
285.23, 269.87,
287.34, 269.89,
287.91, 269.89,
217.32, 269.89,
79.38, 269.89,
0, 269.89,
0, 269.88,
0 269.87
] ]
}, },
{ {
@@ -207,28 +207,28 @@
"name": "Štěchovice", "name": "Štěchovice",
"river": "Vltava", "river": "Vltava",
"priority": false, "priority": false,
"level": "218.72", "level": "217.17",
"capacity": 68.8, "capacity": 6.8,
"storageDiff": -0.68, "storageDiff": -2.23,
"inflow": "19.9", "inflow": "48.3",
"outflow": "25.3", "outflow": "25.3",
"volume": 9.68, "volume": 8.36,
"maxVolume": 11.2, "maxVolume": 11.2,
"lat": 49.845, "lat": 49.845,
"lng": 14.412, "lng": 14.412,
"sparkline": [ "sparkline": [
150.41, 218.1,
150.43, 217.82,
120.77, 217.57,
99.8, 217.32,
99.83, 217.29,
94.85, 217.27,
85.34, 217.24,
85.17, 217.23,
52.56, 217.22,
25.32, 217.19,
25.39, 217.17,
25.33 217.17
] ]
}, },
{ {
@@ -294,28 +294,28 @@
"name": "Římov", "name": "Římov",
"river": "Malše", "river": "Malše",
"priority": true, "priority": true,
"level": "467.72", "level": "467.74",
"capacity": 74.8, "capacity": 74.9,
"storageDiff": -2.93, "storageDiff": -2.91,
"inflow": "2.9", "inflow": "2.2",
"outflow": "0.0", "outflow": "0.0",
"volume": 26.49, "volume": 26.53,
"maxVolume": 33.8, "maxVolume": 33.8,
"lat": 48.847, "lat": 48.847,
"lng": 14.487, "lng": 14.487,
"sparkline": [ "sparkline": [
0.7, 467.73,
0.7, 467.73,
0.7, 467.73,
0.7, 467.73,
0.7, 467.73,
0.7, 467.73,
0, 467.73,
0.7, 467.73,
0.7, 467.74,
0.7, 467.74,
0.7, 467.74,
0 467.74
] ]
}, },
{ {
@@ -323,28 +323,28 @@
"name": "Hracholusky", "name": "Hracholusky",
"river": "Mže", "river": "Mže",
"priority": true, "priority": true,
"level": "352.85", "level": "352.84",
"capacity": 0, "capacity": 0,
"storageDiff": -1.25, "storageDiff": -1.26,
"inflow": "1.5", "inflow": "1.5",
"outflow": "2.5", "outflow": "0.0",
"volume": 32.37, "volume": 32.32,
"maxVolume": 56.7, "maxVolume": 56.7,
"lat": 49.789, "lat": 49.789,
"lng": 13.155, "lng": 13.155,
"sparkline": [ "sparkline": [
2.52, 352.85,
2.53, 352.85,
2.53, 352.84,
2.53, 352.84,
2.53, 352.84,
2.53, 352.84,
2.53, 352.84,
2.53, 352.84,
2.53, 352.84,
2.53, 352.84,
2.53, 352.85,
2.53 352.84
] ]
} }
] ]
+1 -1
View File
@@ -33,7 +33,7 @@ const lakes = lakesConfig.map(lake => {
// Take up to 12 last records for sparkline // Take up to 12 last records for sparkline
const recentData = data.slice(-12); const recentData = data.slice(-12);
sparkline = recentData.map(d => (d.flow === null || isNaN(d.flow) ? 0 : d.flow)); sparkline = recentData.map(d => (d.level === null || isNaN(d.level) ? 0 : d.level));
// Pad with zeros if less than 12 // Pad with zeros if less than 12
while (sparkline.length < 12) { while (sparkline.length < 12) {
+42
View File
@@ -0,0 +1,42 @@
import React from 'react';
interface Props {
value: number;
size?: number;
strokeWidth?: number;
}
export const CircularProgress: React.FC<Props> = ({ value, size = 60, strokeWidth = 6 }) => {
const radius = (size - strokeWidth) / 2;
const circumference = radius * 2 * Math.PI;
const offset = circumference - (value / 100) * circumference;
return (
<div style={{ position: 'relative', width: size, height: size }}>
<svg width={size} height={size}>
<circle
stroke="rgba(255,255,255,0.1)"
fill="transparent"
strokeWidth={strokeWidth}
r={radius}
cx={size / 2}
cy={size / 2}
/>
<circle
stroke="var(--color-cyan)"
fill="transparent"
strokeWidth={strokeWidth}
strokeLinecap="round"
style={{ strokeDasharray: circumference, strokeDashoffset: offset, transition: 'stroke-dashoffset 0.5s ease-in-out' }}
r={radius}
cx={size / 2}
cy={size / 2}
transform={`rotate(-90 ${size / 2} ${size / 2})`}
/>
</svg>
<div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: size * 0.25, fontWeight: 'bold' }}>
{value > 0 ? `${value.toFixed(1)}%` : 'N/A'}
</div>
</div>
);
};
+3 -29
View File
@@ -2,6 +2,7 @@ import { useState, useEffect } from 'react';
import { FiStar } from 'react-icons/fi'; import { FiStar } from 'react-icons/fi';
import { type Language } from '../translations'; import { type Language } from '../translations';
import { useFavorites } from '../hooks/useFavorites'; import { useFavorites } from '../hooks/useFavorites';
import { CircularProgress } from './CircularProgress';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { slugify } from '../utils/slugify'; import { slugify } from '../utils/slugify';
import { AreaChart, Area, ResponsiveContainer } from 'recharts'; import { AreaChart, Area, ResponsiveContainer } from 'recharts';
@@ -25,34 +26,13 @@ interface Props {
language: Language; language: Language;
} }
const CircularProgress = ({ value, size = 60, strokeWidth = 6 }: { value: number, size?: number, strokeWidth?: number }) => {
const radius = (size - strokeWidth) / 2;
const circumference = radius * 2 * Math.PI;
const offset = circumference - (value / 100) * circumference;
return (
<div style={{ position: 'relative', width: size, height: size }}>
<svg width={size} height={size}>
<circle stroke="rgba(255,255,255,0.1)" fill="transparent" strokeWidth={strokeWidth} r={radius} cx={size / 2} cy={size / 2} />
<circle
stroke="var(--color-cyan)" fill="transparent" strokeWidth={strokeWidth} strokeLinecap="round"
style={{ strokeDasharray: circumference, strokeDashoffset: offset, transition: 'stroke-dashoffset 0.5s ease-in-out' }}
r={radius} cx={size / 2} cy={size / 2} transform={`rotate(-90 ${size / 2} ${size / 2})`}
/>
</svg>
<div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: size * 0.25, fontWeight: 'bold' }}>
{value > 0 ? `${value}%` : 'N/A'}
</div>
</div>
);
};
const FavoritesOverview = ({ language }: Props) => { const FavoritesOverview = ({ language }: Props) => {
const [lakes, setLakes] = useState<Lake[]>([]); const [lakes, setLakes] = useState<Lake[]>([]);
const { isFavorite, toggleFavorite } = useFavorites(); const { isFavorite, toggleFavorite } = useFavorites();
const navigate = useNavigate(); const navigate = useNavigate();
useEffect(() => { useEffect(() => {
fetch('/data/lakes_index.json') fetch(`/data/lakes_index.json?t=${Date.now()}`)
.then(res => res.json()) .then(res => res.json())
.then(data => setLakes(data)) .then(data => setLakes(data))
.catch(err => console.error(err)); .catch(err => console.error(err));
@@ -131,17 +111,11 @@ const FavoritesOverview = ({ language }: Props) => {
<div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}> <div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}>
<CircularProgress value={lake.capacity} size={70} strokeWidth={6} /> <CircularProgress value={lake.capacity} size={70} strokeWidth={6} />
<div> <div>
<div style={{ fontSize: '1.25rem', fontWeight: 'bold' }}>
<span style={{ color: lake.capacity >= 80 ? 'var(--color-green)' : lake.capacity < 40 ? 'var(--color-red)' : 'var(--text-main)' }}>
{lake.capacity > 0 ? `${lake.capacity}%` : 'N/A'}
</span>
</div>
{lake.storageDiff !== undefined && ( {lake.storageDiff !== undefined && (
<div style={{ fontSize: '0.8rem', color: lake.storageDiff >= 0 ? 'var(--color-green)' : 'var(--color-red)', fontWeight: 500 }}> <div style={{ fontSize: '1.25rem', color: lake.storageDiff >= 0 ? 'var(--color-green)' : 'var(--color-red)', fontWeight: 'bold' }}>
{lake.storageDiff > 0 ? '+' : ''}{lake.storageDiff.toFixed(2)} m {lake.storageDiff > 0 ? '+' : ''}{lake.storageDiff.toFixed(2)} m
</div> </div>
)} )}
</div> </div>
</div> </div>
</div> </div>
+7 -3
View File
@@ -1,6 +1,7 @@
import { FiArrowUp, FiArrowDown } from 'react-icons/fi'; import { FiArrowUp, FiArrowDown } from 'react-icons/fi';
import { type Language, t } from '../translations'; import { type Language, t } from '../translations';
import { useState, useEffect } from 'react'; import { useState, useEffect } from 'react';
import { CircularProgress } from './CircularProgress';
interface KpiData { interface KpiData {
level: number; level: number;
@@ -55,9 +56,6 @@ const KpiCards = ({ data, language, lakeName = 'Lipno 1' }: Props) => {
({(data.levelDiff30d ?? 0) > 0 ? '+' : ''}{((data.levelDiff30d ?? 0) * 100).toFixed(1)} cm / 30d) ({(data.levelDiff30d ?? 0) > 0 ? '+' : ''}{((data.levelDiff30d ?? 0) * 100).toFixed(1)} cm / 30d)
</div> </div>
</div> </div>
{/* Decorative Circle for Level */}
<div style={{ position: 'absolute', right: '1.5rem', top: '1.5rem', width: '40px', height: '40px', borderRadius: '50%', border: '4px solid rgba(0, 195, 255, 0.2)', borderTopColor: 'var(--color-cyan)', transform: 'rotate(45deg)' }}></div>
</div> </div>
{/* CARD 2: PRŮTOK */} {/* CARD 2: PRŮTOK */}
@@ -135,6 +133,10 @@ const KpiCards = ({ data, language, lakeName = 'Lipno 1' }: Props) => {
</div> </div>
)} )}
</div> </div>
<div style={{ display: 'flex', alignItems: 'center', gap: '1.5rem', marginTop: '0.5rem' }}>
<CircularProgress value={data.fullness} size={80} strokeWidth={8} />
<div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'center' }}>
<div style={{ fontSize: '2rem', fontWeight: 'bold', lineHeight: 1, marginBottom: '0.5rem', color: data.storageDiff && data.storageDiff < 0 ? 'var(--color-red)' : 'var(--color-cyan)' }}> <div style={{ fontSize: '2rem', fontWeight: 'bold', lineHeight: 1, marginBottom: '0.5rem', color: data.storageDiff && data.storageDiff < 0 ? 'var(--color-red)' : 'var(--color-cyan)' }}>
{data.storageDiff !== undefined && data.storageDiff !== 0 ? (data.storageDiff > 0 ? `+${data.storageDiff.toFixed(2)} m` : `${data.storageDiff.toFixed(2)} m`) : (data.fullness > 0 ? `${data.fullness.toFixed(1)}%` : 'N/A')} {data.storageDiff !== undefined && data.storageDiff !== 0 ? (data.storageDiff > 0 ? `+${data.storageDiff.toFixed(2)} m` : `${data.storageDiff.toFixed(2)} m`) : (data.fullness > 0 ? `${data.fullness.toFixed(1)}%` : 'N/A')}
</div> </div>
@@ -143,6 +145,8 @@ const KpiCards = ({ data, language, lakeName = 'Lipno 1' }: Props) => {
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
); );
}; };
+13 -44
View File
@@ -1,10 +1,11 @@
import { useState, useEffect } from 'react'; import { useState, useEffect } from 'react';
import { FiTrendingUp, FiTrendingDown, FiStar } from 'react-icons/fi'; import { FiTrendingUp, FiTrendingDown, FiStar } from 'react-icons/fi';
import { type Language, t } from '../translations'; import { type Language, t } from '../translations';
import { AreaChart, Area, ResponsiveContainer } from 'recharts'; import { AreaChart, Area, ResponsiveContainer, YAxis } from 'recharts';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { slugify } from '../utils/slugify'; import { slugify } from '../utils/slugify';
import { useFavorites } from '../hooks/useFavorites'; import { useFavorites } from '../hooks/useFavorites';
import { CircularProgress } from './CircularProgress';
interface Lake { interface Lake {
id: string; id: string;
@@ -24,45 +25,17 @@ interface Props {
language: Language; language: Language;
} }
const CircularProgress = ({ value, size = 60, strokeWidth = 6 }: { value: number, size?: number, strokeWidth?: number }) => {
const radius = (size - strokeWidth) / 2;
const circumference = radius * 2 * Math.PI;
const offset = circumference - (value / 100) * circumference;
return (
<div style={{ position: 'relative', width: size, height: size }}>
<svg width={size} height={size}>
<circle
stroke="rgba(255,255,255,0.1)"
fill="transparent"
strokeWidth={strokeWidth}
r={radius}
cx={size / 2}
cy={size / 2}
/>
<circle
stroke="var(--color-cyan)"
fill="transparent"
strokeWidth={strokeWidth}
strokeLinecap="round"
style={{ strokeDasharray: circumference, strokeDashoffset: offset, transition: 'stroke-dashoffset 0.5s ease-in-out' }}
r={radius}
cx={size / 2}
cy={size / 2}
transform={`rotate(-90 ${size / 2} ${size / 2})`}
/>
</svg>
<div style={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: size * 0.25, fontWeight: 'bold' }}>
{value > 0 ? `${value}%` : 'N/A'}
</div>
</div>
);
};
const LakeCard = ({ lake, language, isFav, onToggleFav }: { lake: Lake, language: Language, isFav: boolean, onToggleFav: (id: string) => void }) => { const LakeCard = ({ lake, language, isFav, onToggleFav }: { lake: Lake, language: Language, isFav: boolean, onToggleFav: (id: string) => void }) => {
const navigate = useNavigate(); const navigate = useNavigate();
const chartData = lake.sparkline.map((val, i) => ({ name: i, value: val })); const chartData = lake.sparkline.map((val, i) => ({ name: i, value: val }));
const minVal = Math.min(...lake.sparkline);
const maxVal = Math.max(...lake.sparkline);
const diff = maxVal - minVal;
// Enforce a minimum visual span of 0.5 meters so tiny fluctuations don't look like mountains
const padding = diff < 0.5 ? (0.5 - diff) / 2 : 0;
const yDomain = [minVal - padding, maxVal + padding];
return ( return (
<div <div
className="kpi-card priority-lake-card" className="kpi-card priority-lake-card"
@@ -106,13 +79,8 @@ const LakeCard = ({ lake, language, isFav, onToggleFav }: { lake: Lake, language
<div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}> <div style={{ display: 'flex', alignItems: 'center', gap: '1rem' }}>
<CircularProgress value={lake.capacity} size={70} strokeWidth={6} /> <CircularProgress value={lake.capacity} size={70} strokeWidth={6} />
<div> <div>
<div style={{ fontSize: '1.25rem', fontWeight: 'bold' }}>
<span style={{ color: lake.capacity >= 80 ? 'var(--color-green)' : lake.capacity < 40 ? 'var(--color-red)' : 'var(--text-main)' }}>
{lake.capacity > 0 ? `${lake.capacity}%` : 'N/A'}
</span>
</div>
{lake.storageDiff !== undefined && ( {lake.storageDiff !== undefined && (
<div style={{ fontSize: '0.8rem', color: lake.storageDiff >= 0 ? 'var(--color-green)' : 'var(--color-red)', fontWeight: 500 }}> <div style={{ fontSize: '1.25rem', color: lake.storageDiff >= 0 ? 'var(--color-green)' : 'var(--color-red)', fontWeight: 'bold' }}>
{lake.storageDiff > 0 ? '+' : ''}{lake.storageDiff.toFixed(2)} m {lake.storageDiff > 0 ? '+' : ''}{lake.storageDiff.toFixed(2)} m
</div> </div>
)} )}
@@ -130,7 +98,8 @@ const LakeCard = ({ lake, language, isFav, onToggleFav }: { lake: Lake, language
<stop offset="95%" stopColor="var(--color-cyan)" stopOpacity={0} /> <stop offset="95%" stopColor="var(--color-cyan)" stopOpacity={0} />
</linearGradient> </linearGradient>
</defs> </defs>
<Area type="monotone" dataKey="value" stroke="var(--color-cyan)" fillOpacity={1} fill="url(#colorSpark)" /> <YAxis domain={yDomain} hide />
<Area type="monotone" dataKey="value" stroke="var(--color-cyan)" fillOpacity={1} fill="url(#colorSpark)" baseValue={yDomain[0]} />
</AreaChart> </AreaChart>
</ResponsiveContainer> </ResponsiveContainer>
</div> </div>
@@ -201,7 +170,7 @@ const LakesOverview = ({ language }: Props) => {
const { isFavorite, toggleFavorite, favorites } = useFavorites(); const { isFavorite, toggleFavorite, favorites } = useFavorites();
useEffect(() => { useEffect(() => {
fetch('/data/lakes_index.json') fetch(`/data/lakes_index.json?t=${Date.now()}`)
.then(res => res.json()) .then(res => res.json())
.then(data => setLakes(data)) .then(data => setLakes(data))
.catch(err => console.error(err)); .catch(err => console.error(err));