From 57e9bf12ca70ce41ca4eb880b4abfc30d6958b54 Mon Sep 17 00:00:00 2001 From: David Fencl Date: Fri, 5 Jun 2026 23:34:13 +0200 Subject: [PATCH] feat: implement Open-Meteo weather integration with backfill scripts and updated lake data models. --- public/data/MARI.json | 140 ++++++++++++---------- public/data/MZHR.json | 197 ++++++++++++++++++------------- public/data/VLHN.json | 140 ++++++++++++---------- public/data/VLKO.json | 142 ++++++++++++---------- public/data/VLL1.json | 142 ++++++++++++---------- public/data/VLL2.json | 142 ++++++++++++---------- public/data/VLOR.json | 144 ++++++++++++---------- public/data/VLSL.json | 140 ++++++++++++---------- public/data/VLST.json | 140 ++++++++++++---------- public/data/lakes_index.json | 112 +++++++++--------- scratch_check_weather.ts | 31 +++++ scratch_openmeteo.ts | 19 +++ scratch_openmeteo_history.ts | 21 ++++ scripts/backfillWeather.ts | 76 ++++++++++++ scripts/scrapeLakes.ts | 22 +++- src/App.tsx | 40 ++++--- src/components/KpiCards.tsx | 16 ++- src/components/LakeDetail.tsx | 89 ++++++++++---- src/components/LakeMap.tsx | 12 +- src/components/LakesOverview.tsx | 77 ++---------- src/components/SettingsModal.tsx | 2 +- src/components/Sidebar.tsx | 22 +++- src/main.tsx | 5 +- src/utils/slugify.ts | 9 ++ 24 files changed, 1122 insertions(+), 758 deletions(-) create mode 100644 scratch_check_weather.ts create mode 100644 scratch_openmeteo.ts create mode 100644 scratch_openmeteo_history.ts create mode 100644 scripts/backfillWeather.ts create mode 100644 src/utils/slugify.ts diff --git a/public/data/MARI.json b/public/data/MARI.json index d08de29..299fa81 100644 --- a/public/data/MARI.json +++ b/public/data/MARI.json @@ -6224,7 +6224,7 @@ "flow": 0.6255685403196054, "inflow": 10.034110166876205, "volume": 0, - "temperature": 11.864140750220109, + "temperature": 10.4, "precipitation": 0 }, { @@ -6233,7 +6233,7 @@ "flow": 1.0419984834084302, "inflow": 10.713689599667036, "volume": 0, - "temperature": 12.013784620074372, + "temperature": 10.2, "precipitation": 0 }, { @@ -6242,7 +6242,7 @@ "flow": 1.3701555424697585, "inflow": 11.126644104937416, "volume": 0, - "temperature": 14.365720389709331, + "temperature": 8.3, "precipitation": 0 }, { @@ -6251,7 +6251,7 @@ "flow": 2.05581443496655, "inflow": 10.184204631175412, "volume": 0, - "temperature": 15.209982275016863, + "temperature": 8.1, "precipitation": 0 }, { @@ -6260,7 +6260,7 @@ "flow": 2.9184644929053682, "inflow": 9.731801541106249, "volume": 0, - "temperature": 18.59179448780983, + "temperature": 8.2, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 2.0466481920331043, "inflow": 9.037024438697157, "volume": 0, - "temperature": 20.84976978532297, + "temperature": 10.1, "precipitation": 0 }, { @@ -6278,7 +6278,7 @@ "flow": 1.8210110289030332, "inflow": 8.553092813520315, "volume": 0, - "temperature": 22.986862027314917, + "temperature": 13.7, "precipitation": 0 }, { @@ -6287,7 +6287,7 @@ "flow": 2.5993494784302236, "inflow": 8.090671780021497, "volume": 0, - "temperature": 24.45980118893283, + "temperature": 16, "precipitation": 0 }, { @@ -6296,7 +6296,7 @@ "flow": 1.7422528386740765, "inflow": 8.058203052836738, "volume": 0, - "temperature": 25.09766876722091, + "temperature": 18, "precipitation": 0 }, { @@ -6305,7 +6305,7 @@ "flow": 1.379793954368528, "inflow": 7.547140397252797, "volume": 0, - "temperature": 25.215639898918027, + "temperature": 20.1, "precipitation": 0 }, { @@ -6314,7 +6314,7 @@ "flow": 1.903195265989595, "inflow": 6.870154999615554, "volume": 0, - "temperature": 25.83366121108559, + "temperature": 21.3, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 1.728305580697266, "inflow": 6.9818406806830975, "volume": 0, - "temperature": 24.90944722962208, + "temperature": 22.4, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 1.9643364054248758, "inflow": 6.449784348028073, "volume": 0, - "temperature": 25.07392630998511, + "temperature": 22.8, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 2.3861896755012846, "inflow": 6.966889183963329, "volume": 0, - "temperature": 23.07425788290098, + "temperature": 23.5, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 2.864649754258853, "inflow": 6.365242758485628, "volume": 0, - "temperature": 22.393799670748308, + "temperature": 23.8, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 2.612695326467141, "inflow": 6.154958589427961, "volume": 0, - "temperature": 20.40838723832608, + "temperature": 24.1, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 2.3949622623107567, "inflow": 6.924817440510495, "volume": 0, - "temperature": 17.06466192084514, + "temperature": 23.8, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 2.053593515935781, "inflow": 6.4812460297633026, "volume": 0, - "temperature": 16.452573137548793, + "temperature": 23.2, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 1.325125401706864, "inflow": 6.973211299674604, "volume": 0, - "temperature": 14.82532282516285, + "temperature": 21.7, "precipitation": 0 }, { @@ -6395,8 +6395,8 @@ "flow": 0.7428942810154222, "inflow": 6.09383545418846, "volume": 0, - "temperature": 11.861374765455933, - "precipitation": 0.07919619889869556 + "temperature": 19.2, + "precipitation": 0 }, { "timestamp": "2026-05-29T20:00:00.000Z", @@ -6404,7 +6404,7 @@ "flow": 1.024737203073499, "inflow": 6.855699120454588, "volume": 0, - "temperature": 11.033754430587827, + "temperature": 15.9, "precipitation": 0 }, { @@ -6413,7 +6413,7 @@ "flow": 1.2328761889625395, "inflow": 6.3315188280076224, "volume": 0, - "temperature": 10.937274944242763, + "temperature": 14.2, "precipitation": 0 }, { @@ -6422,7 +6422,7 @@ "flow": 0.9643992128557333, "inflow": 5.397516226863886, "volume": 0, - "temperature": 10.00605782400767, + "temperature": 12.8, "precipitation": 0 }, { @@ -6431,7 +6431,7 @@ "flow": 1.878874707884195, "inflow": 4.7663126833757925, "volume": 0, - "temperature": 11.107048090448307, + "temperature": 11.2, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 1.3337338037379225, "inflow": 4.5204381732533, "volume": 0, - "temperature": 10.784171624879043, + "temperature": 11.8, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 0.4789802152894831, "inflow": 5.503849363559542, "volume": 0, - "temperature": 11.8705971893724, + "temperature": 11.9, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 0, "inflow": 5.872836403878869, "volume": 0, - "temperature": 14.654554934036804, + "temperature": 12.7, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 0.7018020144128779, "inflow": 5.614832330729115, "volume": 0, - "temperature": 16.735657444122932, + "temperature": 13.3, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 0.02437298961290779, "inflow": 6.208824150287136, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 13.7, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 0.9, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 13.7, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 0.9, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 13.7, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 0.9, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 13.7, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 13.7, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 13.7, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 13.7, "precipitation": 0 }, { @@ -6539,7 +6539,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6548,7 +6548,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6557,7 +6557,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6566,7 +6566,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6575,7 +6575,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6584,7 +6584,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6593,7 +6593,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6602,7 +6602,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6611,7 +6611,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6620,7 +6620,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6629,7 +6629,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6638,7 +6638,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6647,7 +6647,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6656,7 +6656,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6665,7 +6665,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6674,7 +6674,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6683,7 +6683,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6692,7 +6692,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6701,7 +6701,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6710,7 +6710,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6719,7 +6719,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6728,7 +6728,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6737,7 +6737,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6746,7 +6746,7 @@ "flow": 0.7, "inflow": 0, "volume": 0, - "temperature": 18.486487839825145, + "temperature": 16, "precipitation": 0 }, { @@ -6797,10 +6797,28 @@ { "timestamp": "2026-06-05T21:00:00.000Z", "level": 467.72, + "flow": 0.7, + "inflow": 0, + "volume": 0, + "temperature": 14.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 467.72, + "flow": 0.7, + "inflow": 0, + "volume": 0, + "temperature": 14.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 467.72, "flow": 0, "inflow": 2.88, "volume": 26.49, - "temperature": 13.1, + "temperature": 11.9, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/MZHR.json b/public/data/MZHR.json index 0e637aa..526b1f0 100644 --- a/public/data/MZHR.json +++ b/public/data/MZHR.json @@ -6224,7 +6224,7 @@ "flow": 3.8868015777531033, "inflow": 5.477395746251881, "volume": 0, - "temperature": 11.829832131262451, + "temperature": 6.2, "precipitation": 0 }, { @@ -6233,7 +6233,7 @@ "flow": 3.2142918014312327, "inflow": 5.408464952942799, "volume": 0, - "temperature": 12.791880327024638, + "temperature": 4.5, "precipitation": 0 }, { @@ -6242,7 +6242,7 @@ "flow": 3.986160062451348, "inflow": 5.166844128966192, "volume": 0, - "temperature": 14.278274953740901, + "temperature": 4.2, "precipitation": 0 }, { @@ -6251,7 +6251,7 @@ "flow": 3.678573860203244, "inflow": 4.630484037140498, "volume": 0, - "temperature": 15.656742602398822, + "temperature": 3.8, "precipitation": 0 }, { @@ -6260,7 +6260,7 @@ "flow": 2.794077850767844, "inflow": 4.628176270831953, "volume": 0, - "temperature": 17.365952574984348, + "temperature": 4, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 2.4906277653921274, "inflow": 3.992534270542489, "volume": 0, - "temperature": 20.852440707801634, + "temperature": 6.2, "precipitation": 0 }, { @@ -6278,8 +6278,8 @@ "flow": 2.506019890100379, "inflow": 3.1035830866150125, "volume": 0, - "temperature": 22.758460652941945, - "precipitation": 12.162975378389945 + "temperature": 10.3, + "precipitation": 0 }, { "timestamp": "2026-05-29T07:00:00.000Z", @@ -6287,7 +6287,7 @@ "flow": 2.5609777058103687, "inflow": 3.9390894987581655, "volume": 0, - "temperature": 22.918429929042116, + "temperature": 14.9, "precipitation": 0 }, { @@ -6296,7 +6296,7 @@ "flow": 2.896986120465362, "inflow": 3.6988377298687927, "volume": 0, - "temperature": 25.907207853964163, + "temperature": 17.7, "precipitation": 0 }, { @@ -6305,7 +6305,7 @@ "flow": 2.6405128522172694, "inflow": 3.9499233625829695, "volume": 0, - "temperature": 26.623792506755606, + "temperature": 19.7, "precipitation": 0 }, { @@ -6314,7 +6314,7 @@ "flow": 2.4666325108534064, "inflow": 3.766052985755387, "volume": 0, - "temperature": 25.441092040307762, + "temperature": 21.8, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 3.3966971553451373, "inflow": 4.426714039716064, "volume": 0, - "temperature": 25.654102171067983, + "temperature": 23.1, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 3.0169844368720886, "inflow": 5.147750791276094, "volume": 0, - "temperature": 24.95047781279021, + "temperature": 24.4, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 2.7411977066242335, "inflow": 5.153159871115556, "volume": 0, - "temperature": 24.262788874128596, + "temperature": 25.2, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 3.0611622952359276, "inflow": 4.906558650032322, "volume": 0, - "temperature": 21.307735490452835, + "temperature": 25.5, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 2.920057931121152, "inflow": 4.846246358439759, "volume": 0, - "temperature": 20.875888139202072, + "temperature": 25.8, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 2.043431911566662, "inflow": 5.809237178545345, "volume": 0, - "temperature": 18.209053833199604, + "temperature": 25.8, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 2.301483108928071, "inflow": 5.683549191067646, "volume": 0, - "temperature": 15.14174953708639, + "temperature": 25.1, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 3.0868443815473947, "inflow": 5.282749942495149, "volume": 0, - "temperature": 13.254209941222044, + "temperature": 24.6, "precipitation": 0 }, { @@ -6395,7 +6395,7 @@ "flow": 2.3673207209243006, "inflow": 5.834274847889688, "volume": 0, - "temperature": 12.002182891431094, + "temperature": 20.8, "precipitation": 0 }, { @@ -6404,7 +6404,7 @@ "flow": 3.1112667421245455, "inflow": 6.011201515747041, "volume": 0, - "temperature": 10.562001414449762, + "temperature": 15.7, "precipitation": 0 }, { @@ -6413,7 +6413,7 @@ "flow": 3.948368502996847, "inflow": 6.204723838899364, "volume": 0, - "temperature": 9.527612697432192, + "temperature": 13.3, "precipitation": 0 }, { @@ -6422,7 +6422,7 @@ "flow": 3.602603170122383, "inflow": 7.10898844538656, "volume": 0, - "temperature": 10.376484283785075, + "temperature": 12.6, "precipitation": 0 }, { @@ -6431,7 +6431,7 @@ "flow": 2.7738243234976263, "inflow": 6.455120229836172, "volume": 0, - "temperature": 11.249725084037136, + "temperature": 12.3, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 2.7562375710683997, "inflow": 7.2005497920468, "volume": 0, - "temperature": 11.898379456686454, + "temperature": 13.9, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 2.0566560717559774, "inflow": 7.93704090757506, "volume": 0, - "temperature": 11.899678307317934, + "temperature": 15.9, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 2.864588984077799, "inflow": 7.147868458897846, "volume": 0, - "temperature": 14.330988916170519, + "temperature": 16.5, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 2.4157356891124726, "inflow": 7.759348218741005, "volume": 0, - "temperature": 15.443555116675524, + "temperature": 16.3, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 1.4669743275076352, "inflow": 7.352086630725217, "volume": 0, - "temperature": 17.097761795856353, + "temperature": 15, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 2.46, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, + "temperature": 15, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 2.48, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, + "temperature": 15, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 2.48, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, + "temperature": 15, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 2.49, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, + "temperature": 15, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, + "temperature": 15, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, + "temperature": 15, "precipitation": 0 }, { @@ -6539,8 +6539,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-04T22:00:00.000Z", @@ -6548,8 +6548,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-04T23:00:00.000Z", @@ -6557,8 +6557,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T00:00:00.000Z", @@ -6566,8 +6566,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T01:00:00.000Z", @@ -6575,8 +6575,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T02:00:00.000Z", @@ -6584,8 +6584,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T03:00:00.000Z", @@ -6593,8 +6593,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T04:00:00.000Z", @@ -6602,8 +6602,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T05:00:00.000Z", @@ -6611,8 +6611,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T06:00:00.000Z", @@ -6620,8 +6620,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T07:00:00.000Z", @@ -6629,8 +6629,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T08:00:00.000Z", @@ -6638,8 +6638,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T09:00:00.000Z", @@ -6647,8 +6647,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T10:00:00.000Z", @@ -6656,8 +6656,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T11:00:00.000Z", @@ -6665,8 +6665,8 @@ "flow": 2.53, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T12:00:00.000Z", @@ -6674,8 +6674,8 @@ "flow": 2.53, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T13:00:00.000Z", @@ -6683,8 +6683,8 @@ "flow": 2.53, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T14:00:00.000Z", @@ -6692,8 +6692,8 @@ "flow": 2.53, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T15:00:00.000Z", @@ -6701,8 +6701,8 @@ "flow": 2.53, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T16:00:00.000Z", @@ -6710,8 +6710,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T17:00:00.000Z", @@ -6719,8 +6719,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T18:00:00.000Z", @@ -6728,8 +6728,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T19:00:00.000Z", @@ -6737,8 +6737,8 @@ "flow": 2.52, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T20:00:00.000Z", @@ -6746,8 +6746,8 @@ "flow": 2.53, "inflow": 0, "volume": 0, - "temperature": 17.097761795856353, - "precipitation": 0 + "temperature": 14.7, + "precipitation": 1 }, { "timestamp": "2026-06-05T20:10:00.000Z", @@ -6797,10 +6797,37 @@ { "timestamp": "2026-06-05T21:00:00.000Z", "level": 352.86, + "flow": 2.53, + "inflow": 0, + "volume": 0, + "temperature": 12.1, + "precipitation": 5.7 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 352.85, + "flow": 2.53, + "inflow": 0, + "volume": 0, + "temperature": 12.1, + "precipitation": 5.7 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 352.85, + "flow": 2.53, + "inflow": 0, + "volume": 0, + "temperature": 12.1, + "precipitation": 5.7 + }, + { + "timestamp": "2026-06-05T21:30:00.000Z", + "level": 352.85, "flow": 0, "inflow": 1.46, "volume": 32.37, "temperature": 12.1, - "precipitation": 5.7 + "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLHN.json b/public/data/VLHN.json index df72824..6286b74 100644 --- a/public/data/VLHN.json +++ b/public/data/VLHN.json @@ -6224,7 +6224,7 @@ "flow": 13.688839361890457, "inflow": 6.189165336035383, "volume": 0, - "temperature": 11.625422314444679, + "temperature": 10.6, "precipitation": 0 }, { @@ -6233,7 +6233,7 @@ "flow": 13.530020446966438, "inflow": 6.1522242083308605, "volume": 0, - "temperature": 12.253873193777636, + "temperature": 9.8, "precipitation": 0 }, { @@ -6242,7 +6242,7 @@ "flow": 13.022105939447647, "inflow": 6.2182872738331225, "volume": 0, - "temperature": 13.423662267670297, + "temperature": 9, "precipitation": 0 }, { @@ -6251,8 +6251,8 @@ "flow": 13.322966503865512, "inflow": 6.7862922209348095, "volume": 0, - "temperature": 15.067305258871237, - "precipitation": 14.505558198110046 + "temperature": 8.2, + "precipitation": 0 }, { "timestamp": "2026-05-29T04:00:00.000Z", @@ -6260,7 +6260,7 @@ "flow": 13.056956028165539, "inflow": 6.851337956336424, "volume": 0, - "temperature": 18.111267450883584, + "temperature": 8.2, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 12.791966387426758, "inflow": 6.503774680626735, "volume": 0, - "temperature": 19.52518069859427, + "temperature": 9.6, "precipitation": 0 }, { @@ -6278,7 +6278,7 @@ "flow": 13.692144200213454, "inflow": 6.985605979054921, "volume": 0, - "temperature": 22.071300743907095, + "temperature": 12.9, "precipitation": 0 }, { @@ -6287,7 +6287,7 @@ "flow": 14.346909366085724, "inflow": 7.26880065556532, "volume": 0, - "temperature": 24.29063943492737, + "temperature": 16.2, "precipitation": 0 }, { @@ -6296,7 +6296,7 @@ "flow": 13.809703276845381, "inflow": 6.949808263959009, "volume": 0, - "temperature": 24.384472250414646, + "temperature": 18.7, "precipitation": 0 }, { @@ -6305,7 +6305,7 @@ "flow": 14.55345425515419, "inflow": 6.174399027421886, "volume": 0, - "temperature": 25.346459647844135, + "temperature": 20.5, "precipitation": 0 }, { @@ -6314,7 +6314,7 @@ "flow": 14.1984708543626, "inflow": 6.644085921731577, "volume": 0, - "temperature": 26.1606768913928, + "temperature": 21.7, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 15.074678430368383, "inflow": 5.936116816902693, "volume": 0, - "temperature": 25.06522461283221, + "temperature": 23, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 15.794086360735742, "inflow": 6.069804429284652, "volume": 0, - "temperature": 24.83138365825051, + "temperature": 23.4, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 16.75851365974463, "inflow": 6.576018619008876, "volume": 0, - "temperature": 23.507962392307714, + "temperature": 24.1, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 16.837383854512353, "inflow": 6.945936488341587, "volume": 0, - "temperature": 22.37975195563109, + "temperature": 24.5, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 17.517019227403875, "inflow": 6.476346015714162, "volume": 0, - "temperature": 19.935572796282827, + "temperature": 25.3, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 16.761293220828318, "inflow": 7.209470000881746, "volume": 0, - "temperature": 18.066053501994247, + "temperature": 24.9, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 17.558319070458072, "inflow": 6.410840033662213, "volume": 0, - "temperature": 16.70961583989992, + "temperature": 24.4, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 16.994061885730254, "inflow": 6.026224357089179, "volume": 0, - "temperature": 13.924305101409162, + "temperature": 22.6, "precipitation": 0 }, { @@ -6395,7 +6395,7 @@ "flow": 17.132722702816913, "inflow": 5.92043336113265, "volume": 0, - "temperature": 11.365918762225474, + "temperature": 19.9, "precipitation": 0 }, { @@ -6404,7 +6404,7 @@ "flow": 17.55700467802865, "inflow": 5.635498439084209, "volume": 0, - "temperature": 11.86864055181943, + "temperature": 17.8, "precipitation": 0 }, { @@ -6413,7 +6413,7 @@ "flow": 17.236837979577334, "inflow": 5.908870997236837, "volume": 0, - "temperature": 9.546691558270552, + "temperature": 15.8, "precipitation": 0 }, { @@ -6422,7 +6422,7 @@ "flow": 17.528946034098844, "inflow": 6.010775818119086, "volume": 0, - "temperature": 9.201509872822216, + "temperature": 14.4, "precipitation": 0 }, { @@ -6431,7 +6431,7 @@ "flow": 17.583297719440903, "inflow": 5.427595429570582, "volume": 0, - "temperature": 10.712954404545881, + "temperature": 12, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 17.602807898955376, "inflow": 5.771022250353162, "volume": 0, - "temperature": 10.441355187230876, + "temperature": 10.3, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 18.132143900854, "inflow": 6.19111039052882, "volume": 0, - "temperature": 12.635582582935989, + "temperature": 10.4, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 17.934540987746225, "inflow": 5.644279644381777, "volume": 0, - "temperature": 13.071665577658658, + "temperature": 12.3, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 17.278367069614305, "inflow": 4.872690158175057, "volume": 0, - "temperature": 16.54553038182431, + "temperature": 13.3, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 16.873104255004584, "inflow": 5.475526269233246, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 13.1, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 17.2, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 13.1, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 17.18, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 13.1, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 17.17, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 13.1, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 17.16, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 13.1, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 17.13, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 13.1, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 17.15, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 13.1, "precipitation": 0 }, { @@ -6539,7 +6539,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6548,7 +6548,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6557,7 +6557,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6566,7 +6566,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6575,7 +6575,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6584,7 +6584,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6593,7 +6593,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6602,7 +6602,7 @@ "flow": 2.5, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6611,7 +6611,7 @@ "flow": 17.13, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6620,7 +6620,7 @@ "flow": 17.1, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6629,7 +6629,7 @@ "flow": 20.76, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6638,7 +6638,7 @@ "flow": 17.23, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6647,7 +6647,7 @@ "flow": 5.67, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6656,7 +6656,7 @@ "flow": 0.01, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6665,7 +6665,7 @@ "flow": 3.13, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6674,7 +6674,7 @@ "flow": 12.94, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6683,7 +6683,7 @@ "flow": 14.19, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6692,7 +6692,7 @@ "flow": 14.18, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6701,7 +6701,7 @@ "flow": 14.18, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6710,7 +6710,7 @@ "flow": 14.18, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6719,7 +6719,7 @@ "flow": 14.18, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6728,7 +6728,7 @@ "flow": 14.18, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6737,7 +6737,7 @@ "flow": 18.46, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6746,7 +6746,7 @@ "flow": 14.28, "inflow": 0, "volume": 0, - "temperature": 18.234727964853622, + "temperature": 16.9, "precipitation": 0 }, { @@ -6798,9 +6798,27 @@ "timestamp": "2026-06-05T21:00:00.000Z", "level": 369.78, "flow": 1.25, + "inflow": 0, + "volume": 0, + "temperature": 18.234727964853622, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 369.78, + "flow": 1.25, + "inflow": 0, + "volume": 0, + "temperature": 18.234727964853622, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 369.79, + "flow": 1.25, "inflow": 10.82, "volume": 20.24, - "temperature": 18.234727964853622, + "temperature": 11.3, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLKO.json b/public/data/VLKO.json index b45e58d..5fac878 100644 --- a/public/data/VLKO.json +++ b/public/data/VLKO.json @@ -6224,7 +6224,7 @@ "flow": 18.85820933714845, "inflow": 7.530109322404574, "volume": 0, - "temperature": 10.95336979932545, + "temperature": 9.4, "precipitation": 0 }, { @@ -6233,8 +6233,8 @@ "flow": 19.478153502152523, "inflow": 8.461988859660627, "volume": 0, - "temperature": 12.159935311788328, - "precipitation": 4.698156875533183 + "temperature": 9.3, + "precipitation": 0 }, { "timestamp": "2026-05-29T02:00:00.000Z", @@ -6242,7 +6242,7 @@ "flow": 18.922140523498804, "inflow": 9.282392198154792, "volume": 0, - "temperature": 13.90838283013713, + "temperature": 9, "precipitation": 0 }, { @@ -6251,7 +6251,7 @@ "flow": 18.965807166781218, "inflow": 8.885684602756797, "volume": 0, - "temperature": 15.16203078822661, + "temperature": 8.2, "precipitation": 0 }, { @@ -6260,7 +6260,7 @@ "flow": 19.28632015337889, "inflow": 9.592335902642247, "volume": 0, - "temperature": 17.08235984144172, + "temperature": 7.6, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 19.262200891409393, "inflow": 9.09419174737773, "volume": 0, - "temperature": 20.36525914806738, + "temperature": 8.9, "precipitation": 0 }, { @@ -6278,8 +6278,8 @@ "flow": 18.2720456231899, "inflow": 9.091839986240982, "volume": 0, - "temperature": 22.191298136498677, - "precipitation": 6.51114651207302 + "temperature": 12, + "precipitation": 0 }, { "timestamp": "2026-05-29T07:00:00.000Z", @@ -6287,7 +6287,7 @@ "flow": 18.178931583482772, "inflow": 8.89199962758656, "volume": 0, - "temperature": 24.294140730856974, + "temperature": 15.4, "precipitation": 0 }, { @@ -6296,7 +6296,7 @@ "flow": 17.65504076405253, "inflow": 9.529053753152741, "volume": 0, - "temperature": 24.67299398593474, + "temperature": 17.9, "precipitation": 0 }, { @@ -6305,7 +6305,7 @@ "flow": 17.72916443921507, "inflow": 8.640968037114689, "volume": 0, - "temperature": 26.52281632028462, + "temperature": 19.6, "precipitation": 0 }, { @@ -6314,7 +6314,7 @@ "flow": 17.43501051980114, "inflow": 8.885313995363894, "volume": 0, - "temperature": 26.726733224977256, + "temperature": 21.2, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 18.083361877314893, "inflow": 8.115438937075153, "volume": 0, - "temperature": 25.73775313780581, + "temperature": 22.4, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 18.51084180653432, "inflow": 7.714365593843781, "volume": 0, - "temperature": 25.413698292212267, + "temperature": 22.9, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 19.10686478256799, "inflow": 7.864457463333338, "volume": 0, - "temperature": 23.75791297930874, + "temperature": 23.9, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 18.92394881921125, "inflow": 8.712948977753737, "volume": 0, - "temperature": 22.430491561714778, + "temperature": 24.5, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 18.820566277073386, "inflow": 9.208533955028152, "volume": 0, - "temperature": 19.64711891254061, + "temperature": 24.7, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 18.334313328470618, "inflow": 9.059374913103754, "volume": 0, - "temperature": 18.936613424785563, + "temperature": 24.5, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 17.8470785575086, "inflow": 9.757502756828295, "volume": 0, - "temperature": 16.266151102602166, + "temperature": 23.7, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 18.334739673904682, "inflow": 10.222495882318537, "volume": 0, - "temperature": 13.264907864008576, + "temperature": 23, "precipitation": 0 }, { @@ -6395,7 +6395,7 @@ "flow": 18.69899527966249, "inflow": 10.633557348410235, "volume": 0, - "temperature": 12.365769011072121, + "temperature": 19.7, "precipitation": 0 }, { @@ -6404,7 +6404,7 @@ "flow": 19.027087286739697, "inflow": 11.618287904193862, "volume": 0, - "temperature": 10.464212329472929, + "temperature": 18, "precipitation": 0 }, { @@ -6413,7 +6413,7 @@ "flow": 18.814914906767676, "inflow": 11.493738934572903, "volume": 0, - "temperature": 9.90479893330861, + "temperature": 15.6, "precipitation": 0 }, { @@ -6422,7 +6422,7 @@ "flow": 18.295080894359725, "inflow": 11.119433803190814, "volume": 0, - "temperature": 10.071871285535284, + "temperature": 14.1, "precipitation": 0 }, { @@ -6431,7 +6431,7 @@ "flow": 17.75609146576159, "inflow": 11.549377689846228, "volume": 0, - "temperature": 10.595869069009863, + "temperature": 13.6, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 16.839325513611936, "inflow": 12.255068349737531, "volume": 0, - "temperature": 11.521124779420873, + "temperature": 11.4, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 17.688028929876197, "inflow": 11.392431529382627, "volume": 0, - "temperature": 12.31163815311274, + "temperature": 11.8, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 18.526474240193643, "inflow": 10.62883910734975, "volume": 0, - "temperature": 14.026008148467527, + "temperature": 12.4, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 17.567872325455035, "inflow": 10.776262087386584, "volume": 0, - "temperature": 15.299291329891101, + "temperature": 13.7, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 18.10425934756567, "inflow": 10.18983796021013, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 14, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 18.54, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 14, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 18.07, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 14, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 0.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 14, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 0.06, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 14, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 18.97, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 14, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 19.06, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 14, "precipitation": 0 }, { @@ -6539,7 +6539,7 @@ "flow": 19.11, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6548,7 +6548,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6557,7 +6557,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6566,7 +6566,7 @@ "flow": 18.84, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6575,7 +6575,7 @@ "flow": 0.21, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6584,7 +6584,7 @@ "flow": 0.21, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6593,7 +6593,7 @@ "flow": 0.21, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6602,7 +6602,7 @@ "flow": 0.21, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6611,7 +6611,7 @@ "flow": 0.21, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6620,7 +6620,7 @@ "flow": 0.21, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6629,7 +6629,7 @@ "flow": 19.09, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6638,7 +6638,7 @@ "flow": 35.03, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6647,7 +6647,7 @@ "flow": 20.55, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6656,7 +6656,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6665,7 +6665,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6674,7 +6674,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6683,7 +6683,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6692,7 +6692,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6701,7 +6701,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6710,7 +6710,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6719,7 +6719,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6728,7 +6728,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6737,7 +6737,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6746,7 +6746,7 @@ "flow": 19.01, "inflow": 0, "volume": 0, - "temperature": 18.80897823879669, + "temperature": 18, "precipitation": 0 }, { @@ -6798,9 +6798,27 @@ "timestamp": "2026-06-05T21:00:00.000Z", "level": 352.44, "flow": 19.01, + "inflow": 0, + "volume": 0, + "temperature": 12.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 352.43, + "flow": 19.01, + "inflow": 0, + "volume": 0, + "temperature": 12.4, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 352.43, + "flow": 19.01, "inflow": 14.13, "volume": 2.74, - "temperature": 12.4, + "temperature": 11.3, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLL1.json b/public/data/VLL1.json index 45f1d65..1e9971b 100644 --- a/public/data/VLL1.json +++ b/public/data/VLL1.json @@ -6224,7 +6224,7 @@ "flow": 1.0775999674167127, "inflow": 7.562485808348631, "volume": 0, - "temperature": 10.712070483609244, + "temperature": 12.2, "precipitation": 0 }, { @@ -6233,7 +6233,7 @@ "flow": 1.6308213127864426, "inflow": 6.674669769770849, "volume": 0, - "temperature": 12.628963568658238, + "temperature": 11.4, "precipitation": 0 }, { @@ -6242,7 +6242,7 @@ "flow": 2.0952669932633183, "inflow": 6.890748605765838, "volume": 0, - "temperature": 13.892168400919251, + "temperature": 11, "precipitation": 0 }, { @@ -6251,7 +6251,7 @@ "flow": 1.5494331908198133, "inflow": 6.313074776343361, "volume": 0, - "temperature": 15.391202673846097, + "temperature": 10.5, "precipitation": 0 }, { @@ -6260,7 +6260,7 @@ "flow": 2.4321470924538726, "inflow": 5.741282719015338, "volume": 0, - "temperature": 18.460222253181392, + "temperature": 10.6, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 2.8017352124983974, "inflow": 4.96167850080398, "volume": 0, - "temperature": 19.072313373340776, + "temperature": 12.7, "precipitation": 0 }, { @@ -6278,7 +6278,7 @@ "flow": 3.2212055998595353, "inflow": 5.065296260129978, "volume": 0, - "temperature": 22.982720642631477, + "temperature": 14.2, "precipitation": 0 }, { @@ -6287,7 +6287,7 @@ "flow": 4.01997023484928, "inflow": 4.1022039598819795, "volume": 0, - "temperature": 23.261448833218004, + "temperature": 16.1, "precipitation": 0 }, { @@ -6296,7 +6296,7 @@ "flow": 4.441967316198779, "inflow": 4.105970507044323, "volume": 0, - "temperature": 25.165735197920228, + "temperature": 17.8, "precipitation": 0 }, { @@ -6305,8 +6305,8 @@ "flow": 4.291668166250368, "inflow": 4.563722562870168, "volume": 0, - "temperature": 25.15196608514685, - "precipitation": 10.232492168471373 + "temperature": 18.9, + "precipitation": 0 }, { "timestamp": "2026-05-29T10:00:00.000Z", @@ -6314,7 +6314,7 @@ "flow": 3.6391274181993003, "inflow": 4.772999390850765, "volume": 0, - "temperature": 26.32228823502704, + "temperature": 20.2, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 2.885495289981591, "inflow": 4.551214880228395, "volume": 0, - "temperature": 25.804947257832392, + "temperature": 21.1, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 2.543510483900387, "inflow": 5.188669054760341, "volume": 0, - "temperature": 23.96094141870448, + "temperature": 21.6, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 2.262252627922296, "inflow": 5.6097950149288645, "volume": 0, - "temperature": 23.356325787026293, + "temperature": 22.2, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 2.9118513040332914, "inflow": 6.220221392575345, "volume": 0, - "temperature": 22.373898034034312, + "temperature": 22.8, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 2.0564155780104696, "inflow": 6.660390679585958, "volume": 0, - "temperature": 19.388151567350274, + "temperature": 22.7, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 2.671735867075153, "inflow": 6.6073986184346865, "volume": 0, - "temperature": 17.429286898715752, + "temperature": 22.4, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 2.8095378631260832, "inflow": 6.411740578528055, "volume": 0, - "temperature": 15.418286362197435, + "temperature": 21.9, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 2.4280600119872724, "inflow": 5.971363691513411, "volume": 0, - "temperature": 14.001157784628647, + "temperature": 20.3, "precipitation": 0 }, { @@ -6395,7 +6395,7 @@ "flow": 2.95300764636606, "inflow": 5.680948535290328, "volume": 0, - "temperature": 13.061377198275498, + "temperature": 18.3, "precipitation": 0 }, { @@ -6404,7 +6404,7 @@ "flow": 2.1448810258613884, "inflow": 6.272011067859027, "volume": 0, - "temperature": 11.88020047481112, + "temperature": 17.3, "precipitation": 0 }, { @@ -6413,7 +6413,7 @@ "flow": 1.2057305074303009, "inflow": 5.306307456190914, "volume": 0, - "temperature": 9.391823435294976, + "temperature": 16.3, "precipitation": 0 }, { @@ -6422,7 +6422,7 @@ "flow": 1.8623825519142878, "inflow": 5.977531640947122, "volume": 0, - "temperature": 9.668791196335455, + "temperature": 16.3, "precipitation": 0 }, { @@ -6431,7 +6431,7 @@ "flow": 2.763806017584541, "inflow": 5.368035669944726, "volume": 0, - "temperature": 9.69854902686173, + "temperature": 15.6, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 2.519045285702513, "inflow": 4.812471098897893, "volume": 0, - "temperature": 10.407716153848327, + "temperature": 13.8, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 2.6845382778130027, "inflow": 5.280496307739913, "volume": 0, - "temperature": 11.670598115487456, + "temperature": 14.3, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 2.0190758329387384, "inflow": 5.785322599321421, "volume": 0, - "temperature": 13.464235213973954, + "temperature": 14.4, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 1.164232733554334, "inflow": 6.196028200052245, "volume": 0, - "temperature": 16.896392631111297, + "temperature": 14.4, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 1.2712575711438443, "inflow": 5.767755835263081, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 14.1, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 1.03, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 14.1, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 1.03, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 14.1, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 30.94, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 14.1, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 1.51, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 14.1, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 14.1, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 14.1, "precipitation": 0 }, { @@ -6539,7 +6539,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6548,7 +6548,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6557,7 +6557,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6566,7 +6566,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6575,7 +6575,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6584,7 +6584,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6593,7 +6593,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6602,7 +6602,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6611,7 +6611,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6620,7 +6620,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6629,7 +6629,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6638,7 +6638,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6647,7 +6647,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6656,7 +6656,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6665,7 +6665,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6674,7 +6674,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6683,7 +6683,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6692,7 +6692,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6701,7 +6701,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6710,7 +6710,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6719,7 +6719,7 @@ "flow": 1.49, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6728,7 +6728,7 @@ "flow": 13.76, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6737,7 +6737,7 @@ "flow": 34.78, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6746,7 +6746,7 @@ "flow": 37.78, "inflow": 0, "volume": 0, - "temperature": 18.62002326908434, + "temperature": 16.6, "precipitation": 0 }, { @@ -6797,10 +6797,28 @@ { "timestamp": "2026-06-05T21:00:00.000Z", "level": 723.09, - "flow": 0, + "flow": 1.51, + "inflow": 0, + "volume": 0, + "temperature": 18.62002326908434, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 723.08, + "flow": 1.51, + "inflow": 0, + "volume": 0, + "temperature": 18.62002326908434, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 723.08, + "flow": 1.51, "inflow": 2.51, "volume": 199.67, - "temperature": 18.62002326908434, + "temperature": 11.5, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLL2.json b/public/data/VLL2.json index fd1a38d..92c5f34 100644 --- a/public/data/VLL2.json +++ b/public/data/VLL2.json @@ -6224,7 +6224,7 @@ "flow": 4.365181159387589, "inflow": 16.10848118438953, "volume": 0, - "temperature": 10.2484270550213, + "temperature": 8.8, "precipitation": 0 }, { @@ -6233,7 +6233,7 @@ "flow": 4.700593677387833, "inflow": 16.36435058291174, "volume": 0, - "temperature": 12.981305710965154, + "temperature": 8.7, "precipitation": 0 }, { @@ -6242,7 +6242,7 @@ "flow": 4.0051390907234286, "inflow": 15.681929718014416, "volume": 0, - "temperature": 14.196619580509674, + "temperature": 8.5, "precipitation": 0 }, { @@ -6251,7 +6251,7 @@ "flow": 3.549671894793789, "inflow": 15.86635620290593, "volume": 0, - "temperature": 15.311488419314006, + "temperature": 7.7, "precipitation": 0 }, { @@ -6260,7 +6260,7 @@ "flow": 2.7064032441088, "inflow": 14.936301190340798, "volume": 0, - "temperature": 18.563890144899485, + "temperature": 7.3, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 2.1616864948473373, "inflow": 14.458375946246935, "volume": 0, - "temperature": 20.710534033782615, + "temperature": 9.6, "precipitation": 0 }, { @@ -6278,7 +6278,7 @@ "flow": 1.8278597058170751, "inflow": 13.86821201951613, "volume": 0, - "temperature": 22.326915542392353, + "temperature": 13.1, "precipitation": 0 }, { @@ -6287,7 +6287,7 @@ "flow": 2.458085316564024, "inflow": 13.522367959828447, "volume": 0, - "temperature": 23.262798706631045, + "temperature": 16.4, "precipitation": 0 }, { @@ -6296,7 +6296,7 @@ "flow": 2.7640292426693525, "inflow": 13.83487208392945, "volume": 0, - "temperature": 24.58309533491213, + "temperature": 18.4, "precipitation": 0 }, { @@ -6305,8 +6305,8 @@ "flow": 2.049236001922501, "inflow": 14.62902870182342, "volume": 0, - "temperature": 25.284596187718453, - "precipitation": 7.781208524376755 + "temperature": 20.4, + "precipitation": 0 }, { "timestamp": "2026-05-29T10:00:00.000Z", @@ -6314,7 +6314,7 @@ "flow": 2.929452012622238, "inflow": 15.244852657004085, "volume": 0, - "temperature": 26.579073133295417, + "temperature": 21.8, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 3.128723067237695, "inflow": 15.383558398197556, "volume": 0, - "temperature": 26.192292042575353, + "temperature": 22.8, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 2.4961806131553934, "inflow": 14.941804161227491, "volume": 0, - "temperature": 25.179132935098085, + "temperature": 23, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 3.3892060144955063, "inflow": 15.23286213234947, "volume": 0, - "temperature": 24.281833164737442, + "temperature": 23.8, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 4.09892593165481, "inflow": 15.274298740688673, "volume": 0, - "temperature": 22.41980319672023, + "temperature": 24.4, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 4.363939572738262, "inflow": 14.63750269758728, "volume": 0, - "temperature": 19.847231447176913, + "temperature": 24.2, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 4.286849383626496, "inflow": 13.946678616200064, "volume": 0, - "temperature": 18.222708958821187, + "temperature": 23.6, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 3.5174647243768646, "inflow": 14.092652069013708, "volume": 0, - "temperature": 16.528679258679517, + "temperature": 22.5, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 4.435678138715169, "inflow": 14.445345047237785, "volume": 0, - "temperature": 14.226544997946881, + "temperature": 21.5, "precipitation": 0 }, { @@ -6395,7 +6395,7 @@ "flow": 4.9725705741501836, "inflow": 15.063258450540008, "volume": 0, - "temperature": 12.464173884596326, + "temperature": 17.1, "precipitation": 0 }, { @@ -6404,8 +6404,8 @@ "flow": 5.6267802546896, "inflow": 15.23279815854281, "volume": 0, - "temperature": 10.57224840318111, - "precipitation": 3.6717412195180854 + "temperature": 14.1, + "precipitation": 0 }, { "timestamp": "2026-05-29T21:00:00.000Z", @@ -6413,7 +6413,7 @@ "flow": 6.127127912957503, "inflow": 15.808937469649646, "volume": 0, - "temperature": 10.838434960638619, + "temperature": 12.8, "precipitation": 0 }, { @@ -6422,7 +6422,7 @@ "flow": 5.999314118657319, "inflow": 15.244069644274955, "volume": 0, - "temperature": 10.558792730740409, + "temperature": 11.5, "precipitation": 0 }, { @@ -6431,7 +6431,7 @@ "flow": 5.8267571574500225, "inflow": 14.709843378742695, "volume": 0, - "temperature": 11.011730061831852, + "temperature": 10.5, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 5.141994428812241, "inflow": 13.837199060835264, "volume": 0, - "temperature": 11.80106846886817, + "temperature": 10.1, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 5.356505595559344, "inflow": 13.729890098449216, "volume": 0, - "temperature": 12.658763011504309, + "temperature": 10.5, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 5.758207910149611, "inflow": 14.03112891743297, "volume": 0, - "temperature": 14.70737806414677, + "temperature": 11.7, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 6.5526293641913265, "inflow": 14.249824963939009, "volume": 0, - "temperature": 15.573719631322156, + "temperature": 12.1, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 6.78026762856816, "inflow": 13.942516185179116, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 12, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 6.37, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 12, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 7.06, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 12, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 7.6, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 12, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 6.83, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 12, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 6.41, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 12, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 6.37, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 12, "precipitation": 0 }, { @@ -6539,7 +6539,7 @@ "flow": 6.37, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6548,7 +6548,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6557,7 +6557,7 @@ "flow": 6.33, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6566,7 +6566,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6575,7 +6575,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6584,7 +6584,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6593,7 +6593,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6602,7 +6602,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6611,7 +6611,7 @@ "flow": 6.37, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6620,7 +6620,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6629,7 +6629,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6638,7 +6638,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6647,7 +6647,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6656,7 +6656,7 @@ "flow": 6.35, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6665,7 +6665,7 @@ "flow": 6.33, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6674,7 +6674,7 @@ "flow": 6.33, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6683,7 +6683,7 @@ "flow": 6.33, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6692,7 +6692,7 @@ "flow": 6.33, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6701,7 +6701,7 @@ "flow": 7.27, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6710,7 +6710,7 @@ "flow": 7.29, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6719,7 +6719,7 @@ "flow": 7.31, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6728,7 +6728,7 @@ "flow": 7.34, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6737,7 +6737,7 @@ "flow": 7.48, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6746,7 +6746,7 @@ "flow": 7.29, "inflow": 0, "volume": 0, - "temperature": 17.97824695485787, + "temperature": 15.3, "precipitation": 0 }, { @@ -6798,9 +6798,27 @@ "timestamp": "2026-06-05T21:00:00.000Z", "level": 559.91, "flow": 0, + "inflow": 0, + "volume": 0, + "temperature": 17.97824695485787, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 559.9, + "flow": 0, + "inflow": 0, + "volume": 0, + "temperature": 17.97824695485787, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 559.89, + "flow": 0, "inflow": 3.71, "volume": 0.68, - "temperature": 17.97824695485787, + "temperature": 8.7, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLOR.json b/public/data/VLOR.json index 3a78173..5132efa 100644 --- a/public/data/VLOR.json +++ b/public/data/VLOR.json @@ -6224,8 +6224,8 @@ "flow": 0.45872682644069274, "inflow": 5.418118024063315, "volume": 0, - "temperature": 10.628735391831379, - "precipitation": 14.055419632748581 + "temperature": 11.5, + "precipitation": 0 }, { "timestamp": "2026-05-29T01:00:00.000Z", @@ -6233,7 +6233,7 @@ "flow": 0.29272132065840273, "inflow": 6.031300247963658, "volume": 0, - "temperature": 12.255105992245255, + "temperature": 10.6, "precipitation": 0 }, { @@ -6242,7 +6242,7 @@ "flow": 0.6124431779934971, "inflow": 6.2907989720254776, "volume": 0, - "temperature": 14.809595155707214, + "temperature": 9.4, "precipitation": 0 }, { @@ -6251,7 +6251,7 @@ "flow": 0, "inflow": 7.0801973326083685, "volume": 0, - "temperature": 16.223114087157114, + "temperature": 8.8, "precipitation": 0 }, { @@ -6260,7 +6260,7 @@ "flow": 0.21000541821761454, "inflow": 6.156100534605411, "volume": 0, - "temperature": 17.833293966938257, + "temperature": 9.1, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 0, "inflow": 5.595882779411705, "volume": 0, - "temperature": 20.829113127490746, + "temperature": 10.6, "precipitation": 0 }, { @@ -6278,7 +6278,7 @@ "flow": 0.41928466860451685, "inflow": 5.4047220894580885, "volume": 0, - "temperature": 21.065535272480204, + "temperature": 13.2, "precipitation": 0 }, { @@ -6287,7 +6287,7 @@ "flow": 0, "inflow": 5.601671137936824, "volume": 0, - "temperature": 23.347881816341825, + "temperature": 15.7, "precipitation": 0 }, { @@ -6296,8 +6296,8 @@ "flow": 0.10658170033728265, "inflow": 4.726307633546468, "volume": 0, - "temperature": 24.20653549960246, - "precipitation": 7.025768752108713 + "temperature": 17.8, + "precipitation": 0 }, { "timestamp": "2026-05-29T09:00:00.000Z", @@ -6305,7 +6305,7 @@ "flow": 0.39485291266935363, "inflow": 4.990403423521068, "volume": 0, - "temperature": 26.19854745755194, + "temperature": 19.8, "precipitation": 0 }, { @@ -6314,7 +6314,7 @@ "flow": 0.09333958727681946, "inflow": 4.34247196051799, "volume": 0, - "temperature": 25.13059775448898, + "temperature": 21.2, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 0.6508090131597752, "inflow": 4.2873455697861935, "volume": 0, - "temperature": 24.935478121601196, + "temperature": 22.5, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 1.1062859545114905, "inflow": 4.388013475621005, "volume": 0, - "temperature": 25.82401242764534, + "temperature": 23.6, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 1.926339372727219, "inflow": 3.417925094555751, "volume": 0, - "temperature": 24.4716773082844, + "temperature": 24.7, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 1.7465193272803394, "inflow": 2.651017507325129, "volume": 0, - "temperature": 22.966178329866473, + "temperature": 25.4, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 1.207303361346816, "inflow": 2.4276659591073106, "volume": 0, - "temperature": 19.92462803658281, + "temperature": 25, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 1.8710517008597307, "inflow": 2.898695274347418, "volume": 0, - "temperature": 18.401651167281198, + "temperature": 24.9, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 1.778049447420322, "inflow": 3.644980438071766, "volume": 0, - "temperature": 16.43949190233142, + "temperature": 24.2, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 0.9957390929257155, "inflow": 3.488600580477045, "volume": 0, - "temperature": 13.083332014821364, + "temperature": 23.4, "precipitation": 0 }, { @@ -6395,7 +6395,7 @@ "flow": 0.8927139878189916, "inflow": 3.909908507214767, "volume": 0, - "temperature": 11.99166355163596, + "temperature": 21.2, "precipitation": 0 }, { @@ -6404,7 +6404,7 @@ "flow": 0, "inflow": 4.035624508481639, "volume": 0, - "temperature": 10.815032945842187, + "temperature": 19.6, "precipitation": 0 }, { @@ -6413,7 +6413,7 @@ "flow": 0.3189577965808552, "inflow": 4.87152702234582, "volume": 0, - "temperature": 10.993387958895157, + "temperature": 16.1, "precipitation": 0 }, { @@ -6422,8 +6422,8 @@ "flow": 1.081012232505167, "inflow": 5.29878087011846, "volume": 0, - "temperature": 10.960835324595767, - "precipitation": 3.082218577427195 + "temperature": 13.6, + "precipitation": 0 }, { "timestamp": "2026-05-29T23:00:00.000Z", @@ -6431,7 +6431,7 @@ "flow": 1.7195911590443869, "inflow": 5.007724395521767, "volume": 0, - "temperature": 11.041595169977933, + "temperature": 13, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 1.0555673739432576, "inflow": 5.94003549069455, "volume": 0, - "temperature": 10.915680875251725, + "temperature": 13.9, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 0.08373066956955233, "inflow": 5.105321550833134, "volume": 0, - "temperature": 12.836309790927574, + "temperature": 15.1, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 0.031093409675770012, "inflow": 4.465377954621802, "volume": 0, - "temperature": 14.474164201836237, + "temperature": 17.4, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 0.1462135767091719, "inflow": 5.441744613959305, "volume": 0, - "temperature": 15.366267389908286, + "temperature": 16.5, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 0, "inflow": 5.514286954782438, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 16.3, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 16.3, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 16.3, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 16.3, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 16.3, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 17.77, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 16.3, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 16.3, "precipitation": 0 }, { @@ -6539,7 +6539,7 @@ "flow": 374.8, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6548,7 +6548,7 @@ "flow": 97.45, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6557,7 +6557,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6566,7 +6566,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6575,7 +6575,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6584,7 +6584,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6593,7 +6593,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6602,7 +6602,7 @@ "flow": 100.93, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6611,7 +6611,7 @@ "flow": 284.29, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6620,7 +6620,7 @@ "flow": 187.15, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6629,7 +6629,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6638,7 +6638,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6647,7 +6647,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6656,7 +6656,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6665,7 +6665,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6674,7 +6674,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6683,7 +6683,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6692,7 +6692,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6701,7 +6701,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6710,7 +6710,7 @@ "flow": 72.6, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6719,7 +6719,7 @@ "flow": 186.83, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6728,7 +6728,7 @@ "flow": 454.38, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6737,7 +6737,7 @@ "flow": 444.3, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6746,7 +6746,7 @@ "flow": 370.39, "inflow": 0, "volume": 0, - "temperature": 18.70045888971512, + "temperature": 18.4, "precipitation": 0 }, { @@ -6798,9 +6798,27 @@ "timestamp": "2026-06-05T21:00:00.000Z", "level": 345.26, "flow": 377.67, + "inflow": 0, + "volume": 0, + "temperature": 18.70045888971512, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 345.27, + "flow": 137.48, + "inflow": 0, + "volume": 0, + "temperature": 18.70045888971512, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 345.27, + "flow": 0, "inflow": 23.84, "volume": 522.12, - "temperature": 18.70045888971512, + "temperature": 12.2, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLSL.json b/public/data/VLSL.json index ce1b542..acf1bc7 100644 --- a/public/data/VLSL.json +++ b/public/data/VLSL.json @@ -6224,7 +6224,7 @@ "flow": 64.66372954747197, "inflow": 10.835675109679848, "volume": 0, - "temperature": 11.332208716662688, + "temperature": 10.2, "precipitation": 0 }, { @@ -6233,7 +6233,7 @@ "flow": 64.75091940773491, "inflow": 11.746611298590212, "volume": 0, - "temperature": 12.588263724942443, + "temperature": 8.3, "precipitation": 0 }, { @@ -6242,8 +6242,8 @@ "flow": 64.78810916126807, "inflow": 11.428868286293351, "volume": 0, - "temperature": 13.466635245198212, - "precipitation": 11.19337583034626 + "temperature": 6.6, + "precipitation": 0 }, { "timestamp": "2026-05-29T03:00:00.000Z", @@ -6251,7 +6251,7 @@ "flow": 64.34224252535267, "inflow": 11.2883984285744, "volume": 0, - "temperature": 15.033575945591984, + "temperature": 6.2, "precipitation": 0 }, { @@ -6260,7 +6260,7 @@ "flow": 63.994379330775395, "inflow": 11.50340979747026, "volume": 0, - "temperature": 18.022430122031643, + "temperature": 6.4, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 64.08395069776843, "inflow": 12.07803306987504, "volume": 0, - "temperature": 20.07713354937252, + "temperature": 8.5, "precipitation": 0 }, { @@ -6278,7 +6278,7 @@ "flow": 63.482461873581116, "inflow": 11.474142237426106, "volume": 0, - "temperature": 21.18517294106132, + "temperature": 13.2, "precipitation": 0 }, { @@ -6287,7 +6287,7 @@ "flow": 63.01965543954704, "inflow": 12.037027864258066, "volume": 0, - "temperature": 23.06809856211999, + "temperature": 16.4, "precipitation": 0 }, { @@ -6296,7 +6296,7 @@ "flow": 63.68321210964681, "inflow": 12.73748826461153, "volume": 0, - "temperature": 24.162620874418316, + "temperature": 18.7, "precipitation": 0 }, { @@ -6305,7 +6305,7 @@ "flow": 64.29997842901736, "inflow": 11.833177814828096, "volume": 0, - "temperature": 25.747707144512532, + "temperature": 20.6, "precipitation": 0 }, { @@ -6314,7 +6314,7 @@ "flow": 65.0538837941593, "inflow": 12.821229953175557, "volume": 0, - "temperature": 26.910921685254124, + "temperature": 21.9, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 65.23632779200821, "inflow": 11.978320184367192, "volume": 0, - "temperature": 26.20276691948672, + "temperature": 23.3, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 64.61575193571078, "inflow": 11.29980416128302, "volume": 0, - "temperature": 24.059572876448392, + "temperature": 24.4, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 65.2465457533614, "inflow": 12.261307914089151, "volume": 0, - "temperature": 23.703608515808256, + "temperature": 25, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 65.234904510153, "inflow": 12.013720995164933, "volume": 0, - "temperature": 22.96758027596439, + "temperature": 25.3, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 64.23512824581816, "inflow": 11.339878591111631, "volume": 0, - "temperature": 21.025864233007646, + "temperature": 25.2, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 63.559261593094874, "inflow": 11.80165433934944, "volume": 0, - "temperature": 18.497540874666015, + "temperature": 25.1, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 63.77282015565616, "inflow": 11.885571089670538, "volume": 0, - "temperature": 16.219052526934874, + "temperature": 24.3, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 63.27104205683847, "inflow": 11.71951070013311, "volume": 0, - "temperature": 13.136075765622097, + "temperature": 22.4, "precipitation": 0 }, { @@ -6395,7 +6395,7 @@ "flow": 62.274902765799695, "inflow": 11.109051166059913, "volume": 0, - "temperature": 12.734455063053533, + "temperature": 19.6, "precipitation": 0 }, { @@ -6404,7 +6404,7 @@ "flow": 61.55920220947817, "inflow": 11.370451687105444, "volume": 0, - "temperature": 11.782937560852128, + "temperature": 16.6, "precipitation": 0 }, { @@ -6413,7 +6413,7 @@ "flow": 61.29139228964103, "inflow": 10.718637733546029, "volume": 0, - "temperature": 9.87499227238812, + "temperature": 14.7, "precipitation": 0 }, { @@ -6422,7 +6422,7 @@ "flow": 61.24072521946069, "inflow": 10.215185357776488, "volume": 0, - "temperature": 9.381837821807865, + "temperature": 12.3, "precipitation": 0 }, { @@ -6431,7 +6431,7 @@ "flow": 60.896977238779726, "inflow": 10.243595188394764, "volume": 0, - "temperature": 10.935068840226563, + "temperature": 11.3, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 60.47087667341222, "inflow": 11.143126054757351, "volume": 0, - "temperature": 11.013425087754884, + "temperature": 11.7, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 59.76983967249644, "inflow": 10.560858392588766, "volume": 0, - "temperature": 11.908703617260674, + "temperature": 11.2, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 59.03606101052101, "inflow": 11.475747951297794, "volume": 0, - "temperature": 13.427514626222555, + "temperature": 12, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 59.13169099247518, "inflow": 12.382285300984554, "volume": 0, - "temperature": 15.049585628226156, + "temperature": 12.7, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 58.273188343084236, "inflow": 11.6479599112101, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 12.9, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 58.2, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 12.9, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 12.9, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 139.04, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 12.9, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 13.82, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 12.9, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 12.9, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 26.22, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 12.9, "precipitation": 0 }, { @@ -6539,7 +6539,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6548,7 +6548,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6557,7 +6557,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6566,7 +6566,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6575,7 +6575,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6584,7 +6584,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6593,7 +6593,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6602,7 +6602,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6611,7 +6611,7 @@ "flow": 58.26, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6620,7 +6620,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6629,7 +6629,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6638,7 +6638,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6647,7 +6647,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6656,7 +6656,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6665,7 +6665,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6674,7 +6674,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6683,7 +6683,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6692,7 +6692,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6701,7 +6701,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6710,7 +6710,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6719,7 +6719,7 @@ "flow": 119.44, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6728,7 +6728,7 @@ "flow": 137.14, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6737,7 +6737,7 @@ "flow": 310.27, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6746,7 +6746,7 @@ "flow": 308.35, "inflow": 0, "volume": 0, - "temperature": 18.453049985319225, + "temperature": 18.1, "precipitation": 0 }, { @@ -6798,9 +6798,27 @@ "timestamp": "2026-06-05T21:00:00.000Z", "level": 269.8, "flow": 217.32, + "inflow": 0, + "volume": 0, + "temperature": 16.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 269.83, + "flow": 79.38, + "inflow": 0, + "volume": 0, + "temperature": 16.3, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 269.83, + "flow": 0, "inflow": 46.5, "volume": 260.21, - "temperature": 16.3, + "temperature": 11.8, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/VLST.json b/public/data/VLST.json index 1654282..39b05ed 100644 --- a/public/data/VLST.json +++ b/public/data/VLST.json @@ -6224,7 +6224,7 @@ "flow": 53.289265702912346, "inflow": 14.69512960684399, "volume": 0, - "temperature": 10.946549655670102, + "temperature": 9.6, "precipitation": 0 }, { @@ -6233,7 +6233,7 @@ "flow": 52.460653614134266, "inflow": 15.67396343937524, "volume": 0, - "temperature": 11.60400287785288, + "temperature": 8.8, "precipitation": 0 }, { @@ -6242,7 +6242,7 @@ "flow": 52.823850893084, "inflow": 15.866558699273583, "volume": 0, - "temperature": 14.041396001206476, + "temperature": 7.6, "precipitation": 0 }, { @@ -6251,8 +6251,8 @@ "flow": 51.94483512459484, "inflow": 16.647048277555704, "volume": 0, - "temperature": 15.021057342509291, - "precipitation": 3.169483713975978 + "temperature": 6.7, + "precipitation": 0 }, { "timestamp": "2026-05-29T04:00:00.000Z", @@ -6260,7 +6260,7 @@ "flow": 51.17502261933935, "inflow": 17.453616211983267, "volume": 0, - "temperature": 17.754859953470117, + "temperature": 7.1, "precipitation": 0 }, { @@ -6269,7 +6269,7 @@ "flow": 51.42397418402193, "inflow": 18.20408722628697, "volume": 0, - "temperature": 20.414503731597474, + "temperature": 9.4, "precipitation": 0 }, { @@ -6278,7 +6278,7 @@ "flow": 51.14309547659398, "inflow": 17.41139720766991, "volume": 0, - "temperature": 21.6422531119719, + "temperature": 14.2, "precipitation": 0 }, { @@ -6287,7 +6287,7 @@ "flow": 50.8781637270406, "inflow": 17.972210320561054, "volume": 0, - "temperature": 23.199449838292242, + "temperature": 16.5, "precipitation": 0 }, { @@ -6296,7 +6296,7 @@ "flow": 51.39124508512886, "inflow": 17.70589763377926, "volume": 0, - "temperature": 24.591753863687025, + "temperature": 18.2, "precipitation": 0 }, { @@ -6305,7 +6305,7 @@ "flow": 50.39840792205937, "inflow": 17.26382500686824, "volume": 0, - "temperature": 25.86472223867444, + "temperature": 20.3, "precipitation": 0 }, { @@ -6314,7 +6314,7 @@ "flow": 50.10832495873022, "inflow": 17.686177560614855, "volume": 0, - "temperature": 25.632402210671383, + "temperature": 21.7, "precipitation": 0 }, { @@ -6323,7 +6323,7 @@ "flow": 50.987709607829956, "inflow": 18.18071866710619, "volume": 0, - "temperature": 26.439385954075625, + "temperature": 23, "precipitation": 0 }, { @@ -6332,7 +6332,7 @@ "flow": 50.00162051092665, "inflow": 17.351526693140073, "volume": 0, - "temperature": 24.037327625772257, + "temperature": 24.2, "precipitation": 0 }, { @@ -6341,7 +6341,7 @@ "flow": 50.15394679227498, "inflow": 17.335855807809214, "volume": 0, - "temperature": 24.5406688328583, + "temperature": 24.7, "precipitation": 0 }, { @@ -6350,7 +6350,7 @@ "flow": 50.957797995779934, "inflow": 16.56309044571458, "volume": 0, - "temperature": 22.409675921850944, + "temperature": 24.9, "precipitation": 0 }, { @@ -6359,7 +6359,7 @@ "flow": 50.30444374345508, "inflow": 17.092308624574795, "volume": 0, - "temperature": 19.429087085060985, + "temperature": 24.9, "precipitation": 0 }, { @@ -6368,7 +6368,7 @@ "flow": 50.72830852266808, "inflow": 16.556269016635383, "volume": 0, - "temperature": 17.04610694328487, + "temperature": 24.8, "precipitation": 0 }, { @@ -6377,7 +6377,7 @@ "flow": 50.009065239969225, "inflow": 16.926660654738733, "volume": 0, - "temperature": 15.499782826465049, + "temperature": 24, "precipitation": 0 }, { @@ -6386,7 +6386,7 @@ "flow": 49.28155200455446, "inflow": 16.45526126693968, "volume": 0, - "temperature": 13.183236014207857, + "temperature": 21.9, "precipitation": 0 }, { @@ -6395,7 +6395,7 @@ "flow": 48.41505620911349, "inflow": 16.537188483951088, "volume": 0, - "temperature": 12.947399191142864, + "temperature": 19, "precipitation": 0 }, { @@ -6404,7 +6404,7 @@ "flow": 47.99660875652619, "inflow": 15.729871103195846, "volume": 0, - "temperature": 10.891578071255065, + "temperature": 16.4, "precipitation": 0 }, { @@ -6413,7 +6413,7 @@ "flow": 48.23214238318098, "inflow": 14.817507000336688, "volume": 0, - "temperature": 9.727439091490039, + "temperature": 14.8, "precipitation": 0 }, { @@ -6422,7 +6422,7 @@ "flow": 48.6363924912096, "inflow": 15.168943899408168, "volume": 0, - "temperature": 9.410106114922865, + "temperature": 14.4, "precipitation": 0 }, { @@ -6431,7 +6431,7 @@ "flow": 49.52035031397756, "inflow": 15.06364156296313, "volume": 0, - "temperature": 10.140592216206873, + "temperature": 14.1, "precipitation": 0 }, { @@ -6440,7 +6440,7 @@ "flow": 49.67843870754245, "inflow": 14.126672737259415, "volume": 0, - "temperature": 10.16033512256216, + "temperature": 14.2, "precipitation": 0 }, { @@ -6449,7 +6449,7 @@ "flow": 50.229652108079435, "inflow": 13.2019670640711, "volume": 0, - "temperature": 12.410123754648819, + "temperature": 14.3, "precipitation": 0 }, { @@ -6458,7 +6458,7 @@ "flow": 49.23165201977064, "inflow": 13.362333202006376, "volume": 0, - "temperature": 13.780059877159303, + "temperature": 15, "precipitation": 0 }, { @@ -6467,7 +6467,7 @@ "flow": 49.55186936977746, "inflow": 13.428296467220516, "volume": 0, - "temperature": 15.323235599779874, + "temperature": 14.1, "precipitation": 0 }, { @@ -6476,7 +6476,7 @@ "flow": 49.61183977877552, "inflow": 14.169504595969533, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 14.5, "precipitation": 0 }, { @@ -6485,7 +6485,7 @@ "flow": 50.53, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 14.5, "precipitation": 0 }, { @@ -6494,7 +6494,7 @@ "flow": 50.43, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 14.5, "precipitation": 0 }, { @@ -6503,7 +6503,7 @@ "flow": 150.49, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 14.5, "precipitation": 0 }, { @@ -6512,7 +6512,7 @@ "flow": 25.35, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 14.5, "precipitation": 0 }, { @@ -6521,7 +6521,7 @@ "flow": 130.25, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 14.5, "precipitation": 0 }, { @@ -6530,7 +6530,7 @@ "flow": 22.27, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 14.5, "precipitation": 0 }, { @@ -6539,7 +6539,7 @@ "flow": 25.36, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6548,7 +6548,7 @@ "flow": 25.39, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6557,7 +6557,7 @@ "flow": 60.82, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6566,7 +6566,7 @@ "flow": 50.48, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6575,7 +6575,7 @@ "flow": 24.27, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6584,7 +6584,7 @@ "flow": 24.27, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6593,7 +6593,7 @@ "flow": 24.26, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6602,7 +6602,7 @@ "flow": 24.25, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6611,7 +6611,7 @@ "flow": 79.52, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6620,7 +6620,7 @@ "flow": 70.84, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6629,7 +6629,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6638,7 +6638,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6647,7 +6647,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6656,7 +6656,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6665,7 +6665,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6674,7 +6674,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6683,7 +6683,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6692,7 +6692,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6701,7 +6701,7 @@ "flow": 0, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6710,7 +6710,7 @@ "flow": 7.12, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6719,7 +6719,7 @@ "flow": 25.32, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6728,7 +6728,7 @@ "flow": 70.8, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6737,7 +6737,7 @@ "flow": 150.41, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6746,7 +6746,7 @@ "flow": 150.43, "inflow": 0, "volume": 0, - "temperature": 18.450684013836877, + "temperature": 17.3, "precipitation": 0 }, { @@ -6798,9 +6798,27 @@ "timestamp": "2026-06-05T21:00:00.000Z", "level": 218.59, "flow": 85.17, + "inflow": 0, + "volume": 0, + "temperature": 18.450684013836877, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:10:00.000Z", + "level": 218.78, + "flow": 52.56, + "inflow": 0, + "volume": 0, + "temperature": 18.450684013836877, + "precipitation": 0 + }, + { + "timestamp": "2026-06-05T21:20:00.000Z", + "level": 218.64, + "flow": 25.32, "inflow": 19.85, "volume": 9.68, - "temperature": 18.450684013836877, + "temperature": 11.7, "precipitation": 0 } ] \ No newline at end of file diff --git a/public/data/lakes_index.json b/public/data/lakes_index.json index b6a8df8..e782084 100644 --- a/public/data/lakes_index.json +++ b/public/data/lakes_index.json @@ -4,19 +4,16 @@ "name": "Lipno 1", "river": "Vltava", "priority": true, - "level": "723.09", - "capacity": 76.3, - "storageDiff": -1.81, + "level": "723.08", + "capacity": 76.2, + "storageDiff": -1.82, "inflow": "2.5", "outflow": "1.5", - "volume": 199.27, + "volume": 199.67, "maxVolume": 306, "lat": 48.6322, "lng": 14.2215, "sparkline": [ - 1.49, - 1.49, - 1.49, 1.49, 13.76, 34.78, @@ -25,6 +22,9 @@ 14.02, 1.51, 1.51, + 1.51, + 1.51, + 1.51, 1.51 ] }, @@ -33,19 +33,16 @@ "name": "Lipno II", "river": "Vltava", "priority": false, - "level": "559.91", + "level": "559.89", "capacity": 100, - "storageDiff": 48.41, + "storageDiff": 48.39, "inflow": "3.7", "outflow": "0.0", - "volume": 0.62, + "volume": 0.68, "maxVolume": 1.5, "lat": 48.625, "lng": 14.318, "sparkline": [ - 6.33, - 7.27, - 7.29, 7.31, 7.34, 7.48, @@ -54,6 +51,9 @@ 7.24, 0, 0, + 0, + 0, + 0, 0 ] }, @@ -62,19 +62,16 @@ "name": "Hněvkovice", "river": "Vltava", "priority": true, - "level": "369.78", - "capacity": 86.9, - "storageDiff": -0.32, + "level": "369.79", + "capacity": 87.1, + "storageDiff": -0.31, "inflow": "10.8", "outflow": "1.3", - "volume": 20.2, + "volume": 20.24, "maxVolume": 21.1, "lat": 49.183, "lng": 14.444, "sparkline": [ - 14.18, - 14.18, - 14.18, 14.18, 14.18, 18.46, @@ -83,6 +80,9 @@ 1.25, 1.25, 1.25, + 1.25, + 1.25, + 1.25, 1.25 ] }, @@ -91,12 +91,12 @@ "name": "Kořensko", "river": "Vltava", "priority": false, - "level": "352.44", - "capacity": 29.3, - "storageDiff": -0.16, + "level": "352.43", + "capacity": 28.7, + "storageDiff": -0.17, "inflow": "14.1", "outflow": "19.0", - "volume": 2.75, + "volume": 2.74, "maxVolume": 2.8, "lat": 49.255, "lng": 14.398, @@ -124,15 +124,12 @@ "capacity": 63.6, "storageDiff": -4.63, "inflow": "23.8", - "outflow": "432.4", - "volume": 523.52, + "outflow": "0.0", + "volume": 522.12, "maxVolume": 716.5, "lat": 49.606, "lng": 14.17, "sparkline": [ - 0, - 0, - 72.6, 186.83, 454.38, 444.3, @@ -141,7 +138,10 @@ 431.93, 432.4, 432.9, - 432.41 + 432.41, + 377.67, + 137.48, + 0 ] }, { @@ -178,19 +178,16 @@ "name": "Slapy", "river": "Vltava", "priority": true, - "level": "269.80", - "capacity": 76.8, - "storageDiff": -0.8, + "level": "269.83", + "capacity": 77.3, + "storageDiff": -0.77, "inflow": "46.5", - "outflow": "287.9", - "volume": 259.76, + "outflow": "0.0", + "volume": 260.21, "maxVolume": 269.3, "lat": 49.822, "lng": 14.436, "sparkline": [ - 0, - 0, - 0, 119.44, 137.14, 310.27, @@ -199,7 +196,10 @@ 284.81, 285.23, 287.34, - 287.91 + 287.91, + 217.32, + 79.38, + 0 ] }, { @@ -207,19 +207,16 @@ "name": "Štěchovice", "river": "Vltava", "priority": false, - "level": "218.47", - "capacity": 58.8, - "storageDiff": -0.93, + "level": "218.64", + "capacity": 65.6, + "storageDiff": -0.76, "inflow": "19.9", - "outflow": "85.3", - "volume": 8.96, + "outflow": "25.3", + "volume": 9.68, "maxVolume": 11.2, "lat": 49.845, "lng": 14.412, "sparkline": [ - 0, - 0, - 7.12, 25.32, 70.8, 150.41, @@ -228,7 +225,10 @@ 99.8, 99.83, 94.85, - 85.34 + 85.34, + 85.17, + 52.56, + 25.32 ] }, { @@ -312,7 +312,7 @@ 0.7, 0.7, 0.7, - 0.7, + 0, 0.7, 0.7, 0 @@ -327,16 +327,12 @@ "capacity": 0, "storageDiff": -1.25, "inflow": "1.5", - "outflow": "2.5", - "volume": 32.35, + "outflow": "0.0", + "volume": 32.37, "maxVolume": 56.7, "lat": 49.789, "lng": 13.155, "sparkline": [ - 2.53, - 2.53, - 2.52, - 2.52, 2.52, 2.52, 2.53, @@ -344,7 +340,11 @@ 2.53, 2.53, 2.53, - 2.53 + 2.53, + 2.53, + 2.53, + 2.53, + 0 ] } ] \ No newline at end of file diff --git a/scratch_check_weather.ts b/scratch_check_weather.ts new file mode 100644 index 0000000..751599e --- /dev/null +++ b/scratch_check_weather.ts @@ -0,0 +1,31 @@ +import axios from 'axios'; +import * as cheerio from 'cheerio'; +import https from 'https'; +import { lakesConfig } from './scripts/lakesConfig'; + +async function run() { + const agent = new https.Agent({ rejectUnauthorized: false }); + for (const lake of lakesConfig) { + const [internalId, oid] = lake.id.split('|'); + const URL = `https://www.pvl.cz/portal/nadrze/cz/pc/Mereni.aspx?oid=${oid}&id=${internalId}`; + try { + const res = await axios.get(URL, { httpsAgent: agent, headers: { 'User-Agent': 'Mozilla/5.0' } }); + const $ = cheerio.load(res.data); + let temp = null; + let precip = null; + $('table').each((i, tbl) => { + const text = $(tbl).text(); + if (text.includes('Aktuální hodnoty')) { + const tempMatch = text.match(/Teplota vzduchu \[°C\]\s*([\d,]+)/); + if (tempMatch) temp = tempMatch[1]; + const precipMatch = text.match(/Srážky \(24h\) \[mm\]\s*([\d,]+)/); + if (precipMatch) precip = precipMatch[1]; + } + }); + console.log(`[${internalId}] Temp: ${temp}, Precip: ${precip}`); + } catch (e) { + console.error(e.message); + } + } +} +run(); diff --git a/scratch_openmeteo.ts b/scratch_openmeteo.ts new file mode 100644 index 0000000..ceaacf2 --- /dev/null +++ b/scratch_openmeteo.ts @@ -0,0 +1,19 @@ +import axios from 'axios'; +import { lakesConfig } from './scripts/lakesConfig'; + +async function testOpenMeteo() { + const lipno = lakesConfig.find(l => l.id.startsWith('VLL1')); + if (!lipno) return; + const lat = lipno.coords[0]; + const lon = lipno.coords[1]; + const url = `https://api.open-meteo.com/v1/forecast?latitude=${lat}&longitude=${lon}¤t=temperature_2m,precipitation`; + console.log('Fetching from:', url); + try { + const response = await axios.get(url); + console.log(response.data.current); + } catch (e) { + console.error(e.message); + } +} + +testOpenMeteo(); diff --git a/scratch_openmeteo_history.ts b/scratch_openmeteo_history.ts new file mode 100644 index 0000000..6f77f3a --- /dev/null +++ b/scratch_openmeteo_history.ts @@ -0,0 +1,21 @@ +import axios from 'axios'; +import { lakesConfig } from './scripts/lakesConfig'; + +async function testHistory() { + const lipno = lakesConfig.find(l => l.id.startsWith('VLL1')); + if (!lipno) return; + const url = `https://api.open-meteo.com/v1/forecast?latitude=${lipno.coords[0]}&longitude=${lipno.coords[1]}&past_days=7&hourly=temperature_2m,precipitation&timezone=GMT`; + console.log('Fetching from:', url); + try { + const res = await axios.get(url); + const hourly = res.data.hourly; + console.log(`Received ${hourly.time.length} hourly records.`); + console.log('Sample record at index 100:'); + console.log('Time:', hourly.time[100]); + console.log('Temp:', hourly.temperature_2m[100]); + } catch (e) { + console.error(e.message); + } +} + +testHistory(); diff --git a/scripts/backfillWeather.ts b/scripts/backfillWeather.ts new file mode 100644 index 0000000..778a697 --- /dev/null +++ b/scripts/backfillWeather.ts @@ -0,0 +1,76 @@ +import fs from 'fs'; +import path from 'path'; +import axios from 'axios'; +import { lakesConfig } from './lakesConfig'; + +const DATA_DIR = path.resolve(process.cwd(), 'public/data'); + +async function backfill() { + console.log('Starting weather backfill for past 7 days...'); + + for (const lake of lakesConfig) { + const internalId = lake.id.split('|')[0]; + const filePath = path.join(DATA_DIR, `${internalId}.json`); + + if (!fs.existsSync(filePath)) { + console.log(`Skipping ${internalId}, no data file.`); + continue; + } + + if (!lake.coords) { + console.log(`Skipping ${internalId}, no coordinates.`); + continue; + } + + try { + const lat = lake.coords[0]; + const lon = lake.coords[1]; + const url = `https://api.open-meteo.com/v1/forecast?latitude=${lat}&longitude=${lon}&past_days=7&hourly=temperature_2m,precipitation&timezone=GMT`; + + const res = await axios.get(url, { timeout: 10000 }); + const hourly = res.data.hourly; + + // Build lookup map for O(1) matching: '2026-06-02T04:00' -> { temp, precip } + const weatherMap = new Map(); + for (let i = 0; i < hourly.time.length; i++) { + weatherMap.set(hourly.time[i], { + temperature: hourly.temperature_2m[i], + precipitation: hourly.precipitation[i] + }); + } + + const data = JSON.parse(fs.readFileSync(filePath, 'utf-8')); + let updatedCount = 0; + + for (const record of data) { + // record.timestamp is like "2026-06-02T04:00:00.000Z" + // Open-Meteo time is like "2026-06-02T04:00" + const hourKey = record.timestamp.substring(0, 16); // Extract up to minutes + + if (weatherMap.has(hourKey)) { + const w = weatherMap.get(hourKey); + if (w.temperature !== null && w.temperature !== undefined) { + record.temperature = w.temperature; + updatedCount++; + } + if (w.precipitation !== null && w.precipitation !== undefined) { + record.precipitation = w.precipitation; + } + } + } + + fs.writeFileSync(filePath, JSON.stringify(data, null, 2)); + console.log(`[${internalId}] Backfilled ${updatedCount} records with historical Open-Meteo data.`); + + // small delay to prevent rate limit + await new Promise(r => setTimeout(r, 200)); + + } catch (e: any) { + console.error(`Error processing ${internalId}:`, e.message); + } + } + + console.log('Backfill complete!'); +} + +backfill(); diff --git a/scripts/scrapeLakes.ts b/scripts/scrapeLakes.ts index a252a61..2820f77 100644 --- a/scripts/scrapeLakes.ts +++ b/scripts/scrapeLakes.ts @@ -112,11 +112,27 @@ async function scrapeLake(lakeId: string, oid: string, internalId: string) { } if (records.length > 0) { - // Apply current values to the latest record records[0].inflow = currentInflow; records[0].volume = currentVolume; - if (currentTemp !== null) records[0].temperature = currentTemp; - if (currentPrecip !== null) records[0].precipitation = currentPrecip; + + // Override weather from PVL completely using Open-Meteo + const config = lakesConfig.find(l => l.id.split('|')[0] === internalId); + if (config && config.coords) { + try { + const lat = config.coords[0]; + const lon = config.coords[1]; + const url = `https://api.open-meteo.com/v1/forecast?latitude=${lat}&longitude=${lon}¤t=temperature_2m,precipitation`; + const weatherRes = await axios.get(url, { timeout: 5000 }); + if (weatherRes.data && weatherRes.data.current) { + records[0].temperature = weatherRes.data.current.temperature_2m; + records[0].precipitation = weatherRes.data.current.precipitation; + } + // Small delay to prevent API rate limits + await new Promise(resolve => setTimeout(resolve, 200)); + } catch (err: any) { + console.error(`Failed to fetch weather for ${internalId}:`, err.message); + } + } } let existingData: DataRecord[] = []; diff --git a/src/App.tsx b/src/App.tsx index c2ee16c..8fc6179 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,5 @@ import { useState, useEffect } from 'react'; +import { Routes, Route, useParams, useLocation, useNavigate, Navigate } from 'react-router-dom'; import LakeDetail from './components/LakeDetail'; import LakesOverview from './components/LakesOverview'; import LakeMap from './components/LakeMap'; @@ -6,14 +7,23 @@ import Sidebar from './components/Sidebar'; import Topbar from './components/Topbar'; import SettingsModal from './components/SettingsModal'; import { type Language } from './translations'; +import { lakesConfig } from '../scripts/lakesConfig'; +import { slugify } from './utils/slugify'; import './App.css'; +const LakeDetailWrapper = ({ language }: { language: Language }) => { + const { slug } = useParams(); + const lake = lakesConfig.find(l => slugify(l.text) === slug); + + if (!lake) return ; + + return ; +}; + function App() { const [language, setLanguage] = useState('en'); const [theme, setTheme] = useState<'dark' | 'light'>('dark'); const [isSettingsOpen, setIsSettingsOpen] = useState(false); - const [activeView, setActiveView] = useState<'overview' | 'detail' | 'map'>('overview'); - const [activeLakeId, setActiveLakeId] = useState(null); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); useEffect(() => { @@ -22,19 +32,13 @@ function App() { } else { document.body.classList.remove('light-mode'); } + + // Clean up empty hash from URL (e.g. if the user clicked an empty anchor) + if (window.location.href.endsWith('#')) { + window.history.replaceState(null, '', window.location.href.slice(0, -1)); + } }, [theme]); - const handleSelectLake = (id: string) => { - setActiveLakeId(id); - setActiveView('detail'); - setIsMobileMenuOpen(false); - }; - - const handleNavigate = (view: 'overview' | 'detail' | 'map') => { - setActiveView(view); - setIsMobileMenuOpen(false); - }; - return (
{/* Mobile overlay */} @@ -48,17 +52,17 @@ function App() { setIsSettingsOpen(true)} - activeView={activeView} - onNavigate={handleNavigate} isMobileMenuOpen={isMobileMenuOpen} onCloseMobileMenu={() => setIsMobileMenuOpen(false)} />
setIsMobileMenuOpen(!isMobileMenuOpen)} /> - {activeView === 'overview' && } - {activeView === 'detail' && } - {activeView === 'map' && } + + } /> + } /> + } /> +
{isSettingsOpen && ( diff --git a/src/components/KpiCards.tsx b/src/components/KpiCards.tsx index 88293a2..dfd8632 100644 --- a/src/components/KpiCards.tsx +++ b/src/components/KpiCards.tsx @@ -4,9 +4,11 @@ import { useState, useEffect } from 'react'; interface KpiData { level: number; + levelDiff24h?: number; + levelDiff7d?: number; + levelDiff30d?: number; inflow: number; outflow: number; - outflow: number; volume: number; fullness: number; storageDiff?: number; @@ -42,8 +44,16 @@ const KpiCards = ({ data, language, lakeName = 'Lipno 1' }: Props) => {
{data.level.toFixed(2)} m n. m.
-
- (+0.02 m / 24h) +
+
= 0 ? 'var(--color-green)' : 'var(--color-red)' }}> + ({(data.levelDiff24h ?? 0) > 0 ? '+' : ''}{((data.levelDiff24h ?? 0) * 100).toFixed(1)} cm / 24h) +
+
= 0 ? 'var(--color-green)' : 'var(--color-red)' }}> + ({(data.levelDiff7d ?? 0) > 0 ? '+' : ''}{((data.levelDiff7d ?? 0) * 100).toFixed(1)} cm / 7d) +
+
= 0 ? 'var(--color-green)' : 'var(--color-red)' }}> + ({(data.levelDiff30d ?? 0) > 0 ? '+' : ''}{((data.levelDiff30d ?? 0) * 100).toFixed(1)} cm / 30d) +
{/* Decorative Circle for Level */} diff --git a/src/components/LakeDetail.tsx b/src/components/LakeDetail.tsx index 4c205df..3e00328 100644 --- a/src/components/LakeDetail.tsx +++ b/src/components/LakeDetail.tsx @@ -42,7 +42,7 @@ const CustomTooltip = ({ active, payload, label, language, isWeather }: any) =>

