From 5411bd16ff57fc9c306bc75864cbfda570557013 Mon Sep 17 00:00:00 2001 From: David Fencl Date: Fri, 5 Jun 2026 22:24:47 +0200 Subject: [PATCH] feat: update lake index, sync scraping scripts, and prune unused data files --- public/data/BIBI.json | 167 -------- public/data/BLHU.json | 177 --------- public/data/KCKC.json | 177 --------- public/data/KLDP.json | 167 -------- public/data/KLHP.json | 167 -------- public/data/KLKL.json | 177 --------- public/data/LILA.json | 177 --------- public/data/MARI.json | 148 ++++--- public/data/MZHR.json | 148 ++++--- public/data/MZLU.json | 177 --------- public/data/MZSS.json | 1 - public/data/OPOB.json | 177 --------- public/data/PPPI.json | 177 --------- public/data/RACU.json | 177 --------- public/data/SPNE.json | 177 --------- public/data/VLHN.json | 219 +++++++++++ public/data/VLKO.json | 219 +++++++++++ public/data/VLL1.json | 150 ++++--- public/data/VLL2.json | 219 +++++++++++ public/data/VLOR.json | 152 ++++--- public/data/VLSL.json | 150 ++++--- public/data/VLST.json | 219 +++++++++++ public/data/ZLUT.json | 1 - public/data/lakes_index.json | 654 ++++++++++--------------------- public/data/lipno.json | 172 -------- scripts/buildIndex.ts | 31 +- scripts/lakesConfig.ts | 34 +- scripts/scrapeLakes.ts | 98 +++-- src/components/KpiCards.tsx | 135 ++++--- src/components/LakeDetail.tsx | 31 +- src/components/LakesOverview.tsx | 4 +- src/index.css | 29 +- testScrape.js | 12 +- 33 files changed, 1793 insertions(+), 3127 deletions(-) delete mode 100644 public/data/BIBI.json delete mode 100644 public/data/BLHU.json delete mode 100644 public/data/KCKC.json delete mode 100644 public/data/KLDP.json delete mode 100644 public/data/KLHP.json delete mode 100644 public/data/KLKL.json delete mode 100644 public/data/LILA.json delete mode 100644 public/data/MZLU.json delete mode 100644 public/data/MZSS.json delete mode 100644 public/data/OPOB.json delete mode 100644 public/data/PPPI.json delete mode 100644 public/data/RACU.json delete mode 100644 public/data/SPNE.json create mode 100644 public/data/VLHN.json create mode 100644 public/data/VLKO.json create mode 100644 public/data/VLL2.json create mode 100644 public/data/VLST.json delete mode 100644 public/data/ZLUT.json delete mode 100644 public/data/lipno.json diff --git a/public/data/BIBI.json b/public/data/BIBI.json deleted file mode 100644 index 2431c5d..0000000 --- a/public/data/BIBI.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 463.41, - "flow": null - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T19:15:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 463.42, - "flow": null - }, - { - "timestamp": "2026-06-05T19:45:00.000Z", - "level": 463.42, - "flow": null - } -] \ No newline at end of file diff --git a/public/data/BLHU.json b/public/data/BLHU.json deleted file mode 100644 index 65bf10f..0000000 --- a/public/data/BLHU.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 520.64, - "flow": 0.78 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 520.59, - "flow": 0.75 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 520.78, - "flow": 0.72 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 520.94, - "flow": 0.69 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 521.01, - "flow": 0.69 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 521.14, - "flow": 0.63 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 521.18, - "flow": 0.64 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 521.18, - "flow": 0.65 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 521.18, - "flow": 0.64 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 521.18, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 521.18, - "flow": 0.64 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 521.18, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 521.18, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 521.19, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 521.19, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 521.19, - "flow": 0.64 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 521.19, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 521.2, - "flow": 0.64 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 521.2, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 521.2, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 521.2, - "flow": 0.63 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 521.21, - "flow": 0.64 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 521.21, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 521.21, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 521.21, - "flow": 0.64 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 521.22, - "flow": 0.64 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 521.22, - "flow": 0.64 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 521.22, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 521.22, - "flow": 0.62 - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 521.22, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 521.22, - "flow": 0.63 - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 521.22, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 521.23, - "flow": 0.64 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 521.23, - "flow": 0.65 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 521.23, - "flow": 0.64 - } -] \ No newline at end of file diff --git a/public/data/KCKC.json b/public/data/KCKC.json deleted file mode 100644 index cfbc5f8..0000000 --- a/public/data/KCKC.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 292.88, - "flow": 0.02 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 292.87, - "flow": 0.02 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 292.9, - "flow": 0.02 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 292.9, - "flow": 0.02 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 292.9, - "flow": 0.02 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 292.9, - "flow": 0.02 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 292.9, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 292.9, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 292.9, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 292.9, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 292.91, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 292.91, - "flow": null - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 292.91, - "flow": null - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 292.91, - "flow": null - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 292.91, - "flow": null - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 292.91, - "flow": null - } -] \ No newline at end of file diff --git a/public/data/KLDP.json b/public/data/KLDP.json deleted file mode 100644 index 2ab9036..0000000 --- a/public/data/KLDP.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 632.73, - "flow": null - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 632.74, - "flow": null - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 632.76, - "flow": null - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 632.77, - "flow": null - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 632.77, - "flow": null - } -] \ No newline at end of file diff --git a/public/data/KLHP.json b/public/data/KLHP.json deleted file mode 100644 index a0623a9..0000000 --- a/public/data/KLHP.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 635.67, - "flow": null - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 635.67, - "flow": null - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 635.69, - "flow": null - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 635.71, - "flow": null - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 635.7, - "flow": null - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 635.7, - "flow": null - } -] \ No newline at end of file diff --git a/public/data/KLKL.json b/public/data/KLKL.json deleted file mode 100644 index b148249..0000000 --- a/public/data/KLKL.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 345, - "flow": 0.56 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 344.95, - "flow": 0.56 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 344.99, - "flow": 0.57 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 345.15, - "flow": 0.57 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 345.18, - "flow": 0.55 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 345.18, - "flow": 0.56 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 345.17, - "flow": 0.55 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 345.17, - "flow": 0.56 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 345.17, - "flow": 0.56 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 345.17, - "flow": 0.56 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 345.17, - "flow": 0.56 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 345.16, - "flow": 0.56 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 345.17, - "flow": 0.56 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 345.17, - "flow": 0.56 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 345.17, - "flow": 0.56 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 345.17, - "flow": 0.56 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 345.18, - "flow": 0.56 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 345.18, - "flow": 1.19 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 345.18, - "flow": 1.19 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 345.17, - "flow": 1.18 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 345.17, - "flow": 1.18 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 345.17, - "flow": 1.18 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 345.17, - "flow": 1.19 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 345.16, - "flow": 1.19 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 345.16, - "flow": 1.54 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 345.15, - "flow": 1.56 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 345.15, - "flow": 1.54 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 345.15, - "flow": 1.54 - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 345.14, - "flow": 1.54 - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 345.14, - "flow": 1.53 - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 345.14, - "flow": 1.53 - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 345.14, - "flow": 1.53 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 345.14, - "flow": 1.53 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 345.14, - "flow": 1.53 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 345.14, - "flow": 1.53 - } -] \ No newline at end of file diff --git a/public/data/LILA.json b/public/data/LILA.json deleted file mode 100644 index 2007be1..0000000 --- a/public/data/LILA.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 640.65, - "flow": 0.01 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 640.65, - "flow": 0.01 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 640.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 640.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 640.67, - "flow": 0.01 - } -] \ No newline at end of file diff --git a/public/data/MARI.json b/public/data/MARI.json index d3801e9..9fd21ed 100644 --- a/public/data/MARI.json +++ b/public/data/MARI.json @@ -2,176 +2,218 @@ { "timestamp": "2026-05-30T05:00:00.000Z", "level": 467.48, - "flow": 0.9 + "flow": 0.9, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-05-31T05:00:00.000Z", "level": 467.44, - "flow": 0.9 + "flow": 0.9, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-01T05:00:00.000Z", "level": 467.47, - "flow": 0.9 + "flow": 0.9, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-02T05:00:00.000Z", "level": 467.54, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-03T05:00:00.000Z", "level": 467.58, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T05:00:00.000Z", "level": 467.6, - "flow": 0.7 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 467.65, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T21:00:00.000Z", "level": 467.66, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T22:00:00.000Z", "level": 467.66, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T23:00:00.000Z", "level": 467.67, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T00:00:00.000Z", "level": 467.67, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T01:00:00.000Z", "level": 467.68, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T02:00:00.000Z", "level": 467.68, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T03:00:00.000Z", "level": 467.68, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T04:00:00.000Z", "level": 467.68, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T05:00:00.000Z", "level": 467.68, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T06:00:00.000Z", "level": 467.69, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T07:00:00.000Z", "level": 467.69, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T08:00:00.000Z", "level": 467.69, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T09:00:00.000Z", "level": 467.69, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T10:00:00.000Z", "level": 467.7, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T11:00:00.000Z", "level": 467.7, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T12:00:00.000Z", "level": 467.7, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T13:00:00.000Z", "level": 467.7, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T14:00:00.000Z", "level": 467.71, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T15:00:00.000Z", "level": 467.71, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T16:00:00.000Z", "level": 467.71, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T17:00:00.000Z", "level": 467.71, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T18:00:00.000Z", "level": 467.71, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T19:00:00.000Z", "level": 467.72, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:10:00.000Z", + "timestamp": "2026-06-05T20:00:00.000Z", "level": 467.72, - "flow": 0.7 + "flow": 0.7, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:20:00.000Z", + "timestamp": "2026-06-05T20:10:00.000Z", "level": 467.72, - "flow": 0.7 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 467.72, - "flow": 0.7 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 467.72, - "flow": 0.7 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 467.72, - "flow": null + "flow": 0, + "inflow": 2.88, + "volume": 26.49 } ] \ No newline at end of file diff --git a/public/data/MZHR.json b/public/data/MZHR.json index 1061801..a2c9d58 100644 --- a/public/data/MZHR.json +++ b/public/data/MZHR.json @@ -2,176 +2,218 @@ { "timestamp": "2026-05-30T05:00:00.000Z", "level": 353.02, - "flow": 2.46 + "flow": 2.46, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-05-31T05:00:00.000Z", "level": 352.99, - "flow": 2.48 + "flow": 2.48, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-01T05:00:00.000Z", "level": 352.97, - "flow": 2.48 + "flow": 2.48, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-02T05:00:00.000Z", "level": 352.95, - "flow": 2.49 + "flow": 2.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-03T05:00:00.000Z", "level": 352.92, - "flow": 2.5 + "flow": 2.5, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T05:00:00.000Z", "level": 352.89, - "flow": 2.52 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 352.88, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T21:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T22:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T23:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T00:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T01:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T02:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T03:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T04:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T05:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T06:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T07:00:00.000Z", "level": 352.87, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T08:00:00.000Z", "level": 352.86, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T09:00:00.000Z", "level": 352.86, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T10:00:00.000Z", "level": 352.86, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T11:00:00.000Z", "level": 352.86, - "flow": 2.53 + "flow": 2.53, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T12:00:00.000Z", "level": 352.86, - "flow": 2.53 + "flow": 2.53, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T13:00:00.000Z", "level": 352.86, - "flow": 2.53 + "flow": 2.53, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T14:00:00.000Z", "level": 352.86, - "flow": 2.53 + "flow": 2.53, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T15:00:00.000Z", "level": 352.86, - "flow": 2.53 + "flow": 2.53, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T16:00:00.000Z", "level": 352.85, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T17:00:00.000Z", "level": 352.86, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T18:00:00.000Z", "level": 352.85, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T19:00:00.000Z", "level": 352.85, - "flow": 2.52 + "flow": 2.52, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:10:00.000Z", + "timestamp": "2026-06-05T20:00:00.000Z", "level": 352.85, - "flow": 2.52 + "flow": 2.53, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:20:00.000Z", + "timestamp": "2026-06-05T20:10:00.000Z", "level": 352.85, - "flow": 2.52 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 352.86, - "flow": 2.52 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 352.85, - "flow": 2.52 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 352.85, - "flow": 2.53 + "flow": 2.53, + "inflow": 1.46, + "volume": 32.35 } ] \ No newline at end of file diff --git a/public/data/MZLU.json b/public/data/MZLU.json deleted file mode 100644 index 6062676..0000000 --- a/public/data/MZLU.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 530.77, - "flow": 0.5 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 530.77, - "flow": 0.48 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 530.76, - "flow": 0.51 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 530.76, - "flow": 0.48 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 530.74, - "flow": 0.48 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 530.72, - "flow": 0.48 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 530.71, - "flow": 0.49 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 530.71, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 530.71, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 530.7, - "flow": 0.49 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 530.7, - "flow": 0.35 - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 530.7, - "flow": 0.35 - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 530.7, - "flow": 0.35 - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 530.7, - "flow": 0.35 - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 530.7, - "flow": 0.35 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 530.7, - "flow": 0.35 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 530.7, - "flow": 0.35 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 530.7, - "flow": 0.35 - } -] \ No newline at end of file diff --git a/public/data/MZSS.json b/public/data/MZSS.json deleted file mode 100644 index 0637a08..0000000 --- a/public/data/MZSS.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/public/data/OPOB.json b/public/data/OPOB.json deleted file mode 100644 index 21b7e50..0000000 --- a/public/data/OPOB.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 563.6, - "flow": 0.01 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 563.59, - "flow": 0.01 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 563.65, - "flow": 0.02 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 563.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 563.68, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 563.66, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 563.66, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 563.66, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 563.66, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 563.66, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 563.66, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 563.66, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 563.66, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 563.67, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 563.67, - "flow": null - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 563.67, - "flow": null - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 563.67, - "flow": null - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 563.67, - "flow": null - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 563.67, - "flow": null - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 563.67, - "flow": null - } -] \ No newline at end of file diff --git a/public/data/PPPI.json b/public/data/PPPI.json deleted file mode 100644 index e3821dc..0000000 --- a/public/data/PPPI.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 670.62, - "flow": 0.01 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 670.6, - "flow": 0.01 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 670.61, - "flow": 0.01 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 670.6, - "flow": 0.01 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 670.58, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 670.57, - "flow": 0.01 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 670.56, - "flow": 0.01 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 670.56, - "flow": null - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 670.56, - "flow": null - } -] \ No newline at end of file diff --git a/public/data/RACU.json b/public/data/RACU.json deleted file mode 100644 index 4324e37..0000000 --- a/public/data/RACU.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 313.38, - "flow": 1.44 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 313.35, - "flow": 1.46 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 313.35, - "flow": 1.35 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 313.44, - "flow": 0.97 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 313.5, - "flow": 0.98 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 313.56, - "flow": 0.99 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 313.59, - "flow": 1.05 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 313.59, - "flow": 0.94 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 313.59, - "flow": 0.94 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 313.59, - "flow": 0.94 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 313.59, - "flow": 0.94 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 313.59, - "flow": 0.95 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 313.6, - "flow": 0.95 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 313.6, - "flow": 0.95 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 313.6, - "flow": 1.12 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 313.59, - "flow": 2.85 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 313.59, - "flow": 3.15 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 313.58, - "flow": 3.11 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 313.58, - "flow": 2.97 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 313.57, - "flow": 2.92 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 313.57, - "flow": 2.9 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 313.56, - "flow": 2.88 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 313.55, - "flow": 2.97 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 313.55, - "flow": 3.07 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 313.54, - "flow": 3.14 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 313.53, - "flow": 3.12 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 313.53, - "flow": 3.12 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 313.52, - "flow": 3.11 - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 313.52, - "flow": 3.1 - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 313.51, - "flow": 3.1 - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 313.51, - "flow": 3.1 - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 313.51, - "flow": 3.1 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 313.51, - "flow": 3.1 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 313.51, - "flow": 3.1 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 313.51, - "flow": 3.1 - } -] \ No newline at end of file diff --git a/public/data/SPNE.json b/public/data/SPNE.json deleted file mode 100644 index 5485a6a..0000000 --- a/public/data/SPNE.json +++ /dev/null @@ -1,177 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 385, - "flow": 0.01 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 385, - "flow": 0.01 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 385.01, - "flow": 0.05 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 385.01, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 385.01, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 385.01, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 385.01, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 385.01, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 385.01, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 385.01, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 385.01, - "flow": 0.02 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 385.01, - "flow": 0.03 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 385.01, - "flow": 0.04 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 385.01, - "flow": 0.04 - }, - { - "timestamp": "2026-06-05T18:00:00.000Z", - "level": 385.01, - "flow": 0.04 - }, - { - "timestamp": "2026-06-05T19:00:00.000Z", - "level": 385.01, - "flow": 0.04 - }, - { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 385.01, - "flow": 0.04 - }, - { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 385.01, - "flow": 0.04 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 385.01, - "flow": 0.04 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 385.01, - "flow": 0.04 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 385.01, - "flow": 0.04 - } -] \ No newline at end of file diff --git a/public/data/VLHN.json b/public/data/VLHN.json new file mode 100644 index 0000000..9449cd6 --- /dev/null +++ b/public/data/VLHN.json @@ -0,0 +1,219 @@ +[ + { + "timestamp": "2026-05-30T05:00:00.000Z", + "level": 369.53, + "flow": 17.2, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-05-31T05:00:00.000Z", + "level": 369.53, + "flow": 17.18, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-01T05:00:00.000Z", + "level": 369.84, + "flow": 17.17, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-02T05:00:00.000Z", + "level": 370.01, + "flow": 17.16, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-03T05:00:00.000Z", + "level": 369.95, + "flow": 17.13, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T05:00:00.000Z", + "level": 369.85, + "flow": 17.15, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T21:00:00.000Z", + "level": 369.77, + "flow": 2.5, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T22:00:00.000Z", + "level": 369.79, + "flow": 2.5, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T23:00:00.000Z", + "level": 369.79, + "flow": 2.5, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T00:00:00.000Z", + "level": 369.81, + "flow": 2.5, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T01:00:00.000Z", + "level": 369.82, + "flow": 2.5, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T02:00:00.000Z", + "level": 369.83, + "flow": 2.5, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T03:00:00.000Z", + "level": 369.83, + "flow": 2.5, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T04:00:00.000Z", + "level": 369.84, + "flow": 2.5, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T05:00:00.000Z", + "level": 369.84, + "flow": 17.13, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T06:00:00.000Z", + "level": 369.83, + "flow": 17.1, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T07:00:00.000Z", + "level": 369.82, + "flow": 20.76, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T08:00:00.000Z", + "level": 369.8, + "flow": 17.23, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T09:00:00.000Z", + "level": 369.82, + "flow": 5.67, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T10:00:00.000Z", + "level": 369.82, + "flow": 0.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T11:00:00.000Z", + "level": 369.83, + "flow": 3.13, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T12:00:00.000Z", + "level": 369.82, + "flow": 12.94, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T13:00:00.000Z", + "level": 369.82, + "flow": 14.19, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T14:00:00.000Z", + "level": 369.81, + "flow": 14.18, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T15:00:00.000Z", + "level": 369.8, + "flow": 14.18, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T16:00:00.000Z", + "level": 369.79, + "flow": 14.18, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T17:00:00.000Z", + "level": 369.79, + "flow": 14.18, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T18:00:00.000Z", + "level": 369.79, + "flow": 14.18, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T19:00:00.000Z", + "level": 369.78, + "flow": 18.46, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T20:00:00.000Z", + "level": 369.77, + "flow": 14.28, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T20:10:00.000Z", + "level": 369.78, + "flow": 5, + "inflow": 10.82, + "volume": 20.2 + } +] \ No newline at end of file diff --git a/public/data/VLKO.json b/public/data/VLKO.json new file mode 100644 index 0000000..450fc43 --- /dev/null +++ b/public/data/VLKO.json @@ -0,0 +1,219 @@ +[ + { + "timestamp": "2026-05-30T05:00:00.000Z", + "level": 352.46, + "flow": 18.54, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-05-31T05:00:00.000Z", + "level": 352.45, + "flow": 18.07, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-01T05:00:00.000Z", + "level": 352.48, + "flow": 0.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-02T05:00:00.000Z", + "level": 352.49, + "flow": 0.06, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-03T05:00:00.000Z", + "level": 352.58, + "flow": 18.97, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T05:00:00.000Z", + "level": 352.51, + "flow": 19.06, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T21:00:00.000Z", + "level": 352.53, + "flow": 19.11, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T22:00:00.000Z", + "level": 352.5, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T23:00:00.000Z", + "level": 352.47, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T00:00:00.000Z", + "level": 352.44, + "flow": 18.84, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T01:00:00.000Z", + "level": 352.43, + "flow": 0.21, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T02:00:00.000Z", + "level": 352.44, + "flow": 0.21, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T03:00:00.000Z", + "level": 352.46, + "flow": 0.21, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T04:00:00.000Z", + "level": 352.47, + "flow": 0.21, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T05:00:00.000Z", + "level": 352.51, + "flow": 0.21, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T06:00:00.000Z", + "level": 352.56, + "flow": 0.21, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T07:00:00.000Z", + "level": 352.58, + "flow": 19.09, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T08:00:00.000Z", + "level": 352.56, + "flow": 35.03, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T09:00:00.000Z", + "level": 352.53, + "flow": 20.55, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T10:00:00.000Z", + "level": 352.51, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T11:00:00.000Z", + "level": 352.48, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T12:00:00.000Z", + "level": 352.47, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T13:00:00.000Z", + "level": 352.46, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T14:00:00.000Z", + "level": 352.46, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T15:00:00.000Z", + "level": 352.45, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T16:00:00.000Z", + "level": 352.45, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T17:00:00.000Z", + "level": 352.45, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T18:00:00.000Z", + "level": 352.45, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T19:00:00.000Z", + "level": 352.45, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T20:00:00.000Z", + "level": 352.45, + "flow": 19.01, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T20:10:00.000Z", + "level": 352.45, + "flow": 19.01, + "inflow": 14.13, + "volume": 2.75 + } +] \ No newline at end of file diff --git a/public/data/VLL1.json b/public/data/VLL1.json index 7ff32fc..dddaad5 100644 --- a/public/data/VLL1.json +++ b/public/data/VLL1.json @@ -2,176 +2,218 @@ { "timestamp": "2026-05-30T05:00:00.000Z", "level": 723.04, - "flow": 1.03 + "flow": 1.03, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-05-31T05:00:00.000Z", "level": 723.06, - "flow": 1.03 + "flow": 1.03, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-01T05:00:00.000Z", "level": 723.08, - "flow": 30.94 + "flow": 30.94, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-02T05:00:00.000Z", "level": 723.08, - "flow": 1.51 + "flow": 1.51, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-03T05:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T05:00:00.000Z", "level": 723.08, - "flow": 1.49 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 723.08, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T21:00:00.000Z", "level": 723.08, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T22:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T23:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T00:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T01:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T02:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T03:00:00.000Z", "level": 723.08, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T04:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T05:00:00.000Z", "level": 723.08, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T06:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T07:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T08:00:00.000Z", "level": 723.1, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T09:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T10:00:00.000Z", "level": 723.1, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T11:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T12:00:00.000Z", "level": 723.1, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T13:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T14:00:00.000Z", "level": 723.1, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T15:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T16:00:00.000Z", "level": 723.1, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T17:00:00.000Z", "level": 723.09, - "flow": 1.49 + "flow": 1.49, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T18:00:00.000Z", "level": 723.09, - "flow": 13.76 + "flow": 13.76, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T19:00:00.000Z", "level": 723.08, - "flow": 34.78 + "flow": 34.78, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 723.09, - "flow": 34.85 + "timestamp": "2026-06-05T20:00:00.000Z", + "level": 723.08, + "flow": 37.78, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:20:00.000Z", + "timestamp": "2026-06-05T20:10:00.000Z", "level": 723.09, - "flow": 34.87 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 723.09, - "flow": 34.87 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 723.09, - "flow": 34.87 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 723.09, - "flow": 34.87 + "flow": 33.61, + "inflow": 2.51, + "volume": 199.27 } ] \ No newline at end of file diff --git a/public/data/VLL2.json b/public/data/VLL2.json new file mode 100644 index 0000000..a395460 --- /dev/null +++ b/public/data/VLL2.json @@ -0,0 +1,219 @@ +[ + { + "timestamp": "2026-05-30T05:00:00.000Z", + "level": 561.4, + "flow": 6.37, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-05-31T05:00:00.000Z", + "level": 560.37, + "flow": 7.06, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-01T05:00:00.000Z", + "level": 559, + "flow": 7.6, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-02T05:00:00.000Z", + "level": 559.91, + "flow": 6.83, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-03T05:00:00.000Z", + "level": 560.55, + "flow": 6.41, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T05:00:00.000Z", + "level": 560.71, + "flow": 6.37, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T21:00:00.000Z", + "level": 560.27, + "flow": 6.37, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T22:00:00.000Z", + "level": 560.23, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T23:00:00.000Z", + "level": 560.18, + "flow": 6.33, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T00:00:00.000Z", + "level": 560.14, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T01:00:00.000Z", + "level": 560.09, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T02:00:00.000Z", + "level": 560.04, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T03:00:00.000Z", + "level": 560, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T04:00:00.000Z", + "level": 559.95, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T05:00:00.000Z", + "level": 559.9, + "flow": 6.37, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T06:00:00.000Z", + "level": 559.86, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T07:00:00.000Z", + "level": 559.81, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T08:00:00.000Z", + "level": 559.76, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T09:00:00.000Z", + "level": 559.71, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T10:00:00.000Z", + "level": 559.65, + "flow": 6.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T11:00:00.000Z", + "level": 559.6, + "flow": 6.33, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T12:00:00.000Z", + "level": 559.54, + "flow": 6.33, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T13:00:00.000Z", + "level": 559.48, + "flow": 6.33, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T14:00:00.000Z", + "level": 559.42, + "flow": 6.33, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T15:00:00.000Z", + "level": 559.35, + "flow": 7.27, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T16:00:00.000Z", + "level": 559.27, + "flow": 7.29, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T17:00:00.000Z", + "level": 559.19, + "flow": 7.31, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T18:00:00.000Z", + "level": 559.11, + "flow": 7.34, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T19:00:00.000Z", + "level": 559.3, + "flow": 7.48, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T20:00:00.000Z", + "level": 559.73, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T20:10:00.000Z", + "level": 559.79, + "flow": 0, + "inflow": 3.71, + "volume": 0.62 + } +] \ No newline at end of file diff --git a/public/data/VLOR.json b/public/data/VLOR.json index 72c37fc..0e54a11 100644 --- a/public/data/VLOR.json +++ b/public/data/VLOR.json @@ -2,176 +2,218 @@ { "timestamp": "2026-05-30T05:00:00.000Z", "level": 345.7, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-05-31T05:00:00.000Z", "level": 345.75, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-01T05:00:00.000Z", "level": 345.82, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-02T05:00:00.000Z", "level": 345.76, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-03T05:00:00.000Z", "level": 345.76, - "flow": 17.77 + "flow": 17.77, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T05:00:00.000Z", "level": 345.67, - "flow": 0 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 345.65, - "flow": 98.84 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T21:00:00.000Z", "level": 345.59, - "flow": 374.8 + "flow": 374.8, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T22:00:00.000Z", "level": 345.58, - "flow": 97.45 + "flow": 97.45, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T23:00:00.000Z", "level": 345.58, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T00:00:00.000Z", "level": 345.57, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T01:00:00.000Z", "level": 345.59, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T02:00:00.000Z", "level": 345.59, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T03:00:00.000Z", "level": 345.58, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T04:00:00.000Z", "level": 345.6, - "flow": 100.93 + "flow": 100.93, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T05:00:00.000Z", "level": 345.54, - "flow": 284.29 + "flow": 284.29, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T06:00:00.000Z", "level": 345.52, - "flow": 187.15 + "flow": 187.15, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T07:00:00.000Z", "level": 345.53, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T08:00:00.000Z", "level": 345.52, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T09:00:00.000Z", "level": 345.53, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T10:00:00.000Z", "level": 345.54, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T11:00:00.000Z", "level": 345.53, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T12:00:00.000Z", "level": 345.55, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T13:00:00.000Z", "level": 345.54, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T14:00:00.000Z", "level": 345.55, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T15:00:00.000Z", "level": 345.56, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T16:00:00.000Z", "level": 345.55, - "flow": 72.6 + "flow": 72.6, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T17:00:00.000Z", "level": 345.53, - "flow": 186.83 + "flow": 186.83, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T18:00:00.000Z", "level": 345.47, - "flow": 454.38 + "flow": 454.38, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T19:00:00.000Z", "level": 345.39, - "flow": 444.3 + "flow": 444.3, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:10:00.000Z", - "level": 345.38, - "flow": 444.26 + "timestamp": "2026-06-05T20:00:00.000Z", + "level": 345.33, + "flow": 370.39, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 345.37, - "flow": 443.64 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 345.36, - "flow": 443.75 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 345.35, - "flow": 446.81 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 345.34, - "flow": 444.17 + "timestamp": "2026-06-05T20:10:00.000Z", + "level": 345.31, + "flow": 381.47, + "inflow": 23.84, + "volume": 523.52 } ] \ No newline at end of file diff --git a/public/data/VLSL.json b/public/data/VLSL.json index 716d386..7da6feb 100644 --- a/public/data/VLSL.json +++ b/public/data/VLSL.json @@ -2,176 +2,218 @@ { "timestamp": "2026-05-30T05:00:00.000Z", "level": 269.85, - "flow": 58.2 + "flow": 58.2, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-05-31T05:00:00.000Z", "level": 269.64, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-01T05:00:00.000Z", "level": 269.47, - "flow": 139.04 + "flow": 139.04, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-02T05:00:00.000Z", "level": 269.44, - "flow": 13.82 + "flow": 13.82, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-03T05:00:00.000Z", "level": 269.35, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T05:00:00.000Z", "level": 269.42, - "flow": 26.22 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 269.37, - "flow": 89.57 + "flow": 26.22, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T21:00:00.000Z", "level": 269.42, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T22:00:00.000Z", "level": 269.42, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-04T23:00:00.000Z", "level": 269.47, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T00:00:00.000Z", "level": 269.5, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T01:00:00.000Z", "level": 269.52, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T02:00:00.000Z", "level": 269.55, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T03:00:00.000Z", "level": 269.57, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T04:00:00.000Z", "level": 269.59, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T05:00:00.000Z", "level": 269.62, - "flow": 58.26 + "flow": 58.26, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T06:00:00.000Z", "level": 269.64, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T07:00:00.000Z", "level": 269.67, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T08:00:00.000Z", "level": 269.66, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T09:00:00.000Z", "level": 269.67, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T10:00:00.000Z", "level": 269.65, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T11:00:00.000Z", "level": 269.66, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T12:00:00.000Z", "level": 269.65, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T13:00:00.000Z", "level": 269.66, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T14:00:00.000Z", "level": 269.66, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T15:00:00.000Z", "level": 269.66, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T16:00:00.000Z", "level": 269.66, - "flow": 0 + "flow": 0, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T17:00:00.000Z", "level": 269.65, - "flow": 119.44 + "flow": 119.44, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T18:00:00.000Z", "level": 269.65, - "flow": 137.14 + "flow": 137.14, + "inflow": 0, + "volume": 0 }, { "timestamp": "2026-06-05T19:00:00.000Z", "level": 269.75, - "flow": 310.27 + "flow": 310.27, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:10:00.000Z", + "timestamp": "2026-06-05T20:00:00.000Z", "level": 269.76, - "flow": 311.12 + "flow": 308.35, + "inflow": 0, + "volume": 0 }, { - "timestamp": "2026-06-05T19:20:00.000Z", - "level": 269.74, - "flow": 312.38 - }, - { - "timestamp": "2026-06-05T19:30:00.000Z", - "level": 269.74, - "flow": 312.7 - }, - { - "timestamp": "2026-06-05T19:40:00.000Z", - "level": 269.75, - "flow": 313.15 - }, - { - "timestamp": "2026-06-05T19:50:00.000Z", - "level": 269.76, - "flow": 312.56 + "timestamp": "2026-06-05T20:10:00.000Z", + "level": 269.78, + "flow": 304.36, + "inflow": 46.5, + "volume": 259.76 } ] \ No newline at end of file diff --git a/public/data/VLST.json b/public/data/VLST.json new file mode 100644 index 0000000..2185b69 --- /dev/null +++ b/public/data/VLST.json @@ -0,0 +1,219 @@ +[ + { + "timestamp": "2026-05-30T05:00:00.000Z", + "level": 218.19, + "flow": 50.53, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-05-31T05:00:00.000Z", + "level": 217.4, + "flow": 50.43, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-01T05:00:00.000Z", + "level": 216.83, + "flow": 150.49, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-02T05:00:00.000Z", + "level": 218.77, + "flow": 25.35, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-03T05:00:00.000Z", + "level": 217.69, + "flow": 130.25, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T05:00:00.000Z", + "level": 217.97, + "flow": 22.27, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T21:00:00.000Z", + "level": 217.63, + "flow": 25.36, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T22:00:00.000Z", + "level": 217.57, + "flow": 25.39, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-04T23:00:00.000Z", + "level": 217.38, + "flow": 60.82, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T00:00:00.000Z", + "level": 217.18, + "flow": 50.48, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T01:00:00.000Z", + "level": 217.07, + "flow": 24.27, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T02:00:00.000Z", + "level": 216.98, + "flow": 24.27, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T03:00:00.000Z", + "level": 216.88, + "flow": 24.26, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T04:00:00.000Z", + "level": 216.79, + "flow": 24.25, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T05:00:00.000Z", + "level": 216.76, + "flow": 79.52, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T06:00:00.000Z", + "level": 216.48, + "flow": 70.84, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T07:00:00.000Z", + "level": 216.43, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T08:00:00.000Z", + "level": 216.43, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T09:00:00.000Z", + "level": 216.41, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T10:00:00.000Z", + "level": 216.41, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T11:00:00.000Z", + "level": 216.4, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T12:00:00.000Z", + "level": 216.4, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T13:00:00.000Z", + "level": 216.39, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T14:00:00.000Z", + "level": 216.38, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T15:00:00.000Z", + "level": 216.38, + "flow": 0, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T16:00:00.000Z", + "level": 216.37, + "flow": 7.12, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T17:00:00.000Z", + "level": 216.27, + "flow": 25.32, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T18:00:00.000Z", + "level": 216.58, + "flow": 70.8, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T19:00:00.000Z", + "level": 217.21, + "flow": 150.41, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T20:00:00.000Z", + "level": 217.84, + "flow": 150.43, + "inflow": 0, + "volume": 0 + }, + { + "timestamp": "2026-06-05T20:10:00.000Z", + "level": 217.99, + "flow": 120.77, + "inflow": 19.85, + "volume": 8.96 + } +] \ No newline at end of file diff --git a/public/data/ZLUT.json b/public/data/ZLUT.json deleted file mode 100644 index 0637a08..0000000 --- a/public/data/ZLUT.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/public/data/lakes_index.json b/public/data/lakes_index.json index d96451d..10259f9 100644 --- a/public/data/lakes_index.json +++ b/public/data/lakes_index.json @@ -5,10 +5,11 @@ "river": "Vltava", "priority": true, "level": "723.09", - "capacity": 0, - "inflow": "34.9", - "outflow": "34.9", - "volume": 306, + "capacity": 76.3, + "inflow": "2.5", + "outflow": "33.6", + "volume": 199.27, + "maxVolume": 306, "lat": 48.6322, "lng": 14.2215, "sparkline": [ @@ -17,13 +18,97 @@ 1.49, 1.49, 1.49, + 1.49, + 1.49, + 1.49, 13.76, 34.78, - 34.85, - 34.87, - 34.87, - 34.87, - 34.87 + 37.78, + 33.61 + ] + }, + { + "id": "VLL2|1", + "name": "Lipno II", + "river": "Vltava", + "priority": false, + "level": "559.79", + "capacity": 100, + "inflow": "3.7", + "outflow": "7.5", + "volume": 0.62, + "maxVolume": 1.5, + "lat": 48.625, + "lng": 14.318, + "sparkline": [ + 6.35, + 6.33, + 6.33, + 6.33, + 6.33, + 7.27, + 7.29, + 7.31, + 7.34, + 7.48, + 0, + 0 + ] + }, + { + "id": "VLHN|1", + "name": "Hněvkovice", + "river": "Vltava", + "priority": true, + "level": "369.78", + "capacity": 86.9, + "inflow": "10.8", + "outflow": "5.0", + "volume": 20.2, + "maxVolume": 21.1, + "lat": 49.183, + "lng": 14.444, + "sparkline": [ + 0.01, + 3.13, + 12.94, + 14.19, + 14.18, + 14.18, + 14.18, + 14.18, + 14.18, + 18.46, + 14.28, + 5 + ] + }, + { + "id": "VLKO|1", + "name": "Kořensko", + "river": "Vltava", + "priority": false, + "level": "352.45", + "capacity": 30, + "inflow": "14.1", + "outflow": "19.0", + "volume": 2.75, + "maxVolume": 2.8, + "lat": 49.255, + "lng": 14.398, + "sparkline": [ + 19.01, + 19.01, + 19.01, + 19.01, + 19.01, + 19.01, + 19.01, + 19.01, + 19.01, + 19.01, + 19.01, + 19.01 ] }, { @@ -31,14 +116,18 @@ "name": "Orlík", "river": "Vltava", "priority": true, - "level": "345.34", - "capacity": 0, - "inflow": "444.2", - "outflow": "444.2", - "volume": 716.5, + "level": "345.31", + "capacity": 63.8, + "inflow": "23.8", + "outflow": "381.5", + "volume": 523.52, + "maxVolume": 716.5, "lat": 49.606, "lng": 14.17, "sparkline": [ + 0, + 0, + 0, 0, 0, 0, @@ -46,26 +135,55 @@ 186.83, 454.38, 444.3, - 444.26, - 443.64, - 443.75, - 446.81, - 444.17 + 370.39, + 381.47 + ] + }, + { + "id": "UHKA|2", + "name": "Kamýk", + "river": "Vltava", + "priority": false, + "level": "0.00", + "capacity": 0, + "inflow": "0.0", + "outflow": "0.0", + "volume": 12.8, + "maxVolume": 12.8, + "lat": 49.636, + "lng": 14.254, + "sparkline": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 ] }, { "id": "VLSL|2", "name": "Slapy", "river": "Vltava", - "priority": false, - "level": "269.76", - "capacity": 0, - "inflow": "312.6", - "outflow": "312.6", - "volume": 269.3, + "priority": true, + "level": "269.78", + "capacity": 76.4, + "inflow": "46.5", + "outflow": "304.4", + "volume": 259.76, + "maxVolume": 269.3, "lat": 49.822, "lng": 14.436, "sparkline": [ + 0, + 0, + 0, 0, 0, 0, @@ -73,52 +191,51 @@ 119.44, 137.14, 310.27, - 311.12, - 312.38, - 312.7, - 313.15, - 312.56 + 308.35, + 304.36 ] }, { - "id": "BLHU|1", - "name": "Husinec", - "river": "Blanice (PI)", + "id": "VLST|2", + "name": "Štěchovice", + "river": "Vltava", "priority": false, - "level": "521.23", - "capacity": 0, - "inflow": "0.6", - "outflow": "0.6", - "volume": 6.9, - "lat": 49.052, - "lng": 13.983, + "level": "217.99", + "capacity": 39.6, + "inflow": "19.9", + "outflow": "120.8", + "volume": 8.96, + "maxVolume": 11.2, + "lat": 49.845, + "lng": 14.412, "sparkline": [ - 0.65, - 0.64, - 0.64, - 0.64, - 0.65, - 0.62, - 0.65, - 0.63, - 0.65, - 0.64, - 0.65, - 0.64 + 0, + 0, + 0, + 0, + 0, + 0, + 7.12, + 25.32, + 70.8, + 150.41, + 150.43, + 120.77 ] }, { - "id": "BIBI|1", - "name": "Bílsko", - "river": "Bílský potok", + "id": "VRSN|2", + "name": "Vrané", + "river": "Vltava", "priority": false, - "level": "463.42", + "level": "0.00", "capacity": 0, "inflow": "0.0", "outflow": "0.0", - "volume": 0, - "lat": 49.191, - "lng": 14.053, + "volume": 11.1, + "maxVolume": 11.1, + "lat": 49.934, + "lng": 14.385, "sparkline": [ 0, 0, @@ -135,17 +252,18 @@ ] }, { - "id": "KLDP|3", - "name": "Dolejší Padrťský rybník", - "river": "", - "priority": false, - "level": "632.77", + "id": "SVKR|2", + "name": "Švihov", + "river": "Želivka", + "priority": true, + "level": "0.00", "capacity": 0, "inflow": "0.0", "outflow": "0.0", - "volume": 0, - "lat": 49.664, - "lng": 13.766, + "volume": 266.6, + "maxVolume": 266.6, + "lat": 49.718, + "lng": 15.106, "sparkline": [ 0, 0, @@ -161,124 +279,17 @@ 0 ] }, - { - "id": "KLHP|3", - "name": "Hořejší Padrťský rybník", - "river": "", - "priority": false, - "level": "635.70", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 0, - "lat": 49.654, - "lng": 13.784, - "sparkline": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "id": "KLKL|3", - "name": "Klabava", - "river": "Klabava", - "priority": false, - "level": "345.14", - "capacity": 0, - "inflow": "1.5", - "outflow": "1.5", - "volume": 0, - "lat": 49.756, - "lng": 13.565, - "sparkline": [ - 1.19, - 1.54, - 1.56, - 1.54, - 1.54, - 1.54, - 1.53, - 1.53, - 1.53, - 1.53, - 1.53, - 1.53 - ] - }, - { - "id": "KCKC|3", - "name": "Klíčava", - "river": "Klíčava", - "priority": false, - "level": "292.91", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 8.3, - "lat": 50.065, - "lng": 13.929, - "sparkline": [ - 0.02, - 0.02, - 0.02, - 0.02, - 0.02, - 0.02, - 0.02, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "id": "LILA|3", - "name": "Láz", - "river": "Litavka", - "priority": false, - "level": "640.67", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 0, - "lat": 49.667, - "lng": 13.882, - "sparkline": [ - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01 - ] - }, { "id": "MARI|1", "name": "Římov", "river": "Malše", - "priority": false, + "priority": true, "level": "467.72", - "capacity": 0, - "inflow": "0.7", + "capacity": 74.8, + "inflow": "2.9", "outflow": "0.7", - "volume": 33.8, + "volume": 26.49, + "maxVolume": 33.8, "lat": 48.847, "lng": 14.487, "sparkline": [ @@ -300,15 +311,19 @@ "id": "MZHR|3", "name": "Hracholusky", "river": "Mže", - "priority": false, + "priority": true, "level": "352.85", "capacity": 0, - "inflow": "2.5", + "inflow": "1.5", "outflow": "2.5", - "volume": 56.7, + "volume": 32.35, + "maxVolume": 56.7, "lat": 49.789, "lng": 13.155, "sparkline": [ + 2.52, + 2.53, + 2.53, 2.53, 2.53, 2.53, @@ -316,281 +331,8 @@ 2.52, 2.52, 2.52, - 2.52, - 2.52, - 2.52, - 2.52, + 2.53, 2.53 ] - }, - { - "id": "MZLU|3", - "name": "Lučina", - "river": "Mže", - "priority": false, - "level": "530.70", - "capacity": 0, - "inflow": "0.3", - "outflow": "0.3", - "volume": 0, - "lat": 49.8, - "lng": 12.61, - "sparkline": [ - 0.49, - 0.49, - 0.49, - 0.49, - 0.35, - 0.35, - 0.35, - 0.35, - 0.35, - 0.35, - 0.35, - 0.35 - ] - }, - { - "id": "MZSS|3", - "name": "Plzeň", - "river": "Štruncovy sady", - "priority": false, - "level": "0.00", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 0, - "lat": 49.751, - "lng": 13.385, - "sparkline": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "id": "OPOB|3", - "name": "Obecnice", - "river": "Obecnický potok", - "priority": false, - "level": "563.67", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 0, - "lat": 49.721, - "lng": 13.945, - "sparkline": [ - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "id": "PPPI|3", - "name": "Pilská", - "river": "Pilský potok", - "priority": false, - "level": "670.56", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 0, - "lat": 49.676, - "lng": 13.896, - "sparkline": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "id": "RACU|3", - "name": "České Údolí", - "river": "Radbuza", - "priority": false, - "level": "313.51", - "capacity": 0, - "inflow": "3.1", - "outflow": "3.1", - "volume": 0, - "lat": 49.711, - "lng": 13.361, - "sparkline": [ - 3.07, - 3.14, - 3.12, - 3.12, - 3.11, - 3.1, - 3.1, - 3.1, - 3.1, - 3.1, - 3.1, - 3.1 - ] - }, - { - "id": "SPNE|2", - "name": "Němčice", - "river": "Sedlický potok", - "priority": false, - "level": "385.01", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 0, - "lat": 49.605, - "lng": 15.228, - "sparkline": [ - 0.03, - 0.03, - 0.03, - 0.04, - 0.04, - 0.04, - 0.04, - 0.04, - 0.04, - 0.04, - 0.04, - 0.04 - ] - }, - { - "id": "SVKR|2", - "name": "Švihov", - "river": "Želivka", - "priority": false, - "level": "0.00", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 266.6, - "lat": 49.718, - "lng": 15.106, - "sparkline": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "id": "UHKA|2", - "name": "Kamýk", - "river": "Vltava", - "priority": false, - "level": "0.00", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 12.8, - "lat": 49.636, - "lng": 14.254, - "sparkline": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "id": "VRSN|2", - "name": "Vrané", - "river": "Vltava", - "priority": false, - "level": "0.00", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 11.1, - "lat": 49.934, - "lng": 14.385, - "sparkline": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] - }, - { - "id": "ZLUT|3", - "name": "Žlutice", - "river": "Střela", - "priority": false, - "level": "0.00", - "capacity": 0, - "inflow": "0.0", - "outflow": "0.0", - "volume": 0, - "lat": 50.093, - "lng": 13.159, - "sparkline": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ] } ] \ No newline at end of file diff --git a/public/data/lipno.json b/public/data/lipno.json deleted file mode 100644 index d3df94b..0000000 --- a/public/data/lipno.json +++ /dev/null @@ -1,172 +0,0 @@ -[ - { - "timestamp": "2026-05-30T05:00:00.000Z", - "level": 723.04, - "flow": 1.03 - }, - { - "timestamp": "2026-05-31T05:00:00.000Z", - "level": 723.06, - "flow": 1.03 - }, - { - "timestamp": "2026-06-01T05:00:00.000Z", - "level": 723.08, - "flow": 30.94 - }, - { - "timestamp": "2026-06-02T05:00:00.000Z", - "level": 723.08, - "flow": 1.51 - }, - { - "timestamp": "2026-06-03T05:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-04T05:00:00.000Z", - "level": 723.08, - "flow": 1.49 - }, - { - "timestamp": "2026-06-04T18:00:00.000Z", - "level": 723.08, - "flow": 1.49 - }, - { - "timestamp": "2026-06-04T19:00:00.000Z", - "level": 723.08, - "flow": 1.49 - }, - { - "timestamp": "2026-06-04T20:00:00.000Z", - "level": 723.08, - "flow": 1.49 - }, - { - "timestamp": "2026-06-04T21:00:00.000Z", - "level": 723.08, - "flow": 1.49 - }, - { - "timestamp": "2026-06-04T22:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-04T23:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T00:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T01:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T02:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T03:00:00.000Z", - "level": 723.08, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T04:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T05:00:00.000Z", - "level": 723.08, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T06:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T07:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T08:00:00.000Z", - "level": 723.1, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T09:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T10:00:00.000Z", - "level": 723.1, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T11:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T12:00:00.000Z", - "level": 723.1, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T13:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T14:00:00.000Z", - "level": 723.1, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T15:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T16:00:00.000Z", - "level": 723.1, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T17:00:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T17:10:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T17:20:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T17:30:00.000Z", - "level": 723.09, - "flow": 1.49 - }, - { - "timestamp": "2026-06-05T17:40:00.000Z", - "level": 723.09, - "flow": 1.49 - } -] \ No newline at end of file diff --git a/scripts/buildIndex.ts b/scripts/buildIndex.ts index beb77bd..012d091 100644 --- a/scripts/buildIndex.ts +++ b/scripts/buildIndex.ts @@ -16,9 +16,13 @@ const lakes = lakesConfig.map(lake => { let currentFlow = 0; let sparkline: number[] = Array(12).fill(0); + let capacity = 0; + let volume = 0; + let inflow = 0; + if (fs.existsSync(DATA_FILE)) { try { - const data: DataRecord[] = JSON.parse(fs.readFileSync(DATA_FILE, 'utf-8')); + const data: any[] = JSON.parse(fs.readFileSync(DATA_FILE, 'utf-8')); if (data.length > 0) { // Find latest valid record or just the last record const lastValidLevelData = [...data].reverse().find(d => d.level !== null && !isNaN(d.level)); @@ -35,11 +39,29 @@ const lakes = lakesConfig.map(lake => { while (sparkline.length < 12) { sparkline.unshift(0); } + + const latest = data[data.length - 1]; + if (latest.volume && latest.volume > 0) { + volume = latest.volume; + } + if (latest.inflow !== undefined) { + inflow = latest.inflow; + } } } catch (e) { console.error(`Error reading data for ${internalId}`, e); } } + + if (lake.minLevel && lake.maxLevel && currentLevel > 0) { + const percentage = ((currentLevel - lake.minLevel) / (lake.maxLevel - lake.minLevel)) * 100; + capacity = Math.max(0, Math.min(100, Math.round(percentage * 10) / 10)); // Round to 1 decimal place + if (volume === 0) { + volume = Number(((capacity / 100) * (lake.maxVolume || 0)).toFixed(1)); + } + } else { + if (volume === 0) volume = lake.maxVolume || 0; + } return { id: lake.id, @@ -47,10 +69,11 @@ const lakes = lakesConfig.map(lake => { river: lake.text.includes('-') ? lake.text.split('-')[1].trim() : '', priority: lake.priority || false, level: currentLevel.toFixed(2), - capacity: 0, // Removed fake capacity - inflow: currentFlow.toFixed(1), + capacity: capacity, + inflow: inflow.toFixed(1), outflow: currentFlow.toFixed(1), - volume: lake.maxVolume || 0, // Using real maxVolume if known + volume: volume, + maxVolume: lake.maxVolume || 0, lat: lake.coords[0], lng: lake.coords[1], sparkline diff --git a/scripts/lakesConfig.ts b/scripts/lakesConfig.ts index ed8bee0..4554dc1 100644 --- a/scripts/lakesConfig.ts +++ b/scripts/lakesConfig.ts @@ -6,26 +6,16 @@ export interface LakeConfig { } export const lakesConfig: LakeConfig[] = [ - { id: "VLL1|1", text: "VD Lipno 1 - Vltava", priority: true, coords: [48.6322, 14.2215], maxVolume: 306.0 }, - { id: "VLOR|2", text: "VD Orlík - Vltava", priority: true, coords: [49.6060, 14.1700], maxVolume: 716.5 }, - { id: "VLSL|2", text: "VD Slapy - Vltava", priority: false, coords: [49.8220, 14.4360], maxVolume: 269.3 }, - { id: "BLHU|1", text: "VD Husinec - Blanice (PI)", coords: [49.0520, 13.9830], maxVolume: 6.9 }, - { id: "BIBI|1", text: "VD Bílsko - Bílský potok", coords: [49.1910, 14.0530] }, - { id: "KLDP|3", text: "VD Dolejší Padrťský rybník", coords: [49.6640, 13.7660] }, - { id: "KLHP|3", text: "VD Hořejší Padrťský rybník", coords: [49.6540, 13.7840] }, - { id: "KLKL|3", text: "VD Klabava - Klabava", coords: [49.7560, 13.5650] }, - { id: "KCKC|3", "text": "VD Klíčava - Klíčava", coords: [50.0650, 13.9290], maxVolume: 8.3 }, - { id: "LILA|3", text: "VD Láz - Litavka", coords: [49.6670, 13.8820] }, - { id: "MARI|1", text: "VD Římov - Malše", coords: [48.8470, 14.4870], maxVolume: 33.8 }, - { id: "MZHR|3", text: "VD Hracholusky - Mže", coords: [49.7890, 13.1550], maxVolume: 56.7 }, - { id: "MZLU|3", text: "VD Lučina - Mže", coords: [49.8000, 12.6100] }, - { id: "MZSS|3", text: "VD Plzeň-Štruncovy sady", coords: [49.7510, 13.3850] }, - { id: "OPOB|3", "text": "VD Obecnice - Obecnický potok", coords: [49.7210, 13.9450] }, - { id: "PPPI|3", "text": "VD Pilská - Pilský potok", coords: [49.6760, 13.8960] }, - { id: "RACU|3", "text": "VD České Údolí - Radbuza", coords: [49.7110, 13.3610] }, - { id: "SPNE|2", "text": "VD Němčice - Sedlický potok", coords: [49.6050, 15.2280] }, - { id: "SVKR|2", "text": "VD Švihov - Želivka", coords: [49.7180, 15.1060], maxVolume: 266.6 }, - { id: "UHKA|2", "text": "VD Kamýk - Vltava", coords: [49.6360, 14.2540], maxVolume: 12.8 }, - { id: "VRSN|2", "text": "VD Vrané - Vltava", coords: [49.9340, 14.3850], maxVolume: 11.1 }, - { id: "ZLUT|3", "text": "VD Žlutice - Střela", coords: [50.0930, 13.1590] } + { id: "VLL1|1", text: "VD Lipno 1 - Vltava", priority: true, coords: [48.6322, 14.2215], maxVolume: 306.0, minLevel: 715.00, maxLevel: 725.60 }, + { id: "VLL2|1", text: "VD Lipno II - Vltava", coords: [48.6250, 14.3180], maxVolume: 1.5, minLevel: 510.0, maxLevel: 511.5 }, + { id: "VLHN|1", text: "VD Hněvkovice - Vltava", priority: true, coords: [49.1830, 14.4440], maxVolume: 21.1, minLevel: 365.0, maxLevel: 370.5 }, + { id: "VLKO|1", text: "VD Kořensko - Vltava", coords: [49.2550, 14.3980], maxVolume: 2.8, minLevel: 352.0, maxLevel: 353.5 }, + { id: "VLOR|2", text: "VD Orlík - Vltava", priority: true, coords: [49.6060, 14.1700], maxVolume: 716.5, minLevel: 330.00, maxLevel: 354.00 }, + { id: "UHKA|2", text: "VD Kamýk - Vltava", coords: [49.6360, 14.2540], maxVolume: 12.8, minLevel: 283.0, maxLevel: 285.6 }, + { id: "VLSL|2", text: "VD Slapy - Vltava", priority: true, coords: [49.8220, 14.4360], maxVolume: 269.3, minLevel: 265.50, maxLevel: 271.10 }, + { id: "VLST|2", text: "VD Štěchovice - Vltava", coords: [49.8450, 14.4120], maxVolume: 11.2, minLevel: 217.0, maxLevel: 219.5 }, + { id: "VRSN|2", text: "VD Vrané - Vltava", coords: [49.9340, 14.3850], maxVolume: 11.1, minLevel: 198.5, maxLevel: 200.5 }, + { id: "SVKR|2", text: "VD Švihov - Želivka", priority: true, coords: [49.7180, 15.1060], maxVolume: 266.6, minLevel: 343.0, maxLevel: 377.0 }, + { id: "MARI|1", text: "VD Římov - Malše", priority: true, coords: [48.8470, 14.4870], maxVolume: 33.8, minLevel: 458.0, maxLevel: 471.0 }, + { id: "MZHR|3", text: "VD Hracholusky - Mže", priority: true, coords: [49.7890, 13.1550], maxVolume: 56.7, minLevel: 360.0, maxLevel: 373.0 } ]; diff --git a/scripts/scrapeLakes.ts b/scripts/scrapeLakes.ts index f72b46a..aa4add2 100644 --- a/scripts/scrapeLakes.ts +++ b/scripts/scrapeLakes.ts @@ -12,13 +12,21 @@ interface DataRecord { } // Parse date from DD.MM.YYYY HH:MM to ISO -function parseDateString(dateStr: string): string { - const [datePart, timePart] = dateStr.trim().split(' '); - const [day, month, year] = datePart.split('.'); - const [hours, minutes] = timePart.split(':'); - - const d = new Date(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hours), parseInt(minutes)); - return d.toISOString(); +function parseDateString(dateStr: string): string | null { + try { + if (!dateStr || !dateStr.includes(' ')) return null; + const [datePart, timePart] = dateStr.trim().split(' '); + const [day, month, year] = datePart.split('.'); + const [hours, minutes] = timePart.split(':'); + + if (!year || !hours) return null; + + const d = new Date(parseInt(year), parseInt(month) - 1, parseInt(day), parseInt(hours), parseInt(minutes)); + if (isNaN(d.getTime())) return null; + return d.toISOString(); + } catch (e) { + return null; + } } async function scrapeLake(lakeId: string, oid: string, internalId: string) { @@ -34,29 +42,63 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) { } }); - const html = response.data; - const $ = cheerio.load(html); - const rows = $('table tr'); - const newData: DataRecord[] = []; + const $ = cheerio.load(response.data); + + let currentInflow = 0; + let currentVolume = 0; - rows.each((i, row) => { - const tds = $(row).find('td'); - if (tds.length >= 3) { - const datetimeText = $(tds[0]).text().trim(); - if (/^\d{2}\.\d{2}\.\d{4}\s\d{2}:\d{2}$/.test(datetimeText)) { - const timestamp = parseDateString(datetimeText); - const levelText = $(tds[1]).text().trim().replace(',', '.'); - const flowText = $(tds[2]).text().trim().replace(',', '.'); - - newData.push({ - timestamp, - level: parseFloat(levelText), - flow: parseFloat(flowText) - }); - } + $('table').each((i, tbl) => { + const text = $(tbl).text(); + if (text.includes('Aktuální hodnoty') && text.includes('Přítok')) { + $(tbl).find('tr').each((j, r) => { + const label = $(r).find('td').eq(0).text().trim(); + const valStr = $(r).find('td').eq(1).text().trim().replace(/\s/g, '').replace(',', '.'); + if (label.includes('Přítok')) currentInflow = parseFloat(valStr) || 0; + if (label.includes('Objem')) currentVolume = parseFloat(valStr) || 0; + }); } }); + const records: DataRecord[] = []; + let dataTable = null; + $('table').each((i, tbl) => { + if ($(tbl).text().includes('Datum') && $(tbl).text().includes('Odtok')) { + dataTable = $(tbl); + } + }); + + if (dataTable) { + dataTable.find('tr').each((i, row) => { + if (i === 0) return; // skip header + const cols = $(row).find('td'); + if (cols.length >= 3) { + const rawDate = $(cols[0]).text().trim(); + const levelStr = $(cols[1]).text().trim().replace(',', '.'); + let flowStr = $(cols[2]).text().trim().replace(',', '.'); + if (flowStr === '' && cols.length >= 4) { + flowStr = $(cols[3]).text().trim().replace(',', '.'); + } + + const parsedDateStr = parseDateString(rawDate); + if (parsedDateStr) { + records.push({ + timestamp: parsedDateStr, + level: parseFloat(levelStr) || 0, + flow: parseFloat(flowStr) || 0, + inflow: 0, + volume: 0 + }); + } + } + }); + } + + if (records.length > 0) { + // Apply current values to the latest record + records[0].inflow = currentInflow; + records[0].volume = currentVolume; + } + let existingData: DataRecord[] = []; if (fs.existsSync(DATA_FILE)) { const fileContent = fs.readFileSync(DATA_FILE, 'utf-8'); @@ -65,7 +107,7 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) { const dataMap = new Map(); existingData.forEach(item => dataMap.set(item.timestamp, item)); - newData.forEach(item => dataMap.set(item.timestamp, item)); + records.forEach(item => dataMap.set(item.timestamp, item)); const mergedData = Array.from(dataMap.values()).sort((a, b) => { return new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime(); @@ -74,7 +116,7 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) { fs.mkdirSync(path.dirname(DATA_FILE), { recursive: true }); fs.writeFileSync(DATA_FILE, JSON.stringify(mergedData, null, 2), 'utf-8'); - console.log(`[${internalId}] Scraped ${newData.length} records. DB total: ${mergedData.length}`); + console.log(`[${internalId}] Scraped ${records.length} records. DB total: ${mergedData.length}`); } catch (error: any) { console.error(`[${internalId}] Error scraping data:`, error.message); diff --git a/src/components/KpiCards.tsx b/src/components/KpiCards.tsx index 68fbb85..ef8955b 100644 --- a/src/components/KpiCards.tsx +++ b/src/components/KpiCards.tsx @@ -1,5 +1,6 @@ import { FiArrowUp, FiArrowDown } from 'react-icons/fi'; import { type Language, t } from '../translations'; +import { useState, useEffect } from 'react'; interface KpiData { level: number; @@ -16,73 +17,103 @@ interface Props { } const KpiCards = ({ data, language, lakeName = 'Lipno 1' }: Props) => { + const [showTooltip, setShowTooltip] = useState(false); const dict = t[language].kpi; const flowDiff = data.inflow - data.outflow; + useEffect(() => { + if (showTooltip) { + const timer = setTimeout(() => { + setShowTooltip(false); + }, 3500); + return () => clearTimeout(timer); + } + }, [showTooltip]); + return ( -
+
{/* CARD 1: HLADINA */} -
-
-
-
- {dict.level} {lakeName} +
+
+ {dict.level} {lakeName} +
+
+ {data.level.toFixed(2)} m n. m. +
+
+ (+0.02 m / 24h) +
+ + {/* Decorative Circle for Level */} +
+
+ + {/* CARD 2: PRŮTOK */} +
+
+ {dict.flow} +
+
+
+
+ {dict.inflow}: {data.inflow.toFixed(1)} m³/s
-
- {data.level.toFixed(2)} m n. m. -
-
- (+0.02 m / 24h) +
+ {dict.outflow}: {data.outflow.toFixed(1)} m³/s + {flowDiff > 0 ? : flowDiff < 0 ? : null}
- {/* Decorative Circle */} -
- - - - + {/* Flow Circle */} +
+ +
{data.outflow.toFixed(1)}
+
m³/s
+
-
- {/* CARD 2: PRŮTOK */} -
-
- {dict.flow} -
-
-
- {dict.inflow}: {data.inflow.toFixed(1)} m³/s - {dict.outflow}: {data.outflow.toFixed(1)} m³/s + {/* CARD 3: NAPLNĚNOST */} +
+
+ {dict.fullness} + setShowTooltip(!showTooltip)} + style={{ cursor: 'pointer', fontSize: '0.85rem', opacity: 0.6, padding: '0 4px' }} + > + ⓘ + + {showTooltip && ( +
setShowTooltip(false)} + style={{ + position: 'absolute', + bottom: '100%', + left: '50%', + transform: 'translateX(-50%)', + marginBottom: '8px', + backgroundColor: 'var(--bg-card)', + border: '1px solid var(--border-color)', + padding: '0.75rem', + borderRadius: '8px', + width: '250px', + zIndex: 100, + boxShadow: '0 4px 12px rgba(0,0,0,0.5)', + color: 'var(--text-main)', + fontSize: '0.85rem', + lineHeight: 1.4, + cursor: 'pointer' + }}> + {language === 'cs' ? "Odhad vypočítaný z aktuální výšky hladiny (mezi min. a max. kótou)." : "Estimate calculated from current water level (between min and max levels)."}
- - {/* Flow Circle */} -
- - - - -
- {Math.max(data.inflow, data.outflow).toFixed(1)} - m³/s -
-
-
+ )}
- - {/* CARD 3: NAPLNĚNOST */} -
-
- {dict.fullness} -
-
- {data.fullness.toFixed(1)}% -
-
- {dict.volume}: {data.volume.toFixed(1)} mil. m³ -
+
+ {data.fullness > 0 ? `${data.fullness.toFixed(1)}%` : 'N/A'} +
+
+ {dict.volume}: {data.volume.toFixed(1)} mil. m³
diff --git a/src/components/LakeDetail.tsx b/src/components/LakeDetail.tsx index 6f80bcb..882aec9 100644 --- a/src/components/LakeDetail.tsx +++ b/src/components/LakeDetail.tsx @@ -25,8 +25,7 @@ const CustomTooltip = ({ active, payload, label, language }: any) => {

{label}

{dict.level}: {payload[0].value.toFixed(2)} m n. m.

-

{dict.inflow}: {payload[1].value.toFixed(1)} m³/s

-

{dict.outflow}: {payload[2].value.toFixed(1)} m³/s

+

{dict.outflow}: {payload[1].value.toFixed(1)} m³/s

); } @@ -57,7 +56,6 @@ const LakeDetail = ({ language, lakeId }: Props) => { .then(json => { const formattedData = json.map((item: any) => { const outflow = item.flow === null || isNaN(item.flow) ? 0 : item.flow; - const inflow = outflow; // No random inflow anymore, PVL only gives us one flow value return { timestamp: item.timestamp, @@ -67,8 +65,8 @@ const LakeDetail = ({ language, lakeId }: Props) => { }), level: item.level === null || isNaN(item.level) ? 0 : item.level, outflow: outflow, - inflow: inflow, - volume: 0, // PVL doesn't provide this here + inflow: item.inflow || 0, + volume: item.volume || 0, fullness: 0 }; }); @@ -110,22 +108,19 @@ const LakeDetail = ({ language, lakeId }: Props) => {
-
- - - - - -
- {/* CHART SECTION */}
-
- - {dict.title} {lakeInfo ? `${lakeInfo.name} ${lakeInfo.river ? `- ${lakeInfo.river}` : ''}` : 'Lipno 1 - Vltava'} - +
+

{dict.title} {lakeInfo ? `${lakeInfo.name} ${lakeInfo.river ? `- ${lakeInfo.river}` : ''}` : 'Lipno 1 - Vltava'}

+
+ + + + + +
@@ -146,7 +141,6 @@ const LakeDetail = ({ language, lakeId }: Props) => { {/* Data Series */} - @@ -155,7 +149,6 @@ const LakeDetail = ({ language, lakeId }: Props) => { {/* Chart Legend */}
{dict.level}
-
{dict.inflow}
{dict.outflow}
diff --git a/src/components/LakesOverview.tsx b/src/components/LakesOverview.tsx index f8dd8d5..ff589b4 100644 --- a/src/components/LakesOverview.tsx +++ b/src/components/LakesOverview.tsx @@ -51,7 +51,7 @@ const CircularProgress = ({ value, size = 60, strokeWidth = 6 }: { value: number />
- {value}% + {value > 0 ? `${value}%` : 'N/A'}
); @@ -80,7 +80,7 @@ const PriorityCard = ({ lake, onSelectLake }: { lake: Lake, onSelectLake: (id: s
-
{lake.capacity}% / {lake.volume} mil. m³
+
{lake.capacity > 0 ? `${lake.capacity}%` : 'N/A'} / {lake.volume} mil. m³
Volume
diff --git a/src/index.css b/src/index.css index 28a6d51..06c06d2 100644 --- a/src/index.css +++ b/src/index.css @@ -11,10 +11,29 @@ --color-red: #ef4444; /* Odtok / Negative trend */ --color-orange: #f97316; /* Odtok line chart color */ +.kpi-grid-container { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; + width: 100%; +} + +.kpi-card { + background-color: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: 12px; + padding: 1.5rem; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + position: relative; + display: flex; + flex-direction: column; +} + +/* Hide old styles but keep them in case they are used elsewhere */ .kpi-container-mobile { display: flex; flex-direction: column; - gap: 1rem; + gap: 1.5rem; width: 100%; } @@ -151,6 +170,9 @@ max-height: 50%; border-radius: 20px 20px 0 0; } + .kpi-grid-container { + grid-template-columns: 1fr; + } } /* Time controls pill layout */ @@ -160,7 +182,7 @@ border-radius: 0.5rem; border: 1px solid var(--border-color); overflow: hidden; - width: 100%; + width: auto; } .top-time-controls button { @@ -169,10 +191,11 @@ border: none; border-right: 1px solid var(--border-color); color: var(--text-muted); - padding: 0.75rem 0; + padding: 0.4rem 1rem; cursor: pointer; font-weight: 500; transition: all 0.2s; + font-size: 0.85rem; } .top-time-controls button:last-child { border-right: none; diff --git a/testScrape.js b/testScrape.js index d46b63c..de9b5a4 100644 --- a/testScrape.js +++ b/testScrape.js @@ -5,7 +5,7 @@ import https from 'https'; async function test() { const agent = new https.Agent({ rejectUnauthorized: false }); try { - const res = await axios.get('https://www.pvl.cz/portal/nadrze/cz/pc/Nadrze.aspx', { + const res = await axios.get('https://www.pvl.cz/portal/nadrze/cz/pc/Mereni.aspx?oid=1&id=VLL1', { httpsAgent: agent, headers: { 'User-Agent': 'Mozilla/5.0' @@ -13,10 +13,14 @@ async function test() { }); const $ = cheerio.load(res.data); - const rows = $('table tr'); - rows.each((i, row) => { - console.log($(row).text().replace(/\s+/g, ' ')); + const tables = $('table'); + tables.each((i, tbl) => { + console.log(`TABLE ${i}:`); + console.log($(tbl).find('tr').first().text().trim().replace(/\s+/g, ' ')); + console.log($(tbl).find('tr').eq(1).text().trim().replace(/\s+/g, ' ')); + console.log('---'); }); + } catch (e) { console.error(e.message); }