{label}

{[...payload].sort((a: any, b: any) => { - const order = ['level', 'inflow', 'outflow']; + const order = ['level', 'inflow', 'outflow', 'temperature', 'precipitation']; const indexA = order.indexOf(a.dataKey); const indexB = order.indexOf(b.dataKey); return (indexA === -1 ? 99 : indexA) - (indexB === -1 ? 99 : indexB); @@ -53,6 +53,8 @@ const CustomTooltip = ({ active, payload, label, language, isWeather }: any) => if (entry.dataKey === 'level') { labelStr = dict.level; unit = 'm n. m.'; color = 'var(--color-cyan)'; } else if (entry.dataKey === 'outflow') { labelStr = dict.outflow; unit = 'm³/s'; color = 'var(--color-orange)'; } else if (entry.dataKey === 'inflow') { labelStr = dict.inflow; unit = 'm³/s'; color = '#8b5cf6'; } + else if (entry.dataKey === 'temperature') { labelStr = language === 'cs' ? 'Teplota' : 'Temperature'; unit = '°C'; color = 'var(--color-red)'; } + else if (entry.dataKey === 'precipitation') { labelStr = language === 'cs' ? 'Srážky' : 'Precipitation'; unit = 'mm'; color = 'var(--color-cyan)'; } if (!labelStr || entry.value === null || entry.value === undefined) return null; @@ -157,8 +159,51 @@ const LakeDetail = ({ language, lakeId }: Props) => { const animate = chartData.length < 150; + // Find record from 24h, 7d, 30d ago + const nowMs = new Date(latestData.timestamp).getTime(); + const targetMs24h = nowMs - 24 * 60 * 60 * 1000; + const targetMs7d = nowMs - 7 * 24 * 60 * 60 * 1000; + const targetMs30d = nowMs - 30 * 24 * 60 * 60 * 1000; + + let level24hAgo = latestData.level; + let level7dAgo = latestData.level; + let level30dAgo = latestData.level; + + let minDiff24h = Infinity; + let minDiff7d = Infinity; + let minDiff30d = Infinity; + + for (const d of data) { + const t = new Date(d.timestamp).getTime(); + + const diff24h = Math.abs(t - targetMs24h); + if (diff24h < minDiff24h) { + minDiff24h = diff24h; + level24hAgo = d.level; + } + + const diff7d = Math.abs(t - targetMs7d); + if (diff7d < minDiff7d) { + minDiff7d = diff7d; + level7dAgo = d.level; + } + + const diff30d = Math.abs(t - targetMs30d); + if (diff30d < minDiff30d) { + minDiff30d = diff30d; + level30dAgo = d.level; + } + } + + const levelDiff24h = latestData.level - level24hAgo; + const levelDiff7d = latestData.level - level7dAgo; + const levelDiff30d = latestData.level - level30dAgo; + const kpiData = { level: latestData.level, + levelDiff24h, + levelDiff7d, + levelDiff30d, inflow: lastValidFlowData.inflow, outflow: lastValidFlowData.outflow, volume: lakeInfo?.volume || 0, @@ -219,29 +264,14 @@ const LakeDetail = ({ language, lakeId }: Props) => {
{dict.inflow}
- {/* Smoothed Toggle Control */} -
- {dict.view} -
- {dict.raw} -
setIsSmoothed(!isSmoothed)} - >
- {dict.smoothed} -
-
-
- - {/* WEATHER CHART SECTION */} -
-
-

Počasí (Teplota a Srážky)

+ {/* WEATHER CHART SECTION */} +
+

{language === 'cs' ? 'Počasí (Teplota a Srážky)' : 'Weather (Temperature & Precipitation)'}

-
+
- + v.toFixed(1)} /> @@ -256,8 +286,21 @@ const LakeDetail = ({ language, lakeId }: Props) => {
-
Teplota vzduchu [°C]
-
Srážky (24h) [mm]
+
{language === 'cs' ? 'Teplota vzduchu' : 'Temperature'} [°C]
+
{language === 'cs' ? 'Srážky' : 'Precipitation'} [mm]
+
+ + {/* Smoothed Toggle Control */} +
+ {dict.view} +
+ {dict.raw} +
setIsSmoothed(!isSmoothed)} + >
+ {dict.smoothed} +
diff --git a/src/components/LakeMap.tsx b/src/components/LakeMap.tsx index 2bcd99d..a584f12 100644 --- a/src/components/LakeMap.tsx +++ b/src/components/LakeMap.tsx @@ -3,7 +3,9 @@ import { MapContainer, TileLayer, Marker, Popup } from 'react-leaflet'; import L from 'leaflet'; import 'leaflet/dist/leaflet.css'; import { FiX, FiSearch, FiDroplet } from 'react-icons/fi'; -import { type Language } from '../translations'; +import { type Language, t } from '../translations'; +import { slugify } from '../utils/slugify'; +import { useNavigate } from 'react-router-dom'; interface LakeData { id: string; @@ -21,7 +23,6 @@ interface LakeData { interface Props { language: Language; - onSelectLake: (id: string) => void; } // Create custom icon @@ -39,8 +40,9 @@ const createCustomIcon = () => { }); }; -const LakeMap = ({ language, onSelectLake }: Props) => { +const LakeMap = ({ language }: Props) => { const [lakes, setLakes] = useState([]); + const navigate = useNavigate(); const [searchTerm, setSearchTerm] = useState(''); const [isPanelVisible, setIsPanelVisible] = useState(true); @@ -77,7 +79,7 @@ const LakeMap = ({ language, onSelectLake }: Props) => { position={[lake.lat, lake.lng]} icon={customIcon} eventHandlers={{ - click: () => onSelectLake(lake.id) + click: () => navigate(`/${slugify(lake.name)}`) }} > @@ -114,7 +116,7 @@ const LakeMap = ({ language, onSelectLake }: Props) => {
{filteredLakes.map((lake, index) => ( -
onSelectLake(lake.id)}> +
navigate(`/${slugify(lake.name)}`)}>
{index + 1}. Jezero {lake.name}
diff --git a/src/components/LakesOverview.tsx b/src/components/LakesOverview.tsx index ff589b4..1b2532b 100644 --- a/src/components/LakesOverview.tsx +++ b/src/components/LakesOverview.tsx @@ -1,8 +1,9 @@ import { useState, useEffect } from 'react'; import { FiTrendingUp, FiTrendingDown } from 'react-icons/fi'; import { type Language, t } from '../translations'; -import Topbar from './Topbar'; import { AreaChart, Area, ResponsiveContainer } from 'recharts'; +import { useNavigate } from 'react-router-dom'; +import { slugify } from '../utils/slugify'; interface Lake { id: string; @@ -19,7 +20,6 @@ interface Lake { interface Props { language: Language; - onSelectLake: (id: string) => void; } const CircularProgress = ({ value, size = 60, strokeWidth = 6 }: { value: number, size?: number, strokeWidth?: number }) => { @@ -57,11 +57,16 @@ const CircularProgress = ({ value, size = 60, strokeWidth = 6 }: { value: number ); }; -const PriorityCard = ({ lake, onSelectLake }: { lake: Lake, onSelectLake: (id: string) => void }) => { +const LakeCard = ({ lake, language }: { lake: Lake, language: Language }) => { + const navigate = useNavigate(); const chartData = lake.sparkline.map((val, i) => ({ name: i, value: val })); return ( -
+
navigate(`/${slugify(lake.name)}`)} + style={{ cursor: 'pointer', flex: 1, padding: '1.5rem', display: 'flex', flexDirection: 'column', gap: '1.5rem', position: 'relative' }} + >

{lake.name} {lake.river ? `- ${lake.river}` : ''}

@@ -73,7 +78,6 @@ const PriorityCard = ({ lake, onSelectLake }: { lake: Lake, onSelectLake: (id: s
Water level
{lake.level} m n.m.
-
Depth
@@ -105,72 +109,18 @@ const PriorityCard = ({ lake, onSelectLake }: { lake: Lake, onSelectLake: (id: s
Inflow {lake.inflow} m³/s - / Outflow {lake.outflow} m³/s
- Inflow {lake.inflow} m³/s - / Outflow {lake.outflow} m³/s + Outflow {lake.outflow} m³/s
- - -
- ); -}; - -const SmallCard = ({ lake, onSelectLake }: { lake: Lake, onSelectLake: (id: string) => void }) => { - const chartData = lake.sparkline.map((val, i) => ({ name: i, value: val })); - - return ( -
onSelectLake(lake.id)} - style={{ padding: '1rem', display: 'flex', flexDirection: 'column', gap: '0.5rem', cursor: 'pointer', transition: 'transform 0.2s', minHeight: '120px' }} - onMouseOver={e => e.currentTarget.style.transform = 'translateY(-2px)'} - onMouseOut={e => e.currentTarget.style.transform = 'translateY(0)'} - > -
-
-
- {lake.name} -
-
{lake.level}
-
- -
- -
- - - - - - - - - - - -
); }; -const LakesOverview = ({ language, onSelectLake }: Props) => { +const LakesOverview = ({ language }: Props) => { const [lakes, setLakes] = useState([]); const [sortBy, setSortBy] = useState<'name' | 'level' | 'capacity' | 'inflow'>('name'); @@ -184,7 +134,6 @@ const LakesOverview = ({ language, onSelectLake }: Props) => { const priorityLakes = lakes.filter(l => l.priority); const otherLakes = lakes.filter(l => !l.priority); - // Sorting otherLakes.sort((a, b) => { if (sortBy === 'name') return a.name.localeCompare(b.name); if (sortBy === 'level') return b.level - a.level; @@ -223,7 +172,7 @@ const LakesOverview = ({ language, onSelectLake }: Props) => { gridTemplateColumns: 'repeat(auto-fit, minmax(320px, 1fr))', gap: '1.5rem' }}> - {priorityLakes.map(lake => )} + {priorityLakes.map(lake => )}
)} @@ -235,7 +184,7 @@ const LakesOverview = ({ language, onSelectLake }: Props) => { gridTemplateColumns: 'repeat(auto-fill, minmax(200px, 1fr))', gap: '1rem' }}> - {otherLakes.map(lake => )} + {otherLakes.map(lake => )}
diff --git a/src/components/SettingsModal.tsx b/src/components/SettingsModal.tsx index 0ebfd9f..6176a5b 100644 --- a/src/components/SettingsModal.tsx +++ b/src/components/SettingsModal.tsx @@ -117,7 +117,7 @@ const SettingsModal = ({ language, setLanguage, theme, setTheme, onClose }: Prop {/* Buy me a coffee */}
void; - activeView: 'overview' | 'detail' | 'map'; - onNavigate: (view: 'overview' | 'detail' | 'map') => void; isMobileMenuOpen?: boolean; onCloseMobileMenu?: () => void; } -const Sidebar = ({ language, onOpenSettings, activeView, onNavigate, isMobileMenuOpen, onCloseMobileMenu }: Props) => { +const Sidebar = ({ language, onOpenSettings, isMobileMenuOpen, onCloseMobileMenu }: Props) => { const [isCollapsed, setIsCollapsed] = useState(false); + const navigate = useNavigate(); + const location = useLocation(); const dict = t[language].sidebar; + const isOverview = location.pathname === '/'; + const isMap = location.pathname === '/map'; + const isDetail = !isOverview && !isMap; + + const handleNavigate = (path: string) => { + navigate(path); + if (onCloseMobileMenu) onCloseMobileMenu(); + }; + return (
@@ -39,15 +49,15 @@ const Sidebar = ({ language, onOpenSettings, activeView, onNavigate, isMobileMen
-
onNavigate('detail')}> +
handleNavigate('/lipno-1')}> {dict.favorites}
-
onNavigate('overview')}> +
handleNavigate('/')}> {dict.lakes}
-
onNavigate('map')}> +
handleNavigate('/map')}> {dict.map}
diff --git a/src/main.tsx b/src/main.tsx index bef5202..ade9d64 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,10 +1,13 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' +import { BrowserRouter } from 'react-router-dom' import './index.css' import App from './App.tsx' createRoot(document.getElementById('root')!).render( - + + + , ) diff --git a/src/utils/slugify.ts b/src/utils/slugify.ts new file mode 100644 index 0000000..68e6c9a --- /dev/null +++ b/src/utils/slugify.ts @@ -0,0 +1,9 @@ +export const slugify = (text: string) => { + return text + .split(' - ')[0] // "VD Lipno 1 - Vltava" -> "VD Lipno 1" + .replace(/^VD\s+/i, '') // Remove "VD " prefix -> "Lipno 1" + .normalize('NFD') // Decompose diacritics + .replace(/[\u0300-\u036f]/g, '') // Remove diacritics + .toLowerCase() + .replace(/\s+/g, '-'); // Replace spaces with dashes -> "lipno-1" +};