From b6e2474a1c23339a95b557b92d383ef2daa05767 Mon Sep 17 00:00:00 2001 From: znetsixe <73483679+znetsixe@users.noreply.github.com> Date: Tue, 20 Jan 2026 11:42:13 +0100 Subject: [PATCH] Synchronizing workflow monster --- config/buildArray.js | 0 config/exampleArray.js | 870 -- dependencies/monster/SpeficicClass.js | 749 -- dependencies/monster/modelLoader.js | 164 - dependencies/monster/monster_class_oud.js | 746 -- monster oud.js | 182 - src/specificClass.js | 717 +- .../example_flow/monsterFlow.json | 0 test/monster.test.js | 121 - .../seed_data}/monsternametijden.csv | 0 test/seed_data/raindataFormat.json | 9331 +++++++++++++++++ 11 files changed, 10047 insertions(+), 2833 deletions(-) delete mode 100644 config/buildArray.js delete mode 100644 config/exampleArray.js delete mode 100644 dependencies/monster/SpeficicClass.js delete mode 100644 dependencies/monster/modelLoader.js delete mode 100644 dependencies/monster/monster_class_oud.js delete mode 100644 monster oud.js rename monsterFlow.json => test/example_flow/monsterFlow.json (100%) rename {config => test/seed_data}/monsternametijden.csv (100%) create mode 100644 test/seed_data/raindataFormat.json diff --git a/config/buildArray.js b/config/buildArray.js deleted file mode 100644 index e69de29..0000000 diff --git a/config/exampleArray.js b/config/exampleArray.js deleted file mode 100644 index bc319b0..0000000 --- a/config/exampleArray.js +++ /dev/null @@ -1,870 +0,0 @@ -const inputExample = -//tensor 1 -[ - // 1 prediction per hour - [ - // 24 window size - [ - //166 features of which the first feature is the hour of the day all the other values are precipation values - //These values are meaningless they need to be translated first into the correct format - //How do the transformations work? - -0.65066296, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - -0.50620914, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - -0.36175531, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - -0.21730149, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - -0.07284767, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 0.07160615, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 0.21605998, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 0.3605138, -0.1888816, -0.19213369, -0.19328518, -0.18170043, -0.18223418, - -0.18370405, -0.18517574, -0.18551063, -0.18683789, -0.18886069, - -0.18927826, -0.18696358, -0.17307445, -0.17702805, -0.17851964, - -0.17654074, -0.17762018, -0.1796983, -0.18136519, -0.18139249, - -0.18250296, -0.18198996, -0.18138494, -0.18618596, -0.1889744, - -0.18739212, -0.17126027, -0.17405689, -0.1762726, -0.18029169, - -0.1885969, -0.18849469, -0.19095787, -0.18038477, -0.18214581, - -0.18189491, -0.18189534, -0.18381298, -0.18393834, -0.18939162, - -0.17176759, -0.17026471, -0.17394295, -0.17903634, -0.19020126, - -0.18912097, -0.18823564, -0.17929266, -0.18775292, -0.18869072, - -0.18756475, -0.18702924, -0.18671379, -0.17348625, -0.18026013, - -0.1814532, -0.18132141, -0.18308498, -0.18331088, -0.18624909, - -0.18811531, -0.19032778, -0.18967649, -0.18800643, -0.18892376, - -0.18933033, -0.18079819, -0.18595871, -0.18796106, -0.18773453, - -0.19043156, -0.1891853, -0.18971276, -0.18899542, -0.18666336, - -0.1879662, -0.18708836, -0.1893528, -0.18959058, -0.18611566, - -0.19272971, -0.19552121, -0.19478238, -0.19681337, -0.19944471, - -0.19903339, -0.19263975, -0.18716142, -0.1877408, -0.18708849, - -0.18419774, -0.18278112, -0.18275773, -0.19600511, -0.19538267, - -0.19162537, -0.192591, -0.19787251, -0.19998388, -0.19278597, - -0.18786678, -0.18582166, -0.18569262, -0.18191596, -0.18098748, - -0.18121272, -0.19626444, -0.19792468, -0.19207762, -0.18952964, - -0.19189596, -0.19348373, -0.19015691, -0.1844006, -0.18490676, - -0.18425256, -0.18282198, -0.18047893, -0.17963261, -0.19567896, - -0.19192091, -0.18874464, -0.18849974, -0.1898807, -0.18982206, - -0.1882855, -0.19054112, -0.18959366, -0.18676196, -0.18424004, - -0.18355161, -0.18516647, -0.19370953, -0.19216638, -0.19084519, - -0.18945748, -0.1898998, -0.18970484, -0.18697297, -0.1889949, - -0.19083625, -0.19014625, -0.19090196, -0.19471276, -0.19409975, - -0.1935458, -0.19110129, -0.18852621, -0.1896783, -0.19012038, - -0.18907574, -0.19738469, -0.19826875, -0.19619434, -0.19351482, - -0.19247084, -0.19158516, -0.18882761, -0.19663896, -0.19387078, - -0.19137178, -0.19101838, -0.18902259, -0.18740881, -0.18577042, - ], - [ - 0.50496762, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 0.64942144, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 0.79387527, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 0.93832909, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, -0.144808, - -0.1452933, -0.14522589, -0.14659725, -0.18959058, -0.18611566, - -0.19272971, -0.19552121, -0.19478238, -0.19681337, -0.19944471, - -0.19903339, -0.19263975, -0.18716142, -0.1877408, -0.18708849, - -0.18419774, -0.18278112, -0.18275773, -0.19600511, -0.19538267, - -0.19162537, -0.192591, -0.19787251, -0.19998388, -0.19278597, - -0.18786678, -0.18582166, -0.18569262, -0.18191596, -0.18098748, - -0.18121272, -0.19626444, -0.19792468, -0.19207762, -0.18952964, - -0.19189596, -0.19348373, -0.19015691, -0.1844006, -0.18490676, - -0.18425256, -0.18282198, -0.18047893, -0.17963261, -0.19567896, - -0.19192091, -0.18874464, -0.18849974, -0.1898807, -0.18982206, - -0.1882855, -0.19054112, -0.18959366, -0.18676196, -0.18424004, - -0.18355161, -0.18516647, -0.19370953, -0.19216638, -0.19084519, - -0.18945748, -0.1898998, -0.18970484, -0.18697297, -0.1889949, - -0.19083625, -0.19014625, -0.19090196, -0.19471276, -0.19409975, - -0.1935458, -0.19110129, -0.18852621, -0.1896783, -0.19012038, - -0.18907574, -0.19738469, -0.19826875, -0.19619434, -0.19351482, - -0.19247084, -0.19158516, -0.18882761, -0.19663896, -0.19387078, - -0.19137178, -0.19101838, -0.18902259, -0.18740881, -0.18577042, - ], - [ - 1.08278291, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 1.22723673, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.15728894, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.16854493, -0.16853073, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.16891474, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 1.37169056, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 1.51614438, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - 1.6605982, -0.1888816, -0.19213369, -0.19328518, -0.18170043, -0.18223418, - -0.18370405, -0.18517574, -0.18551063, -0.18683789, -0.18886069, - -0.18927826, -0.18696358, -0.17307445, -0.17702805, -0.17851964, - -0.17654074, -0.17762018, -0.1796983, -0.18136519, -0.18139249, - -0.18250296, -0.18198996, -0.18138494, -0.18618596, -0.1889744, - -0.18739212, -0.17126027, -0.17405689, -0.1762726, -0.18029169, - -0.1885969, -0.18849469, -0.19095787, -0.18038477, -0.18214581, - -0.18189491, -0.18189534, -0.18381298, -0.18393834, -0.18939162, - -0.17176759, -0.17026471, -0.17394295, -0.17903634, -0.19020126, - -0.18912097, -0.18823564, -0.17929266, -0.18775292, -0.18869072, - -0.18756475, -0.18702924, -0.18671379, -0.17348625, -0.18026013, - -0.1814532, -0.18132141, -0.18308498, -0.18331088, -0.18624909, - -0.18811531, -0.19032778, -0.18967649, -0.18800643, -0.18892376, - -0.18933033, -0.18079819, -0.18595871, -0.18796106, -0.18773453, - -0.19043156, -0.1891853, -0.18971276, -0.18899542, -0.18666336, - -0.1879662, -0.18708836, -0.1893528, -0.18959058, -0.18611566, - -0.19272971, -0.19552121, -0.19478238, -0.19681337, -0.19944471, - -0.19903339, -0.19263975, -0.18716142, -0.1877408, -0.18708849, - -0.18419774, -0.18278112, -0.18275773, -0.19600511, -0.19538267, - -0.19162537, -0.192591, -0.19787251, -0.19998388, -0.19278597, - -0.18786678, -0.18582166, -0.18569262, -0.18191596, -0.18098748, - -0.18121272, -0.19626444, -0.19792468, -0.19207762, -0.18952964, - -0.19189596, -0.19348373, -0.19015691, -0.1844006, -0.18490676, - -0.18425256, -0.18282198, -0.18047893, -0.17963261, -0.19567896, - -0.19192091, -0.18874464, -0.18849974, -0.1898807, -0.18982206, - -0.1882855, -0.19054112, -0.18959366, -0.18676196, -0.18424004, - -0.18355161, -0.18516647, -0.19370953, -0.19216638, -0.19084519, - -0.18945748, -0.1898998, -0.18970484, -0.18697297, -0.1889949, - -0.19083625, -0.19014625, -0.19090196, -0.19471276, -0.19409975, - -0.1935458, -0.19110129, -0.18852621, -0.1896783, -0.19012038, - -0.18907574, -0.19738469, -0.19826875, -0.19619434, -0.19351482, - -0.19247084, -0.19158516, -0.18882761, -0.19663896, -0.19387078, - -0.19137178, -0.19101838, -0.18902259, -0.18740881, -0.18577042, - ], - [ - -1.66183972, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - -1.51738589, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - -1.37293207, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.15955445, -0.13803715, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.16164522, -0.14849295, -0.16853073, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.13901581, - -0.06342139, -0.18912097, -0.16787941, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.14169274, 0.01964936, -0.08233806, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.16748919, -0.0445072, 0.10122311, -0.08402621, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - 0.16237384, -0.00447424, -0.17137192, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, 0.12352589, -0.00387522, -0.15085347, - -0.18786678, -0.18582166, -0.18569262, -0.18191596, -0.18098748, - -0.18121272, -0.19626444, -0.19792468, -0.19207762, -0.18952964, - -0.06793555, -0.02713845, -0.12841841, -0.1844006, -0.18490676, - -0.18425256, -0.18282198, -0.18047893, -0.17963261, -0.19567896, - -0.19192091, -0.18874464, -0.18849974, -0.10893781, -0.14900896, - -0.1882855, -0.19054112, -0.18959366, -0.18676196, -0.18424004, - -0.18355161, -0.18516647, -0.19370953, -0.19216638, -0.19084519, - -0.18945748, -0.16930273, -0.16915384, -0.16665951, -0.1889949, - -0.19083625, -0.19014625, -0.19090196, -0.19471276, -0.19409975, - -0.1935458, -0.19110129, -0.18852621, -0.1896783, -0.19012038, - -0.18907574, -0.19738469, -0.19826875, -0.19619434, -0.19351482, - -0.19247084, -0.19158516, -0.18882761, -0.19663896, -0.19387078, - -0.19137178, -0.19101838, -0.18902259, -0.18740881, -0.18577042, - ], - [ - -1.22847825, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.15955445, -0.13803715, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.16854493, -0.14856677, -0.17007908, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.14870851, -0.14752318, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.16281155, -0.12272718, - -0.16566951, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.08546801, -0.08402621, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.07174405, 0.03876113, -0.12883628, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.09073971, 0.03970448, -0.08795472, - -0.16710221, -0.18582166, -0.18569262, -0.18191596, -0.18098748, - -0.18121272, -0.19626444, -0.19792468, -0.19207762, -0.18952964, - -0.15057582, -0.08951793, -0.10783891, -0.16435934, -0.18490676, - -0.18425256, -0.18282198, -0.18047893, -0.17963261, -0.19567896, - -0.19192091, -0.18874464, -0.18849974, -0.16964498, -0.12860241, - -0.16800538, -0.19054112, -0.18959366, -0.18676196, -0.18424004, - -0.18355161, -0.18516647, -0.19370953, -0.19216638, -0.19084519, - -0.18945748, -0.1898998, -0.16915384, -0.18697297, -0.1889949, - -0.19083625, -0.19014625, -0.19090196, -0.19471276, -0.19409975, - -0.1935458, -0.19110129, -0.18852621, -0.1896783, -0.19012038, - -0.18907574, -0.19738469, -0.19826875, -0.19619434, -0.19351482, - -0.19247084, -0.19158516, -0.18882761, -0.19663896, -0.19387078, - -0.19137178, -0.19101838, -0.18902259, -0.18740881, -0.18577042, - ], - [ - -1.08402443, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - -0.9395706, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - [ - -0.79511678, -0.1888816, -0.19213369, -0.19328518, -0.18170043, - -0.18223418, -0.18370405, -0.18517574, -0.18551063, -0.18683789, - -0.18886069, -0.18927826, -0.18696358, -0.17307445, -0.17702805, - -0.17851964, -0.17654074, -0.17762018, -0.1796983, -0.18136519, - -0.18139249, -0.18250296, -0.18198996, -0.18138494, -0.18618596, - -0.1889744, -0.18739212, -0.17126027, -0.17405689, -0.1762726, - -0.18029169, -0.1885969, -0.18849469, -0.19095787, -0.18038477, - -0.18214581, -0.18189491, -0.18189534, -0.18381298, -0.18393834, - -0.18939162, -0.17176759, -0.17026471, -0.17394295, -0.17903634, - -0.19020126, -0.18912097, -0.18823564, -0.17929266, -0.18775292, - -0.18869072, -0.18756475, -0.18702924, -0.18671379, -0.17348625, - -0.18026013, -0.1814532, -0.18132141, -0.18308498, -0.18331088, - -0.18624909, -0.18811531, -0.19032778, -0.18967649, -0.18800643, - -0.18892376, -0.18933033, -0.18079819, -0.18595871, -0.18796106, - -0.18773453, -0.19043156, -0.1891853, -0.18971276, -0.18899542, - -0.18666336, -0.1879662, -0.18708836, -0.1893528, -0.18959058, - -0.18611566, -0.19272971, -0.19552121, -0.19478238, -0.19681337, - -0.19944471, -0.19903339, -0.19263975, -0.18716142, -0.1877408, - -0.18708849, -0.18419774, -0.18278112, -0.18275773, -0.19600511, - -0.19538267, -0.19162537, -0.192591, -0.19787251, -0.19998388, - -0.19278597, -0.18786678, -0.18582166, -0.18569262, -0.18191596, - -0.18098748, -0.18121272, -0.19626444, -0.19792468, -0.19207762, - -0.18952964, -0.19189596, -0.19348373, -0.19015691, -0.1844006, - -0.18490676, -0.18425256, -0.18282198, -0.18047893, -0.17963261, - -0.19567896, -0.19192091, -0.18874464, -0.18849974, -0.1898807, - -0.18982206, -0.1882855, -0.19054112, -0.18959366, -0.18676196, - -0.18424004, -0.18355161, -0.18516647, -0.19370953, -0.19216638, - -0.19084519, -0.18945748, -0.1898998, -0.18970484, -0.18697297, - -0.1889949, -0.19083625, -0.19014625, -0.19090196, -0.19471276, - -0.19409975, -0.1935458, -0.19110129, -0.18852621, -0.1896783, - -0.19012038, -0.18907574, -0.19738469, -0.19826875, -0.19619434, - -0.19351482, -0.19247084, -0.19158516, -0.18882761, -0.19663896, - -0.19387078, -0.19137178, -0.19101838, -0.18902259, -0.18740881, - -0.18577042, - ], - ] -]; diff --git a/dependencies/monster/SpeficicClass.js b/dependencies/monster/SpeficicClass.js deleted file mode 100644 index cfc8b30..0000000 --- a/dependencies/monster/SpeficicClass.js +++ /dev/null @@ -1,749 +0,0 @@ -// add params for scaling in file -// add variables day of year and day of week -// add rain data for built-up areas only - -const EventEmitter = require('events'); -const {logger,configUtils,configManager, MeasurementContainer, predict, interpolation, childRegistrationUtils} = require('generalFunctions'); -const tf = require('@tensorflow/tfjs'); -const tfLoader = require('./modelLoader'); - -class Monster{ - /*------------------- Construct and set vars -------------------*/ - constructor(config={}) { - - //init - this.init = false; // keep track of init - - //basic setup - this.emitter = new EventEmitter(); // Own EventEmitter - - this.logger = new logger(config.general.logging.enabled,config.general.logging.logLevel, config.general.name); - this.configManager = new configManager(); - this.defaultConfig = this.configManager.getConfig('monster'); // Load default config for rotating machine ( use software type name ? ) - this.configUtils = new configUtils(this.defaultConfig); - - this.modelLoader = new tfLoader(this.logger); // ModelLoader - - // -------------------------------------- fetch dependencies -------------------------- - //this.math = require('mathjs'); - - this.model = null; // TensorFlow model placeholder - - //place holders for output data - this.output = {} ; // object to place all relevant outputs in and preform event change check on - this.child = {} ; // register childs - - //Specific object info - this.aquonSampleName = "112100" ; // aquon sample name to start automatic sampling on the basis of the document - this.monsternametijden = {} ; // json monsternametijden file? - this.rain_data = {} ; // precipitation data - this.aggregatedOutput = {} ; // object that does not contain momentary values but a combination of all kinds of data over a fixed period of time - this.sumRain = 0 ; // total sum of rain over time window + n hours and - n hours - this.avgRain = 0 ; // total divided by number of locations to get average over total time - this.daysPerYear = 0 ; // how many days remaining for this year - - // outputs - this.pulse = false; // output pulse to sampling machine - this.bucketVol = 0; // how full is the sample? - this.sumPuls = 0; // number of pulses so far - this.predFlow = 0; // predicted flow over sampling time in hours, expressed in m3 - this.bucketWeight = 0; // actual weight of bucket - - //inputs - this.q = 0; // influent flow in m3/h - this.i_start = false // when true, the program gets kicked off calculating what it needs to take samples - this.sampling_time = config.constraints.samplingtime; // time expressed in hours over which the sampling will run (currently 24) - this.emptyWeightBucket = config.asset.emptyWeightBucket; // empty weight of the bucket - - // internal vars - this.temp_pulse = 0; // each interval pulses send out 1 and then reset - this.volume_pulse = 0.05; // define volume pulse expressed in L - this.minVolume = config.constraints.minVolume;// define min volume in a sampling cabinet before a sample is declared valid expressed in L - this.maxVolume = 0; // calculated maxvolume depending on own weight - this.maxWeight = config.constraints.maxWeight;// define max volume in a sampling cabinet before a sample is declared invalid expressed in L - this.cap_volume = 55; // abs max capacity of bucket (volume) in liters - this.targetVolume = 0; // volume of sampling cabinet that model aims for - this.minPuls = 0; // calculates the min pulses depending on min_vol and max_vol - this.maxPuls = 0; // calculates the max pulses depending on min_vol and max_vol - this.absMaxPuls = 0; // capacity of sampling cabinet (number of pulses) - this.targetPuls = 0; // keeps track of the desired amount of pulses (+- 50% tolerance), based on aimed volume - this.m3PerPuls = 0; // each pulse is equal to a number of m3 - this.predM3PerSec = 0; // predicted flow in m3 per second - this.m3PerTick = 0; // actual measured flow in m3 per second - this.m3Total = 0; // total measured flow over sampling time in m3 - this.running = false; // define if sampling is running or not - - this.qLineRaw = {}; // see example - this.minSeen = {}; // keeps track of minimum ever seen so far in a time period for each hour (over totals not every value) - this.maxSeen = {}; // keeps track of maximum ever seen so far in a time period for each hour (over totals not every value) - this.qLineRefined = {}; // this should be the ( quantiles? ) classified in the datasets - this.calcTimeShiftDry = 0; // What is the delay after a dry period of minimum n hours - this.calcTimeShiftWet = 0; - this.calcCapacitySewer = 0; - // how much rain goes to the sewage ? -> calculate surface area of hardend / sewage. - - this.minDryHours = 0; // what is the minimum of dry hours before we can calculate timeshift? spot this with moving average? - this.minWetHours = 0; // how long does it take to remove all the rain? - this.resolution = 0; // Number of chunks in qLineRaw / define how big the window is to sum all values ( for now we need to take 1 hour or bigger resolutions but in the future smaller is better to see more accurate correlations) - this.tmpTotQ = 0; // keep track of sum of q within resolution window - - //old prediction factor - this.predFactor = 0.7; // define factor as multiplier for prediction - - //track program start and stop - this.start_time = Date.now(); // default start time - this.stop_time = Date.now(); // default stop time - this.flowTime = 0; //keep track in detail how much time between 2 ticks for more accurate flow measurement - this.timePassed = 0; // time in seconds - this.timeLeft = 0; // time in seconds - this.currHour = new Date().getHours(); // on init define in which hour we are 0 - 23 - - - this.init = true; // end of constructor - - //set boundries and targets after init based on above settings - this.set_boundries_and_targets(); - - - } - - _syncOutput() { - this.output = this.output || {}; - this.output.pulse = this.pulse; - this.output.running = this.running; - this.output.bucketVol = this.bucketVol; - this.output.bucketWeight = this.bucketWeight; - this.output.sumPuls = this.sumPuls; - this.output.predFlow = this.predFlow; - this.output.predM3PerSec = this.predM3PerSec; - this.output.timePassed = this.timePassed; - this.output.timeLeft = this.timeLeft; - this.output.m3Total = this.m3Total; - this.output.q = this.q; - this.output.maxVolume = this.maxVolume; - this.output.minVolume = this.minVolume; - this.output.nextDate = this.nextDate; - this.output.daysPerYear = this.daysPerYear; - } - - getOutput() { - this._syncOutput(); - return this.output; - } - - /*------------------- GETTER/SETTERS Dynamics -------------------*/ - set monsternametijden(value){ - - if(this.init){ - if(Object.keys(value).length > 0){ - - //check if push is in valid format and not null - if( - typeof value[0].SAMPLE_NAME !== 'undefined' - && - typeof value[0].DESCRIPTION !== 'undefined' - && - typeof value[0].SAMPLED_DATE !== 'undefined' - && - typeof value[0].START_DATE !== 'undefined' - && - typeof value[0].END_DATE !== 'undefined' - ){ - - //each time this changes we load the next date applicable for this function - this._monsternametijden = value; - - //fetch dates - this.regNextDate(value); - - } - else{ - // Monsternametijden object Wrong format contact AQUON - } - } - else{ - // Monsternametijden object Wrong format contact AQUON - } - } - } - - get monsternametijden(){ - return this._monsternametijden; - } - - set rain_data(value){ - - //retrieve precipitation expected during the coming day and precipitation of yesterday - this._rain_data = value; - - //only update after init and is not running. - if(this.init && !this.running){ - this.updatePredRain(value); - } - - } - - get rain_data(){ - return this._rain_data; - } - - set bucketVol(val){ - - //Put val in local var - this._bucketVol = val; - - //Place into output object - this.output.bucketVol = val; - - // update bucket weight - this.bucketWeight = val + this.emptyWeightBucket; - } - - get bucketVol(){ - return this._bucketVol; - } - - set minVolume(val){ - - //Protect against 0 - val == 0 ? val = 1 : val = val; - - this._minVolume = val; - - //Place into output object - this.output.minVolume = val; - } - - get minVolume(){ - return this._minVolume; - } - - set q(val){ - - //Put val in local var - this._q = val; - - //Place into output object - this.output.q = val; - - } - - get q(){ - return this._q; - } - - /*------------------- FUNCTIONS -------------------*/ - - set_boundries_and_targets(){ - - // define boundries for algorithm - this.maxVolume = this.maxWeight - this.emptyWeightBucket ; // substract bucket weight of max volume assuming they are both on a 1 to 1 ratio - this.minPuls = Math.round(this.minVolume / this.volume_pulse); // minimum pulses we want before we have a valid sample - this.maxPuls = Math.round(this.maxVolume / this.volume_pulse); // maximum pulses we can handle (otherwise sample is too heavy) - this.absMaxPuls = Math.round(this.cap_volume / this.volume_pulse); // number of pulses a sample can contain before overflowing - // define target values - this.targetVolume = this.minVolume * Math.sqrt(this.maxVolume / this.minVolume); - //old way - //this.targetVolume = Math.round( ( ( (this.maxVolume - this.minVolume) / 2 ) + this.minVolume ) * 100) / 100; // calculate middle between min and max - // correct target values - this.targetPuls = Math.round(this.targetVolume / this.volume_pulse) ; // define desired amount of pulses (in this case our prediction can deviate 50% up and 50% down without a problem) - } - - updateArchiveRain(val){ - - } - - updatePredRain(value){ - //make date objects to define relative time window - let now = new Date(Date.now()); - let past = new Date(Date.now()); - let future = new Date(Date.now()); - let totalRaw = {}; - let totalProb = {}; - let totalAvg = {}; - - //refine object with different values - let rain = {}; - rain.hourly = {}; // an object with timestamps and aggreated over all locations summed precipation in mm - rain.hourly.time = []; - rain.hourly.precipationRaw = []; - rain.hourly.precipationProb = []; - - let numberOfLocations = 0; - - //Make timestamp + 24 hours - future.setHours(now.getHours() + 24); - - //Make timestamp - 24hours - past.setHours(now.getHours() - 24); - - //go through all locations and sum up the average precipation of each location so we have summed precipation over every hour - Object.entries(value).forEach(([locationKey, location],locationindex) => { - - //number of locations - numberOfLocations++; - - // make an object to keep track of the dataset we load - this.aggregatedOutput[locationKey] = {}; - this.aggregatedOutput[locationKey].tag = {}; - this.aggregatedOutput[locationKey].tag.latitude = location.latitude; - this.aggregatedOutput[locationKey].tag.longitude = location.longitude; - this.aggregatedOutput[locationKey].precipationRaw = {}; - this.aggregatedOutput[locationKey].precipationProb = {}; - - - //loop through object for each location over all hourlys - Object.entries(location.hourly.time).forEach(([key, time], index) => { - - this.aggregatedOutput[locationKey].precipationRaw[key] = {}; - this.aggregatedOutput[locationKey].precipationProb[key] = {}; - - //convert string output to a date object - let checkdate = new Date(time); - - //convert date to milliseconds timestamps - let currTimestamp = checkdate.getTime(); - let probability = 100; //default probility unless otherwise defined - - if(typeof location.hourly.precipitation_probability !== 'undefined'){ - probability = location.hourly.precipitation_probability[key]; - - } - - if(probability > 0){ - probability /= 100; - } - - // only interested in dates before timeframe and after to make use of - // ( currTimestamp >= now && currTimestamp < future) || ( currTimestamp < now && currTimestamp > past ) - if( true ){ - - typeof totalRaw[currTimestamp] === 'undefined' ? totalRaw[currTimestamp] = 0 : null; - typeof totalProb[currTimestamp] === 'undefined' ? totalProb[currTimestamp] = 0 : null; - - //placed probability into the equation - totalRaw[currTimestamp] += location.hourly.precipitation[key] ; - totalProb[currTimestamp] += ( location.hourly.precipitation[key] * probability ) ; - - //keep track of all requested data - this.aggregatedOutput[locationKey].precipationRaw[key]["val"] = location.hourly.precipitation[key]; // raw data from open weather data - this.aggregatedOutput[locationKey].precipationRaw[key]["time"] = currTimestamp; - - this.aggregatedOutput[locationKey].precipationProb[key]["val"] = probability; // probability of open weather - this.aggregatedOutput[locationKey].precipationProb[key]["time"] = currTimestamp; - - } - - //remove dead info - if(Object.keys(this.aggregatedOutput[locationKey].precipationRaw[key]).length == 0 ){ - delete this.aggregatedOutput[locationKey].precipationRaw[key]; - }; - - if(Object.keys(this.aggregatedOutput[locationKey].precipationProb[key]).length == 0 ){ - delete this.aggregatedOutput[locationKey].precipationProb[key]; - }; - - }); - }); - - //total sum expected over time window (just for ref now not so important anymore) - this.sumRain = Object.values(totalProb).reduce((sum, value) => sum + value, 0); - this.avgRain = this.sumRain / numberOfLocations; - - //make average over prob - Object.entries(totalProb).forEach(([key, sum],index) => { - typeof totalAvg[key] === 'undefined' ? totalAvg[key] = 0 : null; - totalAvg[key] = sum / numberOfLocations; - }); - - //make new prediction - //this.get_model_prediction(); - return this.aggregatedOutput; - } - - // for getting the day of the year (0-365) - getDayOfYear(ts){ - const start = new Date(ts.getFullYear(), 0, 1); - const diff = ts - start; - const oneDay = 1000 * 60 * 60 * 24; - return Math.floor(diff / oneDay); -} - -// for 'zipping' data into the right shape for the model -zip(...arrays) { - return arrays[0].map((_, i) => arrays.map(arr => arr[i])); -} - -get_model_prediction(){ - // Offline-safe fallback: assume constant inflow `q` during `sampling_time`. - // `q` is in m3/h; `sampling_time` is in hours; result is total predicted volume in m3. - const samplingHours = Number(this.sampling_time) || 0; - const flowM3PerHour = Number(this.q) || 0; - const fallback = Math.max(0, flowM3PerHour * samplingHours); - - this.predFlow = fallback; - this._syncOutput(); - return this.predFlow; -} - -// Legacy/experimental model-based prediction (kept for reference; not used by default). -get_model_prediction_from_rain(){ - - // combine 24 hourly predictions to make one daily prediction (for the next 24 hours including the current hour) - let inputs = []; - for (let predHour = 0; predHour <= 23; predHour++) { - - // select 48 timestamps based on hour te be predicted - let now = new Date(); - const lastHour = new Date(now.setHours(now.getHours() + predHour)); - let timestamps = this.rain_data[0].hourly.time.map(ts => new Date(ts)); - let timestamps_48 = timestamps.filter(ts => ts <= lastHour).slice(-48) - - // for each relevant hour calculate the mean precipitation across all areas - let precipitation = []; - for (let i = 0; i < timestamps.length; i++) { - - if(timestamps_48.includes(timestamps[i])) { - - let values = []; - for (let j = 0; j < this.rain_data.length; j++) { - - values.push(this.rain_data[j].hourly.precipitation[i]); - } - let mean = values.reduce((sum, value) => sum + value, 0) / this.rain_data.length; - precipitation.push(mean); - } - } - - // generate seasonal variables for model: hour of day, day of week, day of year (last 2 with sin cos transformation) - let hour = timestamps_48.map(ts => ts.getHours()); - let weekdayJS = timestamps_48.map(ts => ts.getDay()); // Javascript weekday - let weekdayPY = weekdayJS.map(weekdayJS => (weekdayJS + 6) % 7); // Python weekday - let weekdaySin = weekdayPY.map(weekdayPY => Math.sin(2 * Math.PI * weekdayPY / 7)); - let weekdayCos = weekdayPY.map(weekdayPY => Math.cos(2 * Math.PI * weekdayPY / 7)); - let dayOfYear = timestamps_48.map(ts => this.getDayOfYear(ts)); - let dayOfYearSin = dayOfYear.map(day => Math.sin(2 * Math.PI * day / 365)); - let dayOfYearCos = dayOfYear.map(day => Math.cos(2 * Math.PI * day / 365)); - - // standardize variables for prediction and 'zip' them - const scaling = [ - { - "hour mean": 11.504046716524947, - "weekdaySin mean": -0.00023422353487966347, - "weekdayCos mean": 0.0033714029956787715, - "dayOfYearSin mean": 0.06748893577363864, - "dayOfYearCos mean": -0.02137433139416939, - "precipitation mean": 0.0887225073082283 - }, - { - "hour scale": 6.92182769305216, - "weekdaySin scale": 0.7073194528907719, - "weekdayCos scale": 0.7068859670013796, - "dayOfYearSin scale": 0.701099604274817, - "dayOfYearCos scale": 0.7095405037003095, - "precipitation scale": 0.4505403578968155 - }, - { - "Flow (m3/h) mean": 1178.7800890533754 - }, - { - "Flow (m3/h) scale": 1025.3973622173557 - } - ] - const means = scaling[0]; - const scales = scaling[1]; - - let features = [hour, weekdaySin, weekdayCos, dayOfYearSin, dayOfYearCos, precipitation]; - const names = ["hour", "weekdaySin", "weekdayCos", "dayOfYearSin", "dayOfYearCos", "precipitation"] - - features = features.map((arr, i) => - arr.map(value => (value - means[`${names[i]} mean`]) / scales[`${names[i]} scale`])); - [hour, weekdaySin, weekdayCos, dayOfYearSin, dayOfYearCos, precipitation] = features; - - const zipped = this.zip(hour, weekdaySin, weekdayCos, dayOfYearSin, dayOfYearCos, precipitation); - - // collect inputdata for model - inputs.push(zipped); - - } - const output = this.model_loader(inputs); - console.log('Final output: ' + output); -} - -async model_loader(inputs){ - - let dailyPred = 0; - - try { - /*const localURL = '../generalFunctions/datasets/lstmData/tfjs_model/model.json'; - - - // Could you log the original model JSON to help determine the correct input shape? - const response = await fetch(localURL); - const modelJSON = await response.json(); - console.log('Original model config:', JSON.stringify(modelJSON.modelTopology.model_config.config.layers[0], null, 48, 6)); - - // Try loading with default input shape*/ - const path = 'nodes/generalFunctions/datasets/lstmData/tfjs_model/model.json'; - const model = await this.modelLoader.loadModelPath(path); - console.log('Model loaded successfully!'); - - // make predictions - for (const input of inputs) { - - const inputTensor = tf.tensor3d([input]); - const predict = model.predict(inputTensor); - let predictValue = await predict.data(); - - // back-transformation because of standardization of the response variable - predictValue = predictValue[0] * 1024.1940942 + 1188.0105115; - dailyPred += predictValue; - } - console.log('Daily prediction: ' + dailyPred); - } catch (error) { - console.error('Failed to load model:', error); - } - return dailyPred; -} - - sampling_program(){ - - // ------------------ Run once on conditions and start sampling - if( ( (this.i_start ) || ( Date.now() >= this.nextDate ) ) && !this.running ){ - - this.running = true; - - // reset persistent vars - this.temp_pulse = 0; - this.pulse = false; - this.bucketVol = 0; - this.sumPuls = 0; - this.m3Total = 0; - this.timePassed = 0; // time in seconds - this.timeLeft = 0; // time in seconds - this.predM3PerSec = 0; - - //run prediction to ensure its value is filled - this.get_model_prediction(); - - // define m3 per pulse for this run and round to int ! - this.m3PerPuls = Math.round(this.predFlow / this.targetPuls); - this.predM3PerSec = this.predFlow / this.sampling_time / 60 / 60; // predicted m3 per time - - // define start and stop time based on calender data - this.start_time = Date.now(); - this.stop_time = Date.now() + (this.sampling_time * 60 * 60 * 1000); // convert to milliseconds - - //reset parameters and look for next date - this.regNextDate(this.monsternametijden); - - // reset start - this.i_start = false; - } - - // ------------------ Run for as long as sampling time is not greater than stop time - if(this.stop_time > Date.now()){ - - // define time vars - this.timePassed = Math.round( ( Date.now() - this.start_time ) / 1000); - this.timeLeft = Math.round( ( this.stop_time - Date.now() ) / 1000); - - // calc temp pulse rate - let update = this.m3PerTick / this.m3PerPuls; - - // update values - this.temp_pulse += update; - this.m3Total += this.m3PerTick; - - // check if we need to send out a pulse (stop sending pulses if capacity is reached) - if(this.temp_pulse >= 1 && this.sumPuls < this.absMaxPuls){ - // reset - this.temp_pulse += -1; - // send out a pulse and add to count - this.pulse = true; - // count pulses - this.sumPuls++; - // update bucket volume each puls - this.bucketVol = Math.round(this.sumPuls * this.volume_pulse * 100) / 100; - - } - else{ - - if( this.sumPuls > this.absMaxPuls){ - - // find out how to reschedule sample automatically? - } - - //update pulse when its true - if(this.pulse){ - this.pulse = false; // continue but don't send out a pulse - } - - } - } - else - { - //after setting once dont do it again - if(this.running){ - // Vars can only be 0 if this is not running - this.m3PerPuls = 0; - this.temp_pulse = 0; - this.pulse = false; - this.bucketVol = 0; - this.sumPuls = 0; - this.timePassed = 0; // time in seconds - this.timeLeft = 0; // time in seconds - this.predFlow = 0; - this.predM3PerSec = 0; - this.m3Total = 0; - this.running = false; // end of sampling program (stop_time reached) - - } - } - } - - flowCalc(){ - //reset timePassed - let timePassed = 0; - - // each tick calc flowtimepassed - this.flowTime > 0 ? timePassed = ( Date.now() - this.flowTime) / 1000 : timePassed = 0 ; - - //conver to m3 per tick - this.m3PerTick = this.q / 60 / 60 * timePassed ; - - // put new timestamp - this.flowTime = Date.now(); - - } - - //goes through time related functions - tick(){ - - //calculate flow based on input - this.flowCalc(); - - //run sampling program - this.sampling_program(); - - //logQ for predictions / forecasts - this.logQoverTime(); - - this._syncOutput(); - } - - regNextDate(monsternametijden){ - - let next_date = new Date(new Date().setFullYear(new Date().getFullYear() + 1)); - let n_days_remaining = 0; - - if(typeof monsternametijden !== 'undefined'){ - // loop through lines - Object.entries(monsternametijden).forEach(([key, line],index) => { - - //console.log(line.START_DATE); - //check if date is not null - if(line.START_DATE != "NULL"){ - let curr_date_conv = new Date(line.START_DATE); - let curr_date = curr_date_conv.getTime(); - - //check if sample name is this sample and if date is bigger than now. - if(line.SAMPLE_NAME == this.aquonSampleName && curr_date > Date.now() ){ - - //only keep date that is bigger than current but smaller than the ones that follow after it. - if(curr_date < next_date){ next_date = curr_date; } - - // check if its within this year only show those days as days remaining - if( new Date().getFullYear() == curr_date_conv.getFullYear() ){ n_days_remaining++; } - } - } - - }); - } - else{ - //this.warning.push(3); - } - - //store vars remaining - this.daysPerYear = n_days_remaining; - this.nextDate = next_date; - } - - logQoverTime(){ - - //store currHour in temp obj for easy ref - let h = this.currHour; - - // define rain hour of which the correlation is the biggest this doesnt belong in this section do this afterwards - // let rainH = h - this.calcTimeShift ; - - // how much rain fell on rainH (define category) - - // fetch current hour from actual time - const currentHour = new Date().getHours(); - - //on hour change begin log - if(h !== currentHour ){ - - //write current total to object - this.qLineRaw.h = this.tmpTotQ - - //reset tmpTotQ - - //set this.currHour to currentHour - } - - - - - - - } - - //create objects where to push arrays in to keep track of data - createMinMaxSeen(){ - //check which hour it is , then make sum , after sum is complete check which hour it is - //loop over sampling time expressed in hours - for(let h = 1; h < this.sampling_time ; h++){ - this.minSeen = {}; - } - } - - -} // end of class - -module.exports = Monster; - -// Local smoke-test harness (kept for debugging) should not run when this file is imported by Node-RED. -if (require.main === module) { - -const mConfig={ - general: { - name: "Monster", - logging:{ - logLevel: "debug", - enabled: true, - }, - }, - asset: { - emptyWeightBucket: 3, - }, - constraints: { - minVolume: 4, - maxWeight: 23, - }, -} - - -// testing -let monster = new Monster(mConfig); -monster.rain_data = [{"latitude":51.7,"longitude":4.8139997,"generationtime_ms":0.03802776336669922,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.736,"longitude":4.785,"generationtime_ms":0.031948089599609375,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":2,"location_id":1,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.843,"generationtime_ms":0.025987625122070312,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":2,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.8719997,"generationtime_ms":0.054001808166503906,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":4,"location_id":3,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.93,"generationtime_ms":0.03802776336669922,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":4,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.9589996,"generationtime_ms":0.03504753112792969,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":5,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.988,"generationtime_ms":0.027060508728027344,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":6,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.785,"generationtime_ms":0.033974647521972656,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":7,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.8139997,"generationtime_ms":0.05602836608886719,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":8,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.843,"generationtime_ms":0.029921531677246094,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":9,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.8719997,"generationtime_ms":0.033020973205566406,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":10,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.93,"generationtime_ms":0.054955482482910156,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":11,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.785,"generationtime_ms":0.04506111145019531,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":12,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.8139997,"generationtime_ms":0.031948089599609375,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":13,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.843,"generationtime_ms":0.02002716064453125,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":4,"location_id":14,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.8719997,"generationtime_ms":0.04398822784423828,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":15,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.93,"generationtime_ms":0.05602836608886719,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":-1,"location_id":16,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.9589996,"generationtime_ms":0.030040740966796875,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":17,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.785,"generationtime_ms":0.02300739288330078,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":18,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.8139997,"generationtime_ms":0.04100799560546875,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":19,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.843,"generationtime_ms":0.04494190216064453,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":5,"location_id":20,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.8719997,"generationtime_ms":0.03898143768310547,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":21,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.93,"generationtime_ms":0.030040740966796875,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":22,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.9589996,"generationtime_ms":0.07402896881103516,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":23,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.628,"longitude":4.8139997,"generationtime_ms":0.024080276489257812,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":24,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.628,"longitude":4.843,"generationtime_ms":0.0209808349609375,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":17,"location_id":25,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.628,"longitude":4.8719997,"generationtime_ms":0.04398822784423828,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":7,"location_id":26,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.628,"longitude":4.93,"generationtime_ms":0.033974647521972656,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":5,"location_id":27,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.592,"longitude":4.8719997,"generationtime_ms":0.02300739288330078,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":14,"location_id":28,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.592,"longitude":4.93,"generationtime_ms":0.0209808349609375,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":6,"location_id":29,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}}] - -monster.get_model_prediction(); - -(async () => { - //const intervalId = setInterval(() => {monster.tick();},1000) -}) - -} - diff --git a/dependencies/monster/modelLoader.js b/dependencies/monster/modelLoader.js deleted file mode 100644 index e6ccdc1..0000000 --- a/dependencies/monster/modelLoader.js +++ /dev/null @@ -1,164 +0,0 @@ -const tf = require('@tensorflow/tfjs'); -const fs = require('fs'); -const path = require('path'); - - -class ModelLoader { - constructor(logger) { - this.logger = logger || console; - this.model = null; - } -/* - async loadModel(modelUrl, inputShape = [null, 24, 166]) { - try { - this.logger.debug(`Fetching model JSON from: ${modelUrl}`); - const response = await fetch(modelUrl); - const modelJSON = await response.json(); - - // Fix input shape - this.configureInputLayer(modelJSON, inputShape); - - // Extract base path - const baseUrl = this.getBaseUrl(modelUrl); - this.fixWeightPaths(modelJSON, baseUrl); - - // Ensure weight specs are there - if ( - !modelJSON.weightsManifest || - !modelJSON.weightsManifest[0].weights || - modelJSON.weightsManifest[0].weights.length === 0 - ) { - throw new Error("Model JSON is missing weight specifications."); - } - - // Load the binary weight data - const weightUrl = modelJSON.weightsManifest[0].paths[0]; - const weightResponse = await fetch(weightUrl); - const weightBuffer = await weightResponse.arrayBuffer(); - - console.log('modelJSON.weightsManifest:', JSON.stringify(modelJSON.weightsManifest, null, 2)); - -if ( - !modelJSON.weightsManifest || - !modelJSON.weightsManifest[0].weights || - modelJSON.weightsManifest[0].weights.length === 0 -) { - console.error("❌ modelJSON.weightsManifest is missing weight specs!"); -} else { - console.log("✅ Weight specs found:", modelJSON.weightsManifest[0].weights.length); -} - -// Create ModelArtifacts object -const artifacts = { - modelTopology: modelJSON.modelTopology, - weightSpecs: modelJSON.weightsManifest[0].weights, // ✅ CORRECT FIELD NAME - weightData: weightBuffer -}; - -// Load from memory -this.model = await tf.loadLayersModel(tf.io.fromMemory(artifacts)); - - - this.logger.debug('Model loaded successfully'); - return this.model; - } catch (error) { - this.logger.error(`Failed to load model: ${error.message}`); - throw error; - } - } -*/ - async loadModelPath(modelPath, inputShape = [1,48,6]) { - try { - const resolvedModelPath = path.resolve(modelPath); - this.logger.debug(`Loading model JSON from: ${resolvedModelPath}`); - - const modelJSON = JSON.parse(fs.readFileSync(resolvedModelPath, 'utf-8')); - this.configureInputLayer(modelJSON, inputShape); - - const baseDir = path.dirname(resolvedModelPath); - const weightFile = path.resolve(baseDir, modelJSON.weightsManifest[0].paths[0]); - const weightBuffer = fs.readFileSync(weightFile).buffer; - - const artifacts = { - modelTopology: modelJSON.modelTopology, - weightSpecs: modelJSON.weightsManifest[0].weights, - weightData: weightBuffer - }; - - this.model = await tf.loadLayersModel(tf.io.fromMemory(artifacts)); - this.logger.debug('Model loaded successfully'); - return this.model; - } catch (error) { - this.logger.error(`Failed to load model: ${error.message}`); - throw error; - } -} - - - - - configureInputLayer(modelJSON, inputShape) { - const layers = modelJSON.modelTopology.model_config.config.layers; - if (layers && layers.length > 0) { - const firstLayer = layers[0]; - if (firstLayer.class_name === 'InputLayer') { - if (firstLayer.config.batch_shape) { - firstLayer.config.batchInputShape = firstLayer.config.batch_shape; - delete firstLayer.config.batch_shape; - this.logger.debug('Converted batch_shape to batchInputShape:', firstLayer); - } else if (!firstLayer.config.batchInputShape && !firstLayer.config.inputShape) { - firstLayer.config.batchInputShape = inputShape; - this.logger.debug('Configured input layer:', firstLayer); - } else { - this.logger.debug('Input shape already set:', firstLayer.config); - } - } - } - } - - getBaseUrl(url) { - return url.substring(0, url.lastIndexOf('/') + 1); - } - - fixWeightPaths(modelJSON, baseUrl) { - for (const group of modelJSON.weightsManifest) { - group.paths = group.paths.map(path => { - path = path.replace(/^\/+/, ''); - return path.startsWith('http') ? path : `${baseUrl}${path}`; - }); - } - } -} - -const modelLoader = new ModelLoader(); - - -//example!! - -/* -(async () => { - try { - //const localURL = "http://localhost:1880/generalFunctions/datasets/lstmData/tfjs_model/model.json"; - - const localPath = path.join( - __dirname, - '../../../generalFunctions/datasets/lstmData/tfjs_model/model.json' - ); - - const model = await modelLoader.loadModelPath(localPath); - - //const model = await modelLoader.loadModel(localURL); USES URL - console.log('Model loaded successfully'); - - const denseLayer = model.getLayer('dense_8'); - const weights = denseLayer.getWeights(); - const weightArray = await weights[0].array(); - console.log('Dense layer kernel (sample):', weightArray.slice(0, 5)); - - } catch (error) { - console.error('Failed to load model:', error); - } -})(); - -//*/ -module.exports = ModelLoader; diff --git a/dependencies/monster/monster_class_oud.js b/dependencies/monster/monster_class_oud.js deleted file mode 100644 index f2bc370..0000000 --- a/dependencies/monster/monster_class_oud.js +++ /dev/null @@ -1,746 +0,0 @@ -/** - * @file Measurement.js - * - * Permission is hereby granted to any person obtaining a copy of this software - * and associated documentation files (the "Software"), to use it for personal - * or non-commercial purposes, with the following restrictions: - * - * 1. **No Copying or Redistribution**: The Software or any of its parts may not - * be copied, merged, distributed, sublicensed, or sold without explicit - * prior written permission from the author. - * - * 2. **Commercial Use**: Any use of the Software for commercial purposes requires - * a valid license, obtainable only with the explicit consent of the author. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, - * OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Ownership of this code remains solely with the original author. Unauthorized - * use of this Software is strictly prohibited. - * - * Author: - * - Rene De Ren / Sjoerd Fijnje - * Email: - * - r.de.ren@brabantsedelta.nl - * - */ - -const EventEmitter = require('events'); -const Logger = require('../../../generalFunctions/helper/logger'); -const defaultConfig = require('./monsterConfig.json'); -const ConfigUtils = require('../../../generalFunctions/helper/configUtils'); -const tf = require('@tensorflow/tfjs'); -const tfLoader = require('./modelLoader'); - -class Monster{ - /*------------------- Construct and set vars -------------------*/ - constructor(config={}) { - - //init - this.init = false; // keep track of init - - this.emitter = new EventEmitter(); // Own EventEmitter - this.configUtils = new ConfigUtils(defaultConfig,config.general.logging.enabled,config.general.logging.logLevel); // ConfigUtils - this.config = this.configUtils.initConfig(config); - - // Init after config is set - this.logger = new Logger(this.config.general.logging.enabled,this.config.general.logging.logLevel, this.config.general.name); - - this.modelLoader = new tfLoader(this.logger); // ModelLoader - - // -------------------------------------- fetch dependencies -------------------------- - this.convert = require('../../../convert/dependencies/index'); - this.math = require('mathjs'); - - this.model = null; // TensorFlow model placeholder - - //place holders for output data - this.output = {} ; // object to place all relevant outputs in and preform event change check on - this.child = {} ; // register childs - - //Specific object info - this.aquonSampleName = "112100" ; // aquon sample name to start automatic sampling on the basis of the document - this.monsternametijden = {} ; // json monsternametijden file? - this.rain_data = {} ; // precipitation data - this.aggregatedOutput = {} ; // object that does not contain momentary values but a combination of all kinds of data over a fixed period of time - this.sumRain = 0 ; // total sum of rain over time window + n hours and - n hours - this.avgRain = 0 ; // total divided by number of locations to get average over total time - this.daysPerYear = 0 ; // how many days remaining for this year - - // outputs - this.pulse = false; // output pulse to sampling machine - this.bucketVol = 0; // how full is the sample? - this.sumPuls = 0; // number of pulses so far - this.predFlow = 0; // predicted flow over sampling time in hours, expressed in m3 - this.bucketWeight = 0; // actual weight of bucket - - //inputs - this.q = 0; // influent flow in m3/h - this.i_start = false // when true, the program gets kicked off calculating what it needs to take samples - this.sampling_time = config.constraints.samplingtime; // time expressed in hours over which the sampling will run (currently 24) - this.emptyWeightBucket = config.asset.emptyWeightBucket; // empty weight of the bucket - - // internal vars - this.temp_pulse = 0; // each interval pulses send out 1 and then reset - this.volume_pulse = 0.05; // define volume pulse expressed in L - this.minVolume = config.constraints.minVolume;// define min volume in a sampling cabinet before a sample is declared valid expressed in L - this.maxVolume = 0; // calculated maxvolume depending on own weight - this.maxWeight = config.constraints.maxWeight;// define max volume in a sampling cabinet before a sample is declared invalid expressed in L - this.cap_volume = 55; // abs max capacity of bucket (volume) in liters - this.targetVolume = 0; // volume of sampling cabinet that model aims for - this.minPuls = 0; // calculates the min pulses depending on min_vol and max_vol - this.maxPuls = 0; // calculates the max pulses depending on min_vol and max_vol - this.absMaxPuls = 0; // capacity of sampling cabinet (number of pulses) - this.targetPuls = 0; // keeps track of the desired amount of pulses (+- 50% tolerance), based on aimed volume - this.m3PerPuls = 0; // each pulse is equal to a number of m3 - this.predM3PerSec = 0; // predicted flow in m3 per second - this.m3PerTick = 0; // actual measured flow in m3 per second - this.m3Total = 0; // total measured flow over sampling time in m3 - this.running = false; // define if sampling is running or not - - this.qLineRaw = {}; // see example - this.minSeen = {}; // keeps track of minimum ever seen so far in a time period for each hour (over totals not every value) - this.maxSeen = {}; // keeps track of maximum ever seen so far in a time period for each hour (over totals not every value) - this.qLineRefined = {}; // this should be the ( quantiles? ) classified in the datasets - this.calcTimeShiftDry = 0; // What is the delay after a dry period of minimum n hours - this.calcTimeShiftWet = 0; - this.calcCapacitySewer = 0; - // how much rain goes to the sewage ? -> calculate surface area of hardend / sewage. - - this.minDryHours = 0; // what is the minimum of dry hours before we can calculate timeshift? spot this with moving average? - this.minWetHours = 0; // how long does it take to remove all the rain? - this.resolution = 0; // Number of chunks in qLineRaw / define how big the window is to sum all values ( for now we need to take 1 hour or bigger resolutions but in the future smaller is better to see more accurate correlations) - this.tmpTotQ = 0; // keep track of sum of q within resolution window - - //old prediction factor - this.predFactor = 0.7; // define factor as multiplier for prediction - - //track program start and stop - this.start_time = Date.now(); // default start time - this.stop_time = Date.now(); // default stop time - this.flowTime = 0; //keep track in detail how much time between 2 ticks for more accurate flow measurement - this.timePassed = 0; // time in seconds - this.timeLeft = 0; // time in seconds - this.currHour = new Date().getHours(); // on init define in which hour we are 0 - 23 - - - this.init = true; // end of constructor - - //set boundries and targets after init based on above settings - this.set_boundries_and_targets(); - - - } - - /*------------------- GETTER/SETTERS Dynamics -------------------*/ - set monsternametijden(value){ - - if(this.init){ - if(Object.keys(value).length > 0){ - - //check if push is in valid format and not null - if( - typeof value[0].SAMPLE_NAME !== 'undefined' - && - typeof value[0].DESCRIPTION !== 'undefined' - && - typeof value[0].SAMPLED_DATE !== 'undefined' - && - typeof value[0].START_DATE !== 'undefined' - && - typeof value[0].END_DATE !== 'undefined' - ){ - - //each time this changes we load the next date applicable for this function - this._monsternametijden = value; - - //fetch dates - this.regNextDate(value); - - } - else{ - // Monsternametijden object Wrong format contact AQUON - } - } - else{ - // Monsternametijden object Wrong format contact AQUON - } - } - } - - get monsternametijden(){ - return this._monsternametijden; - } - - set rain_data(value){ - - //retrieve precipitation expected during the coming day and precipitation of yesterday - this._rain_data = value; - - //only update after init and is not running. - if(this.init && !this.running){ - this.updatePredRain(value); - } - - } - - get rain_data(){ - return this._rain_data; - } - - set bucketVol(val){ - - //Put val in local var - this._bucketVol = val; - - //Place into output object - this.output.bucketVol = val; - - // update bucket weight - this.bucketWeight = val + this.emptyWeightBucket; - } - - get bucketVol(){ - return this._bucketVol; - } - - set minVolume(val){ - - //Protect against 0 - val == 0 ? val = 1 : val = val; - - this._minVolume = val; - - //Place into output object - this.output.minVolume = val; - } - - get minVolume(){ - return this._minVolume; - } - - set q(val){ - - //Put val in local var - this._q = val; - - //Place into output object - this.output.q = val; - this.output.qm3sec = this.convert(val).from('m3/h').to('m3/s'); - - } - - get q(){ - return this._q; - } - - /*------------------- FUNCTIONS -------------------*/ - - set_boundries_and_targets(){ - - // define boundries for algorithm - this.maxVolume = this.maxWeight - this.emptyWeightBucket ; // substract bucket weight of max volume assuming they are both on a 1 to 1 ratio - this.minPuls = Math.round(this.minVolume / this.volume_pulse); // minimum pulses we want before we have a valid sample - this.maxPuls = Math.round(this.maxVolume / this.volume_pulse); // maximum pulses we can handle (otherwise sample is too heavy) - this.absMaxPuls = Math.round(this.cap_volume / this.volume_pulse); // number of pulses a sample can contain before overflowing - // define target values - this.targetVolume = this.minVolume * Math.sqrt(this.maxVolume/this.minVolume); - //old way - //this.targetVolume = Math.round( ( ( (this.maxVolume - this.minVolume) / 2 ) + this.minVolume ) * 100) / 100; // calculate middle between min and max - // correct target values - this.targetPuls = Math.round(this.targetVolume / this.volume_pulse) ; // define desired amount of pulses (in this case our prediction can deviate 50% up and 50% down without a problem) - } - - updateArchiveRain(val){ - - } - - updatePredRain(value){ - //make date objects to define relative time window - let now = new Date(Date.now()); - let past = new Date(Date.now()); - let future = new Date(Date.now()); - let totalRaw = {}; - let totalProb = {}; - let totalAvg = {}; - - //refine object with different values - let rain = {}; - rain.hourly = {}; // an object with timestamps and aggreated over all locations summed precipation in mm - rain.hourly.time = []; - rain.hourly.precipationRaw = []; - rain.hourly.precipationProb = []; - - let numberOfLocations = 0; - - //Make timestamp + 24 hours - future.setHours(now.getHours() + 24); - - //Make timestamp - 24hours - past.setHours(now.getHours() - 24); - - //go through all locations and sum up the average precipation of each location so we have summed precipation over every hour - Object.entries(value).forEach(([locationKey, location],locationindex) => { - - //number of locations - numberOfLocations++; - - // make an object to keep track of the dataset we load - this.aggregatedOutput[locationKey] = {}; - this.aggregatedOutput[locationKey].tag = {}; - this.aggregatedOutput[locationKey].tag.latitude = location.latitude; - this.aggregatedOutput[locationKey].tag.longitude = location.longitude; - this.aggregatedOutput[locationKey].precipationRaw = {}; - this.aggregatedOutput[locationKey].precipationProb = {}; - - - //loop through object for each location over all hourlys - Object.entries(location.hourly.time).forEach(([key, time], index) => { - - this.aggregatedOutput[locationKey].precipationRaw[key] = {}; - this.aggregatedOutput[locationKey].precipationProb[key] = {}; - - //convert string output to a date object - let checkdate = new Date(time); - - //convert date to milliseconds timestamps - let currTimestamp = checkdate.getTime(); - let probability = 100; //default probility unless otherwise defined - - if(typeof location.hourly.precipitation_probability !== 'undefined'){ - probability = location.hourly.precipitation_probability[key]; - - } - - if(probability > 0){ - probability /= 100; - } - - // only interested in dates before timeframe and after to make use of - // ( currTimestamp >= now && currTimestamp < future) || ( currTimestamp < now && currTimestamp > past ) - if( true ){ - - typeof totalRaw[currTimestamp] === 'undefined' ? totalRaw[currTimestamp] = 0 : null; - typeof totalProb[currTimestamp] === 'undefined' ? totalProb[currTimestamp] = 0 : null; - - //placed probability into the equation - totalRaw[currTimestamp] += location.hourly.precipitation[key] ; - totalProb[currTimestamp] += ( location.hourly.precipitation[key] * probability ) ; - - //keep track of all requested data - this.aggregatedOutput[locationKey].precipationRaw[key]["val"] = location.hourly.precipitation[key]; // raw data from open weather data - this.aggregatedOutput[locationKey].precipationRaw[key]["time"] = currTimestamp; - - this.aggregatedOutput[locationKey].precipationProb[key]["val"] = probability; // probability of open weather - this.aggregatedOutput[locationKey].precipationProb[key]["time"] = currTimestamp; - - } - - //remove dead info - if(Object.keys(this.aggregatedOutput[locationKey].precipationRaw[key]).length == 0 ){ - delete this.aggregatedOutput[locationKey].precipationRaw[key]; - }; - - if(Object.keys(this.aggregatedOutput[locationKey].precipationProb[key]).length == 0 ){ - delete this.aggregatedOutput[locationKey].precipationProb[key]; - }; - - }); - }); - - //total sum expected over time window (just for ref now not so important anymore) - this.sumRain = Object.values(totalProb).reduce((sum, value) => sum + value, 0); - this.avgRain = this.sumRain / numberOfLocations; - - //make average over prob - Object.entries(totalProb).forEach(([key, sum],index) => { - typeof totalAvg[key] === 'undefined' ? totalAvg[key] = 0 : null; - totalAvg[key] = sum / numberOfLocations; - }); - - //make new prediction - //this.get_model_prediction(); - return this.aggregatedOutput; - } - - get_model_prediction(){ - -// combine 24 hourly predictions to make one daily prediction (for the next 24 hours including the current hour) -let inputs = []; -for (let predHour = 0; predHour <= 23; predHour++) { - - // select 24 timestamps based on hour te be predicted - let now = new Date(); - const lastHour = new Date(now.setHours(now.getHours() + predHour)); - let timestamps = this.rain_data[0].hourly.time.map(ts => new Date(ts)); - let timestamps_24 = timestamps.filter(ts => ts <= lastHour).slice(-24) - - // for each relevant hour calculate the mean precipitation across all areas - let precipitation = []; - for (let i = 0; i < timestamps.length; i++) { - - if(timestamps_24.includes(timestamps[i])) { - - let values = []; - for (let j = 0; j < this.rain_data.length; j++) { - - values.push(this.rain_data[j].hourly.precipitation[i]); - } - let mean = values.reduce((sum, value) => sum + value, 0) / this.rain_data.length; - precipitation.push(mean); - } - } - - // standardize variables for prediction and 'zip' them - let hours = timestamps_24.map(ts => ts.getHours()); - hours = hours.map(hour => (hour - 11.50430734) / 6.92241142); - precipitation = precipitation.map(value => (value - 0.09011861) / 0.43853627); - let zipped = hours.map((value, i) => [value, precipitation[i]]); - - // collect inputdata for model - inputs.push(zipped); -} - const output = this.model_loader(inputs); - console.log('Final output: ' + output); - } - -async model_loader(inputs){ - - let dailyPred = 0; - - try { - const localURL = "http://127.0.0.1:1880/generalFunctions/datasets/lstmData/tfjs_model/model.json"; - - // Could you log the original model JSON to help determine the correct input shape? - const response = await fetch(localURL); - const modelJSON = await response.json(); - console.log('Original model config:', JSON.stringify(modelJSON.modelTopology.model_config.config.layers[0], null, 24, 2)); - - // Try loading with default input shape - const model = await this.modelLoader.loadModel(localURL); - console.log('Model loaded successfully!'); - - // make predictions - for (const input of inputs) { - - const inputTensor = tf.tensor3d([input]); - const predict = model.predict(inputTensor); - let predictValue = await predict.data(); - - // back-transformation because of standardization of the response variable - predictValue = predictValue[0] * 1024.1940942 + 1188.0105115; - dailyPred += predictValue; - } - console.log('Daily prediction: ' + dailyPred); - } catch (error) { - console.error('Failed to load model:', error); - } - return dailyPred; -} - - sampling_program(){ - - // ------------------ Run once on conditions and start sampling - if( ( (this.i_start ) || ( Date.now() >= this.nextDate ) ) && !this.running ){ - - this.running = true; - - // reset persistent vars - this.temp_pulse = 0; - this.pulse = false; - this.bucketVol = 0; - this.sumPuls = 0; - this.m3Total = 0; - this.timePassed = 0; // time in seconds - this.timeLeft = 0; // time in seconds - this.predM3PerSec = 0; - - //run prediction to ensure its value is filled - this.get_model_prediction(); - - // define m3 per pulse for this run and round to int ! - this.m3PerPuls = Math.round(this.predFlow / this.targetPuls); - this.predM3PerSec = this.predFlow / this.sampling_time / 60 / 60; // predicted m3 per time - - // define start and stop time based on calender data - this.start_time = Date.now(); - this.stop_time = Date.now() + (this.sampling_time * 60 * 60 * 1000); // convert to milliseconds - - //reset parameters and look for next date - this.regNextDate(this.monsternametijden); - - // reset start - this.i_start = false; - } - - // ------------------ Run for as long as sampling time is not greater than stop time - if(this.stop_time > Date.now()){ - - // define time vars - this.timePassed = Math.round( ( Date.now() - this.start_time ) / 1000); - this.timeLeft = Math.round( ( this.stop_time - Date.now() ) / 1000); - - // calc temp pulse rate - let update = this.m3PerTick / this.m3PerPuls; - - // update values - this.temp_pulse += update; - this.m3Total += this.m3PerTick; - - // check if we need to send out a pulse (stop sending pulses if capacity is reached) - if(this.temp_pulse >= 1 && this.sumPuls < this.absMaxPuls){ - // reset - this.temp_pulse += -1; - // send out a pulse and add to count - this.pulse = true; - // count pulses - this.sumPuls++; - // update bucket volume each puls - this.bucketVol = Math.round(this.sumPuls * this.volume_pulse * 100) / 100; - - } - else{ - - if( this.sumPuls > this.absMaxPuls){ - - // find out how to reschedule sample automatically? - } - - //update pulse when its true - if(this.pulse){ - this.pulse = false; // continue but don't send out a pulse - } - - } - } - else - { - //after setting once dont do it again - if(this.running){ - // Vars can only be 0 if this is not running - this.m3PerPuls = 0; - this.temp_pulse = 0; - this.pulse = false; - this.bucketVol = 0; - this.sumPuls = 0; - this.timePassed = 0; // time in seconds - this.timeLeft = 0; // time in seconds - this.predFlow = 0; - this.predM3PerSec = 0; - this.m3Total = 0; - this.running = false; // end of sampling program (stop_time reached) - - } - } - } - - flowCalc(){ - //reset timePassed - let timePassed = 0; - - // each tick calc flowtimepassed - this.flowTime > 0 ? timePassed = ( Date.now() - this.flowTime) / 1000 : timePassed = 0 ; - - //conver to m3 per tick - this.m3PerTick = this.q / 60 / 60 * timePassed ; - - // put new timestamp - this.flowTime = Date.now(); - - } - - //goes through time related functions - tick(){ - - //calculate flow based on input - this.flowCalc(); - - //run sampling program - this.sampling_program(); - - //logQ for predictions / forecasts - this.logQoverTime(); - } - - regNextDate(monsternametijden){ - - let next_date = new Date(new Date().setFullYear(new Date().getFullYear() + 1)); - let n_days_remaining = 0; - - if(typeof monsternametijden !== 'undefined'){ - // loop through lines - Object.entries(monsternametijden).forEach(([key, line],index) => { - - //console.log(line.START_DATE); - //check if date is not null - if(line.START_DATE != "NULL"){ - let curr_date_conv = new Date(line.START_DATE); - let curr_date = curr_date_conv.getTime(); - - //check if sample name is this sample and if date is bigger than now. - if(line.SAMPLE_NAME == this.aquonSampleName && curr_date > Date.now() ){ - - //only keep date that is bigger than current but smaller than the ones that follow after it. - if(curr_date < next_date){ next_date = curr_date; } - - // check if its within this year only show those days as days remaining - if( new Date().getFullYear() == curr_date_conv.getFullYear() ){ n_days_remaining++; } - } - } - - }); - } - else{ - //this.warning.push(3); - } - - //store vars remaining - this.daysPerYear = n_days_remaining; - this.nextDate = next_date; - } - - logQoverTime(){ - - //store currHour in temp obj for easy ref - let h = this.currHour; - - // define rain hour of which the correlation is the biggest this doesnt belong in this section do this afterwards - // let rainH = h - this.calcTimeShift ; - - // how much rain fell on rainH (define category) - - // fetch current hour from actual time - const currentHour = new Date().getHours(); - - //on hour change begin log - if(h !== currentHour ){ - - //write current total to object - this.qLineRaw.h = this.tmpTotQ - - //reset tmpTotQ - - //set this.currHour to currentHour - } - - - - - - - } - - //create objects where to push arrays in to keep track of data - createMinMaxSeen(){ - //check which hour it is , then make sum , after sum is complete check which hour it is - //loop over sampling time expressed in hours - for(let h = 1; h < this.sampling_time ; h++){ - this.minSeen = {}; - } - } - - -} // end of class - -module.exports = Monster; - - -const mConfig={ - general: { - name: "Monster", - logging:{ - logLevel: "debug", - enabled: true, - }, - }, - asset: { - emptyWeightBucket: 3, - }, - constraints: { - minVolume: 4, - maxWeight: 23, - }, -} - -let monster = new Monster(mConfig); - - - - -monster.rain_data = [{"latitude":51.7,"longitude":4.8139997,"generationtime_ms":0.03802776336669922,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.736,"longitude":4.785,"generationtime_ms":0.031948089599609375,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":2,"location_id":1,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.843,"generationtime_ms":0.025987625122070312,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":2,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.8719997,"generationtime_ms":0.054001808166503906,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":4,"location_id":3,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.93,"generationtime_ms":0.03802776336669922,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":4,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.9589996,"generationtime_ms":0.03504753112792969,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":5,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.718,"longitude":4.988,"generationtime_ms":0.027060508728027344,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":6,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.785,"generationtime_ms":0.033974647521972656,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":7,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.8139997,"generationtime_ms":0.05602836608886719,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":8,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.843,"generationtime_ms":0.029921531677246094,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":9,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.8719997,"generationtime_ms":0.033020973205566406,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":10,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.7,"longitude":4.93,"generationtime_ms":0.054955482482910156,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":11,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.785,"generationtime_ms":0.04506111145019531,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":12,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.8139997,"generationtime_ms":0.031948089599609375,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":13,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.843,"generationtime_ms":0.02002716064453125,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":4,"location_id":14,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.8719997,"generationtime_ms":0.04398822784423828,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":15,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.93,"generationtime_ms":0.05602836608886719,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":-1,"location_id":16,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.664,"longitude":4.9589996,"generationtime_ms":0.030040740966796875,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":17,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.785,"generationtime_ms":0.02300739288330078,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":0,"location_id":18,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.8139997,"generationtime_ms":0.04100799560546875,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":19,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.843,"generationtime_ms":0.04494190216064453,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":5,"location_id":20,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.8719997,"generationtime_ms":0.03898143768310547,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":21,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.93,"generationtime_ms":0.030040740966796875,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":22,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.646,"longitude":4.9589996,"generationtime_ms":0.07402896881103516,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":1,"location_id":23,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.628,"longitude":4.8139997,"generationtime_ms":0.024080276489257812,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":3,"location_id":24,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.628,"longitude":4.843,"generationtime_ms":0.0209808349609375,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":17,"location_id":25,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.628,"longitude":4.8719997,"generationtime_ms":0.04398822784423828,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":7,"location_id":26,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.628,"longitude":4.93,"generationtime_ms":0.033974647521972656,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":5,"location_id":27,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.592,"longitude":4.8719997,"generationtime_ms":0.02300739288330078,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":14,"location_id":28,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},{"latitude":51.592,"longitude":4.93,"generationtime_ms":0.0209808349609375,"utc_offset_seconds":3600,"timezone":"Europe/Berlin","timezone_abbreviation":"CET","elevation":6,"location_id":29,"hourly_units":{"time":"iso8601","precipitation":"mm","precipitation_probability":"%"},"hourly":{"time":["2024-11-04T00:00","2024-11-04T01:00","2024-11-04T02:00","2024-11-04T03:00","2024-11-04T04:00","2024-11-04T05:00","2024-11-04T06:00","2024-11-04T07:00","2024-11-04T08:00","2024-11-04T09:00","2024-11-04T10:00","2024-11-04T11:00","2024-11-04T12:00","2024-11-04T13:00","2024-11-04T14:00","2024-11-04T15:00","2024-11-04T16:00","2024-11-04T17:00","2024-11-04T18:00","2024-11-04T19:00","2024-11-04T20:00","2024-11-04T21:00","2024-11-04T22:00","2024-11-04T23:00","2024-11-05T00:00","2024-11-05T01:00","2024-11-05T02:00","2024-11-05T03:00","2024-11-05T04:00","2024-11-05T05:00","2024-11-05T06:00","2024-11-05T07:00","2024-11-05T08:00","2024-11-05T09:00","2024-11-05T10:00","2024-11-05T11:00","2024-11-05T12:00","2024-11-05T13:00","2024-11-05T14:00","2024-11-05T15:00","2024-11-05T16:00","2024-11-05T17:00","2024-11-05T18:00","2024-11-05T19:00","2024-11-05T20:00","2024-11-05T21:00","2024-11-05T22:00","2024-11-05T23:00","2024-11-06T00:00","2024-11-06T01:00","2024-11-06T02:00","2024-11-06T03:00","2024-11-06T04:00","2024-11-06T05:00","2024-11-06T06:00","2024-11-06T07:00","2024-11-06T08:00","2024-11-06T09:00","2024-11-06T10:00","2024-11-06T11:00","2024-11-06T12:00","2024-11-06T13:00","2024-11-06T14:00","2024-11-06T15:00","2024-11-06T16:00","2024-11-06T17:00","2024-11-06T18:00","2024-11-06T19:00","2024-11-06T20:00","2024-11-06T21:00","2024-11-06T22:00","2024-11-06T23:00","2024-11-07T00:00","2024-11-07T01:00","2024-11-07T02:00","2024-11-07T03:00","2024-11-07T04:00","2024-11-07T05:00","2024-11-07T06:00","2024-11-07T07:00","2024-11-07T08:00","2024-11-07T09:00","2024-11-07T10:00","2024-11-07T11:00","2024-11-07T12:00","2024-11-07T13:00","2024-11-07T14:00","2024-11-07T15:00","2024-11-07T16:00","2024-11-07T17:00","2024-11-07T18:00","2024-11-07T19:00","2024-11-07T20:00","2024-11-07T21:00","2024-11-07T22:00","2024-11-07T23:00"],"precipitation":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"precipitation_probability":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}}] - -monster.get_model_prediction(); - -/* -// combine 24 hourly predictions to make one daily prediction (for the next 24 hours including the current hour) -let inputs = []; -for (let predHour = 0; predHour <= 23; predHour++) { - - // select 24 timestamps based on hour te be predicted - let now = new Date(); - const lastHour = new Date(now.setHours(now.getHours() + predHour)); - let timestamps = monster.rain_data[0].hourly.time.map(ts => new Date(ts)); - timestamps_24 = timestamps.filter(ts => ts <= lastHour).slice(-24) - - // for each relevant hour calculate the mean precipitation across all areas - let precipitation = []; - for (let i = 0; i < timestamps.length; i++) { - - if(timestamps_24.includes(timestamps[i])) { - - let values = []; - for (let j = 0; j < monster.rain_data.length; j++) { - - values.push(monster.rain_data[j].hourly.precipitation[i]); - } - let mean = values.reduce((sum, value) => sum + value, 0) / monster.rain_data.length; - precipitation.push(mean); - } - } - - // standardize variables for prediction and 'zip' them - let hours = timestamps_24.map(ts => ts.getHours()); - hours = hours.map(hour => (hour - 11.50430734) / 6.92241142); - precipitation = precipitation.map(value => (value - 0.09011861) / 0.43853627); - zipped = hours.map((value, i) => [value, precipitation[i]]); - - // collect inputdata for model - inputs.push(zipped); -} - - (async () => { - try { - const localURL = "http://127.0.0.1:1880/generalFunctions/datasets/lstmData/tfjs_model/model.json"; - - // Could you log the original model JSON to help determine the correct input shape? - const response = await fetch(localURL); - const modelJSON = await response.json(); - console.log('Original model config:', JSON.stringify(modelJSON.modelTopology.model_config.config.layers[0], null, 24, 2)); - - // Try loading with default input shape - const model = await monster.modelLoader.loadModel(localURL); - console.log('Model loaded successfully!'); - - // make predictions - let dailyPred = 0; - for (const input of inputs) { - - const inputTensor = tf.tensor3d([input]); - const predict = model.predict(inputTensor); - let predictValue = await predict.data(); - - // back-transformation because of standardization of the response variable - predictValue = predictValue[0] * 1024.1940942 + 1188.0105115; - dailyPred += predictValue; - } - console.log('Daily prediction: ' + dailyPred); - } catch (error) { - console.error('Failed to load model:', error); - } - })();*/ - diff --git a/monster oud.js b/monster oud.js deleted file mode 100644 index f4e0501..0000000 --- a/monster oud.js +++ /dev/null @@ -1,182 +0,0 @@ -module.exports = function (RED) { - function monster(config) { - - // create node - RED.nodes.createNode(this, config); - - // call this => node so whenver you want to call a node function type node and the function behind it - var node = this; - - try{ - - - // fetch monster object from monster.js - const Monster = require("./dependencies/monster/monster_class"); - const OutputUtils = require("../generalFunctions/helper/outputUtils"); - - const mConfig={ - general: { - name: config.name, - id: node.id, - unit: config.unit, - logging:{ - logLevel: config.logLevel, - enabled: config.enableLog, - }, - }, - asset: { - supplier: config.supplier, - subType: config.subType, - model: config.model, - emptyWeightBucket: config.emptyWeightBucket, - }, - constraints: { - minVolume: config.minVolume, - maxWeight: config.maxWeight, - samplingtime: config.samplingtime, - }, - } - - // make new monster on creation to work with. - const m = new Monster(mConfig); - - // put m on node memory as source - node.source = m; - - //load output utils - const output = new OutputUtils(); - - //internal vars - this.interval_id = null; - - //updating node state - function updateNodeStatus() { - try{ - - const bucketVol = m.bucketVol; - const maxVolume = m.maxVolume; - const state = m.running; - const mode = "AI" ; //m.mode; - - let status; - - switch (state) { - case false: - status = { fill: "red", shape: "dot", text: `${mode}: OFF` }; - break; - case true: - status = { fill: "green", shape: "dot", text: `${mode}: ON => ${bucketVol} | ${maxVolume}` }; - break; - } - - return status; - } catch (error) { - node.error("Error in updateNodeStatus: " + error); - return { fill: "red", shape: "ring", text: "Status Error" }; - } - } - - function tick(){ - try{ - // load status node - const status = updateNodeStatus(); - // kick time based function in node - m.tick(); - //show node status - node.status(status); - } catch (error) { - node.error("Error in tick function: " + error); - node.status({ fill: "red", shape: "ring", text: "Tick Error" }); - } - } - - // register child on first output this timeout is needed because of node - red stuff - setTimeout( - () => { - - /*---execute code on first start----*/ - let msgs = []; - - msgs[2] = { topic : "registerChild" , payload: node.id, positionVsParent: "upstream" }; - msgs[3] = { topic : "registerChild" , payload: node.id, positionVsParent: "downstream" }; - - //send msg - this.send(msgs); - }, - 100 - ); - - //declare refresh interval internal node - setTimeout( - () => { - /*---execute code on first start----*/ - this.interval_id = setInterval(function(){ tick() },1000) - }, - 1000 - ); - - node.on('input', function (msg,send,done) { - try{ - switch(msg.topic) { - case 'registerChild': - const childId = msg.payload; - const childObj = RED.nodes.getNode(childId); - m.childRegistrationUtils.registerChild(childObj.source ,msg.positionVsParent); - break; - case 'setMode': - m.setMode(msg.payload); - break; - case 'start': - m.i_start = true; - break; - } - } catch (error) { - node.error("Error in input function: " + error); - node.status({ fill: "red", shape: "ring", text: "Input Error" }); - } - - if(msg.topic == "i_flow"){ - monster.q = parseFloat(msg.payload); - } - - if(msg.topic == "i_start"){ - monster.i_start = true; - } - - if(msg.topic == "model_prediction"){ - let var1 = msg.payload.dagvoorheen; - let var2 = msg.payload.dagnadien; - monster.get_model_prediction(var1, var2); - } - - if(msg.topic == "aquon_monsternametijden"){ - monster.monsternametijden = msg.payload; - } - - if(msg.topic == "rain_data"){ - monster.rain_data = msg.payload; - } - - //register child classes - if(msg.topic == "registerChild"){ - let child = msg.payload; - monster.registerChild(child); - - } - - done(); - }); - - // tidy up any async code here - shutdown connections and so on. - node.on('close', function() { - clearTimeout(this.interval_id); - }); - - } catch (error) { - node.error("Error in monster function: " + error); - node.status({ fill: "red", shape: "ring", text: "Monster Error" }); - } - } - RED.nodes.registerType("monster", monster); - -}; \ No newline at end of file diff --git a/src/specificClass.js b/src/specificClass.js index a902f81..a3ce69d 100644 --- a/src/specificClass.js +++ b/src/specificClass.js @@ -1,2 +1,717 @@ -module.exports = require("../dependencies/monster/SpeficicClass"); + +const EventEmitter = require('events'); +const {logger,configUtils,configManager, MeasurementContainer, predict, interpolation, childRegistrationUtils} = require('generalFunctions'); + +class Monster{ + /*------------------- Construct and set vars -------------------*/ + constructor(config={}) { + + //init + this.init = false; // keep track of init + + //basic setup + this.emitter = new EventEmitter(); // Own EventEmitter + + this.logger = new logger(config.general.logging.enabled,config.general.logging.logLevel, config.general.name); + this.configManager = new configManager(); + this.defaultConfig = this.configManager.getConfig('monster'); // Load default config for rotating machine ( use software type name ? ) + this.configUtils = new configUtils(this.defaultConfig); + + // -------------------------------------- fetch dependencies -------------------------- + //this.math = require('mathjs'); + + //place holders for output data + this.output = {} ; // object to place all relevant outputs in and preform event change check on + this.child = {} ; // register childs + + //Specific object info + this.aquonSampleName = "112100" ; // aquon sample name to start automatic sampling on the basis of the document + this.monsternametijden = {} ; // json monsternametijden file? + this.rain_data = {} ; // precipitation data + this.aggregatedOutput = {} ; // object that does not contain momentary values but a combination of all kinds of data over a fixed period of time + this.sumRain = 0 ; // total sum of rain over time window + n hours and - n hours + this.avgRain = 0 ; // total divided by number of locations to get average over total time + this.daysPerYear = 0 ; // how many days remaining for this year + + // outputs + this.pulse = false; // output pulse to sampling machine + this.bucketVol = 0; // how full is the sample? + this.sumPuls = 0; // number of pulses so far + this.predFlow = 0; // predicted flow over sampling time in hours, expressed in m3 + this.bucketWeight = 0; // actual weight of bucket + + //inputs + this.q = 0; // influent flow in m3/h + this.i_start = false // when true, the program gets kicked off calculating what it needs to take samples + this.sampling_time = config.constraints.samplingtime; // time expressed in hours over which the sampling will run (currently 24) + this.emptyWeightBucket = config.asset.emptyWeightBucket; // empty weight of the bucket + + // internal vars + this.temp_pulse = 0; // each interval pulses send out 1 and then reset + this.volume_pulse = 0.05; // define volume pulse expressed in L + this.minVolume = config.constraints.minVolume;// define min volume in a sampling cabinet before a sample is declared valid expressed in L + this.maxVolume = 0; // calculated maxvolume depending on own weight + this.maxWeight = config.constraints.maxWeight;// define max volume in a sampling cabinet before a sample is declared invalid expressed in L + this.cap_volume = 55; // abs max capacity of bucket (volume) in liters + this.targetVolume = 0; // volume of sampling cabinet that model aims for + this.minPuls = 0; // calculates the min pulses depending on min_vol and max_vol + this.maxPuls = 0; // calculates the max pulses depending on min_vol and max_vol + this.absMaxPuls = 0; // capacity of sampling cabinet (number of pulses) + this.targetPuls = 0; // keeps track of the desired amount of pulses (+- 50% tolerance), based on aimed volume + this.m3PerPuls = 0; // each pulse is equal to a number of m3 + this.predM3PerSec = 0; // predicted flow in m3 per second + this.m3PerTick = 0; // actual measured flow in m3 per second + this.m3Total = 0; // total measured flow over sampling time in m3 + this.running = false; // define if sampling is running or not + + this.qLineRaw = {}; // see example + this.minSeen = {}; // keeps track of minimum ever seen so far in a time period for each hour (over totals not every value) + this.maxSeen = {}; // keeps track of maximum ever seen so far in a time period for each hour (over totals not every value) + this.qLineRefined = {}; // this should be the ( quantiles? ) classified in the datasets + this.calcTimeShiftDry = 0; // What is the delay after a dry period of minimum n hours + this.calcTimeShiftWet = 0; + this.calcCapacitySewer = 0; + // how much rain goes to the sewage ? -> calculate surface area of hardend / sewage. + + this.minDryHours = 0; // what is the minimum of dry hours before we can calculate timeshift? spot this with moving average? + this.minWetHours = 0; // how long does it take to remove all the rain? + this.resolution = 0; // Number of chunks in qLineRaw / define how big the window is to sum all values ( for now we need to take 1 hour or bigger resolutions but in the future smaller is better to see more accurate correlations) + this.tmpTotQ = 0; // keep track of sum of q within resolution window + + //old prediction factor + this.predFactor = 0.7; // define factor as multiplier for prediction + + //track program start and stop + this.start_time = Date.now(); // default start time + this.stop_time = Date.now(); // default stop time + this.flowTime = 0; //keep track in detail how much time between 2 ticks for more accurate flow measurement + this.timePassed = 0; // time in seconds + this.timeLeft = 0; // time in seconds + this.currHour = new Date().getHours(); // on init define in which hour we are 0 - 23 + + + this.init = true; // end of constructor + + //set boundries and targets after init based on above settings + this.set_boundries_and_targets(); + + + } + + _syncOutput() { + this.output = this.output || {}; + this.output.pulse = this.pulse; + this.output.running = this.running; + this.output.bucketVol = this.bucketVol; + this.output.bucketWeight = this.bucketWeight; + this.output.sumPuls = this.sumPuls; + this.output.predFlow = this.predFlow; + this.output.predM3PerSec = this.predM3PerSec; + this.output.timePassed = this.timePassed; + this.output.timeLeft = this.timeLeft; + this.output.m3Total = this.m3Total; + this.output.q = this.q; + this.output.maxVolume = this.maxVolume; + this.output.minVolume = this.minVolume; + this.output.nextDate = this.nextDate; + this.output.daysPerYear = this.daysPerYear; + } + + getOutput() { + this._syncOutput(); + return this.output; + } + + /*------------------- GETTER/SETTERS Dynamics -------------------*/ + set monsternametijden(value){ + + if(this.init){ + if(Object.keys(value).length > 0){ + + //check if push is in valid format and not null + if( + typeof value[0].SAMPLE_NAME !== 'undefined' + && + typeof value[0].DESCRIPTION !== 'undefined' + && + typeof value[0].SAMPLED_DATE !== 'undefined' + && + typeof value[0].START_DATE !== 'undefined' + && + typeof value[0].END_DATE !== 'undefined' + ){ + + //each time this changes we load the next date applicable for this function + this._monsternametijden = value; + + //fetch dates + this.regNextDate(value); + + } + else{ + // Monsternametijden object Wrong format contact AQUON + } + } + else{ + // Monsternametijden object Wrong format contact AQUON + } + } + } + + get monsternametijden(){ + return this._monsternametijden; + } + + set rain_data(value){ + + //retrieve precipitation expected during the coming day and precipitation of yesterday + this._rain_data = value; + + //only update after init and is not running. + if(this.init && !this.running){ + this.updatePredRain(value); + } + + } + + get rain_data(){ + return this._rain_data; + } + + set bucketVol(val){ + + //Put val in local var + this._bucketVol = val; + + //Place into output object + this.output.bucketVol = val; + + // update bucket weight + this.bucketWeight = val + this.emptyWeightBucket; + } + + get bucketVol(){ + return this._bucketVol; + } + + set minVolume(val){ + + //Protect against 0 + val == 0 ? val = 1 : val = val; + + this._minVolume = val; + + //Place into output object + this.output.minVolume = val; + } + + get minVolume(){ + return this._minVolume; + } + + set q(val){ + + //Put val in local var + this._q = val; + + //Place into output object + this.output.q = val; + + } + + get q(){ + return this._q; + } + + /*------------------- FUNCTIONS -------------------*/ + + set_boundries_and_targets(){ + + // define boundries for algorithm + this.maxVolume = this.maxWeight - this.emptyWeightBucket ; // substract bucket weight of max volume assuming they are both on a 1 to 1 ratio + this.minPuls = Math.round(this.minVolume / this.volume_pulse); // minimum pulses we want before we have a valid sample + this.maxPuls = Math.round(this.maxVolume / this.volume_pulse); // maximum pulses we can handle (otherwise sample is too heavy) + this.absMaxPuls = Math.round(this.cap_volume / this.volume_pulse); // number of pulses a sample can contain before overflowing + // define target values + this.targetVolume = this.minVolume * Math.sqrt(this.maxVolume / this.minVolume); + //old way + //this.targetVolume = Math.round( ( ( (this.maxVolume - this.minVolume) / 2 ) + this.minVolume ) * 100) / 100; // calculate middle between min and max + // correct target values + this.targetPuls = Math.round(this.targetVolume / this.volume_pulse) ; // define desired amount of pulses (in this case our prediction can deviate 50% up and 50% down without a problem) + } + + + updatePredRain(value){ + //make date objects to define relative time window + let now = new Date(Date.now()); + let past = new Date(Date.now()); + let future = new Date(Date.now()); + let totalRaw = {}; + let totalProb = {}; + let totalAvg = {}; + + //refine object with different values + let rain = {}; + rain.hourly = {}; // an object with timestamps and aggreated over all locations summed precipation in mm + rain.hourly.time = []; + rain.hourly.precipationRaw = []; + rain.hourly.precipationProb = []; + + let numberOfLocations = 0; + + //Make timestamp + 24 hours + future.setHours(now.getHours() + 24); + + //Make timestamp - 24hours + past.setHours(now.getHours() - 24); + + //go through all locations and sum up the average precipation of each location so we have summed precipation over every hour + Object.entries(value).forEach(([locationKey, location],locationindex) => { + + //number of locations + numberOfLocations++; + + // make an object to keep track of the dataset we load + this.aggregatedOutput[locationKey] = {}; + this.aggregatedOutput[locationKey].tag = {}; + this.aggregatedOutput[locationKey].tag.latitude = location.latitude; + this.aggregatedOutput[locationKey].tag.longitude = location.longitude; + this.aggregatedOutput[locationKey].precipationRaw = {}; + this.aggregatedOutput[locationKey].precipationProb = {}; + + + //loop through object for each location over all hourlys + Object.entries(location.hourly.time).forEach(([key, time], index) => { + + this.aggregatedOutput[locationKey].precipationRaw[key] = {}; + this.aggregatedOutput[locationKey].precipationProb[key] = {}; + + //convert string output to a date object + let checkdate = new Date(time); + + //convert date to milliseconds timestamps + let currTimestamp = checkdate.getTime(); + let probability = 100; //default probility unless otherwise defined + + if(typeof location.hourly.precipitation_probability !== 'undefined'){ + probability = location.hourly.precipitation_probability[key]; + + } + + if(probability > 0){ + probability /= 100; + } + + // only interested in dates before timeframe and after to make use of + // ( currTimestamp >= now && currTimestamp < future) || ( currTimestamp < now && currTimestamp > past ) + if( true ){ + + typeof totalRaw[currTimestamp] === 'undefined' ? totalRaw[currTimestamp] = 0 : null; + typeof totalProb[currTimestamp] === 'undefined' ? totalProb[currTimestamp] = 0 : null; + + //placed probability into the equation + totalRaw[currTimestamp] += location.hourly.precipitation[key] ; + totalProb[currTimestamp] += ( location.hourly.precipitation[key] * probability ) ; + + //keep track of all requested data + this.aggregatedOutput[locationKey].precipationRaw[key]["val"] = location.hourly.precipitation[key]; // raw data from open weather data + this.aggregatedOutput[locationKey].precipationRaw[key]["time"] = currTimestamp; + + this.aggregatedOutput[locationKey].precipationProb[key]["val"] = probability; // probability of open weather + this.aggregatedOutput[locationKey].precipationProb[key]["time"] = currTimestamp; + + } + + //remove dead info + if(Object.keys(this.aggregatedOutput[locationKey].precipationRaw[key]).length == 0 ){ + delete this.aggregatedOutput[locationKey].precipationRaw[key]; + }; + + if(Object.keys(this.aggregatedOutput[locationKey].precipationProb[key]).length == 0 ){ + delete this.aggregatedOutput[locationKey].precipationProb[key]; + }; + + }); + }); + + //total sum expected over time window (just for ref now not so important anymore) + this.sumRain = Object.values(totalProb).reduce((sum, value) => sum + value, 0); + this.avgRain = this.sumRain / numberOfLocations; + + //make average over prob + Object.entries(totalProb).forEach(([key, sum],index) => { + typeof totalAvg[key] === 'undefined' ? totalAvg[key] = 0 : null; + totalAvg[key] = sum / numberOfLocations; + }); + + //make new prediction + return this.aggregatedOutput; + } + + // for getting the day of the year (0-365) + getDayOfYear(ts){ + const start = new Date(ts.getFullYear(), 0, 1); + const diff = ts - start; + const oneDay = 1000 * 60 * 60 * 24; + return Math.floor(diff / oneDay); +} + + +get_model_prediction(){ + // Offline-safe fallback: assume constant inflow `q` during `sampling_time`. + // `q` is in m3/h; `sampling_time` is in hours; result is total predicted volume in m3. + const samplingHours = Number(this.sampling_time) || 0; + const flowM3PerHour = Number(this.q) || 0; + const fallback = Math.max(0, flowM3PerHour * samplingHours); + + this.predFlow = fallback; + this._syncOutput(); + return this.predFlow; +} + +// Legacy/experimental model-based prediction (kept for reference; not used by default). +get_model_prediction_from_rain(){ + + // combine 24 hourly predictions to make one daily prediction (for the next 24 hours including the current hour) + let inputs = []; + for (let predHour = 0; predHour <= 23; predHour++) { + + // select 48 timestamps based on hour te be predicted + let now = new Date(); + const lastHour = new Date(now.setHours(now.getHours() + predHour)); + let timestamps = this.rain_data[0].hourly.time.map(ts => new Date(ts)); + let timestamps_48 = timestamps.filter(ts => ts <= lastHour).slice(-48) + + // for each relevant hour calculate the mean precipitation across all areas + let precipitation = []; + for (let i = 0; i < timestamps.length; i++) { + + if(timestamps_48.includes(timestamps[i])) { + + let values = []; + for (let j = 0; j < this.rain_data.length; j++) { + + values.push(this.rain_data[j].hourly.precipitation[i]); + } + let mean = values.reduce((sum, value) => sum + value, 0) / this.rain_data.length; + precipitation.push(mean); + } + } + + // generate seasonal variables for model: hour of day, day of week, day of year (last 2 with sin cos transformation) + let hour = timestamps_48.map(ts => ts.getHours()); + let weekdayJS = timestamps_48.map(ts => ts.getDay()); // Javascript weekday + let weekdayPY = weekdayJS.map(weekdayJS => (weekdayJS + 6) % 7); // Python weekday + let weekdaySin = weekdayPY.map(weekdayPY => Math.sin(2 * Math.PI * weekdayPY / 7)); + let weekdayCos = weekdayPY.map(weekdayPY => Math.cos(2 * Math.PI * weekdayPY / 7)); + let dayOfYear = timestamps_48.map(ts => this.getDayOfYear(ts)); + let dayOfYearSin = dayOfYear.map(day => Math.sin(2 * Math.PI * day / 365)); + let dayOfYearCos = dayOfYear.map(day => Math.cos(2 * Math.PI * day / 365)); + + // standardize variables for prediction and 'zip' them + const scaling = [ + { + "hour mean": 11.504046716524947, + "weekdaySin mean": -0.00023422353487966347, + "weekdayCos mean": 0.0033714029956787715, + "dayOfYearSin mean": 0.06748893577363864, + "dayOfYearCos mean": -0.02137433139416939, + "precipitation mean": 0.0887225073082283 + }, + { + "hour scale": 6.92182769305216, + "weekdaySin scale": 0.7073194528907719, + "weekdayCos scale": 0.7068859670013796, + "dayOfYearSin scale": 0.701099604274817, + "dayOfYearCos scale": 0.7095405037003095, + "precipitation scale": 0.4505403578968155 + }, + { + "Flow (m3/h) mean": 1178.7800890533754 + }, + { + "Flow (m3/h) scale": 1025.3973622173557 + } + ] + const means = scaling[0]; + const scales = scaling[1]; + + let features = [hour, weekdaySin, weekdayCos, dayOfYearSin, dayOfYearCos, precipitation]; + const names = ["hour", "weekdaySin", "weekdayCos", "dayOfYearSin", "dayOfYearCos", "precipitation"] + + features = features.map((arr, i) => + arr.map(value => (value - means[`${names[i]} mean`]) / scales[`${names[i]} scale`])); + [hour, weekdaySin, weekdayCos, dayOfYearSin, dayOfYearCos, precipitation] = features; + + const zipped = this.zip(hour, weekdaySin, weekdayCos, dayOfYearSin, dayOfYearCos, precipitation); + + // collect inputdata for model + inputs.push(zipped); + + } + const output = this.model_loader(inputs); + console.log('Final output: ' + output); +} + +async model_loader(inputs){ + + let dailyPred = 0; + + try { + + + // Try loading with default input shape*/ + const path = 'nodes/generalFunctions/datasets/lstmData/tfjs_model/model.json'; + const model = await this.modelLoader.loadModelPath(path); + console.log('Model loaded successfully!'); + + // make predictions + for (const input of inputs) { + + const inputTensor = tf.tensor3d([input]); + const predict = model.predict(inputTensor); + let predictValue = await predict.data(); + + // back-transformation because of standardization of the response variable + predictValue = predictValue[0] * 1024.1940942 + 1188.0105115; + dailyPred += predictValue; + } + console.log('Daily prediction: ' + dailyPred); + } catch (error) { + console.error('Failed to load model:', error); + } + return dailyPred; +} + + sampling_program(){ + + // ------------------ Run once on conditions and start sampling + if( ( (this.i_start ) || ( Date.now() >= this.nextDate ) ) && !this.running ){ + + this.running = true; + + // reset persistent vars + this.temp_pulse = 0; + this.pulse = false; + this.bucketVol = 0; + this.sumPuls = 0; + this.m3Total = 0; + this.timePassed = 0; // time in seconds + this.timeLeft = 0; // time in seconds + this.predM3PerSec = 0; + + //run prediction to ensure its value is filled + this.get_model_prediction(); + + // define m3 per pulse for this run and round to int ! + this.m3PerPuls = Math.round(this.predFlow / this.targetPuls); + this.predM3PerSec = this.predFlow / this.sampling_time / 60 / 60; // predicted m3 per time + + // define start and stop time based on calender data + this.start_time = Date.now(); + this.stop_time = Date.now() + (this.sampling_time * 60 * 60 * 1000); // convert to milliseconds + + //reset parameters and look for next date + this.regNextDate(this.monsternametijden); + + // reset start + this.i_start = false; + } + + // ------------------ Run for as long as sampling time is not greater than stop time + if(this.stop_time > Date.now()){ + + // define time vars + this.timePassed = Math.round( ( Date.now() - this.start_time ) / 1000); + this.timeLeft = Math.round( ( this.stop_time - Date.now() ) / 1000); + + // calc temp pulse rate + let update = this.m3PerTick / this.m3PerPuls; + + // update values + this.temp_pulse += update; + this.m3Total += this.m3PerTick; + + // check if we need to send out a pulse (stop sending pulses if capacity is reached) + if(this.temp_pulse >= 1 && this.sumPuls < this.absMaxPuls){ + // reset + this.temp_pulse += -1; + // send out a pulse and add to count + this.pulse = true; + // count pulses + this.sumPuls++; + // update bucket volume each puls + this.bucketVol = Math.round(this.sumPuls * this.volume_pulse * 100) / 100; + + } + else{ + + if( this.sumPuls > this.absMaxPuls){ + + // find out how to reschedule sample automatically? + } + + //update pulse when its true + if(this.pulse){ + this.pulse = false; // continue but don't send out a pulse + } + + } + } + else + { + //after setting once dont do it again + if(this.running){ + // Vars can only be 0 if this is not running + this.m3PerPuls = 0; + this.temp_pulse = 0; + this.pulse = false; + this.bucketVol = 0; + this.sumPuls = 0; + this.timePassed = 0; // time in seconds + this.timeLeft = 0; // time in seconds + this.predFlow = 0; + this.predM3PerSec = 0; + this.m3Total = 0; + this.running = false; // end of sampling program (stop_time reached) + + } + } + } + + flowCalc(){ + //reset timePassed + let timePassed = 0; + + // each tick calc flowtimepassed + this.flowTime > 0 ? timePassed = ( Date.now() - this.flowTime) / 1000 : timePassed = 0 ; + + //conver to m3 per tick + this.m3PerTick = this.q / 60 / 60 * timePassed ; + + // put new timestamp + this.flowTime = Date.now(); + + } + + //goes through time related functions + tick(){ + + // ------------------ 1.0 Main program loop ------------------ + this.logger.debug('Monster tick running'); + + //calculate flow based on input + this.flowCalc(); + + //run sampling program + this.sampling_program(); + + //logQ for predictions / forecasts + this.logQoverTime(); + + this._syncOutput(); + } + + regNextDate(monsternametijden){ + + let next_date = new Date(new Date().setFullYear(new Date().getFullYear() + 1)); + let n_days_remaining = 0; + + if(typeof monsternametijden !== 'undefined'){ + // loop through lines + Object.entries(monsternametijden).forEach(([key, line],index) => { + + //console.log(line.START_DATE); + //check if date is not null + if(line.START_DATE != "NULL"){ + let curr_date_conv = new Date(line.START_DATE); + let curr_date = curr_date_conv.getTime(); + + //check if sample name is this sample and if date is bigger than now. + if(line.SAMPLE_NAME == this.aquonSampleName && curr_date > Date.now() ){ + + //only keep date that is bigger than current but smaller than the ones that follow after it. + if(curr_date < next_date){ next_date = curr_date; } + + // check if its within this year only show those days as days remaining + if( new Date().getFullYear() == curr_date_conv.getFullYear() ){ n_days_remaining++; } + } + } + + }); + } + else{ + //this.warning.push(3); + } + + //store vars remaining + this.daysPerYear = n_days_remaining; + this.nextDate = next_date; + } + + logQoverTime(){ + + //store currHour in temp obj for easy ref + let h = this.currHour; + + // define rain hour of which the correlation is the biggest this doesnt belong in this section do this afterwards + // let rainH = h - this.calcTimeShift ; + + // how much rain fell on rainH (define category) + + // fetch current hour from actual time + const currentHour = new Date().getHours(); + + //on hour change begin log + if(h !== currentHour ){ + + //write current total to object + this.qLineRaw.h = this.tmpTotQ + + //reset tmpTotQ + + //set this.currHour to currentHour + } + + } + + //create objects where to push arrays in to keep track of data + createMinMaxSeen(){ + //check which hour it is , then make sum , after sum is complete check which hour it is + //loop over sampling time expressed in hours + for(let h = 1; h < this.sampling_time ; h++){ + this.minSeen = {}; + } + } + + +} // end of class + +module.exports = Monster; + + +const mConfig={ + general: { + name: "Monster", + logging:{ + logLevel: "debug", + enabled: true, + }, + }, + asset: { + emptyWeightBucket: 3, + }, + constraints: { + minVolume: 4, + maxWeight: 23, + }, +} + +const monster = new Monster(mConfig); +(async () => { + const intervalId = setInterval(() => { + monster.tick() + ;},1000) + +})(); diff --git a/monsterFlow.json b/test/example_flow/monsterFlow.json similarity index 100% rename from monsterFlow.json rename to test/example_flow/monsterFlow.json diff --git a/test/monster.test.js b/test/monster.test.js index 3f638ce..e69de29 100644 --- a/test/monster.test.js +++ b/test/monster.test.js @@ -1,121 +0,0 @@ -const test = require('node:test'); -const assert = require('node:assert/strict'); - -const Monster = require('../src/specificClass'); - -function createConfig(overrides = {}) { - return { - general: { - name: 'monster-test', - logging: { enabled: false, logLevel: 'error' }, - }, - asset: { - emptyWeightBucket: 3, - ...overrides.asset, - }, - constraints: { - samplingtime: 24, - minVolume: 5, - maxWeight: 23, - ...overrides.constraints, - }, - ...overrides, - }; -} - -test('constructor derives boundaries and targets from config', () => { - const monster = new Monster(createConfig()); - - assert.equal(monster.maxVolume, 20); - assert.equal(monster.minPuls, 100); - assert.equal(monster.maxPuls, 400); - assert.equal(monster.absMaxPuls, 1100); - assert.equal(monster.targetVolume, 10); - assert.equal(monster.targetPuls, 200); - assert.equal(monster.running, false); -}); - -test('bucket volume updates output and bucket weight', () => { - const monster = new Monster(createConfig()); - monster.bucketVol = 1.5; - - assert.equal(monster.bucketVol, 1.5); - assert.equal(monster.bucketWeight, 4.5); - - const out = monster.getOutput(); - assert.equal(out.bucketVol, 1.5); - assert.equal(out.bucketWeight, 4.5); -}); - -test('monsternametijden setter registers next date for matching sample', () => { - const monster = new Monster(createConfig()); - const future = new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(); - - monster.monsternametijden = [ - { - SAMPLE_NAME: monster.aquonSampleName, - DESCRIPTION: 'test', - SAMPLED_DATE: future, - START_DATE: future, - END_DATE: future, - }, - ]; - - assert.ok(monster.nextDate >= Date.now()); - assert.ok(monster.daysPerYear >= 1); -}); - -test('sampling_program starts and emits pulses based on m3PerTick', () => { - const monster = new Monster( - createConfig({ - constraints: { - samplingtime: 1, - minVolume: 0.1, - maxWeight: 23, - }, - }) - ); - - monster.nextDate = Date.now() + 60_000; - monster.i_start = true; - monster.q = 28; // => predFlow = 28 m3 for 1 hour (fallback) - monster.m3PerTick = 1; // with m3PerPuls ~1 this should trigger a pulse - - monster.sampling_program(); - - assert.equal(monster.running, true); - assert.equal(monster.sumPuls, 1); - assert.equal(monster.pulse, true); - assert.equal(monster.bucketVol, 0.05); - - // Next loop without flow should stop pulsing - monster.m3PerTick = 0; - monster.sampling_program(); - assert.equal(monster.pulse, false); -}); - -test('sampling_program stops and resets after stop_time has passed', () => { - const monster = new Monster( - createConfig({ - constraints: { samplingtime: 1, minVolume: 0.1, maxWeight: 23 }, - }) - ); - - monster.running = true; - monster.stop_time = Date.now() - 1; - monster.sumPuls = 10; - monster.bucketVol = 0.5; - monster.predFlow = 123; - monster.predM3PerSec = 1; - monster.m3Total = 10; - - monster.sampling_program(); - - assert.equal(monster.running, false); - assert.equal(monster.sumPuls, 0); - assert.equal(monster.bucketVol, 0); - assert.equal(monster.predFlow, 0); - assert.equal(monster.predM3PerSec, 0); - assert.equal(monster.m3Total, 0); -}); - diff --git a/config/monsternametijden.csv b/test/seed_data/monsternametijden.csv similarity index 100% rename from config/monsternametijden.csv rename to test/seed_data/monsternametijden.csv diff --git a/test/seed_data/raindataFormat.json b/test/seed_data/raindataFormat.json new file mode 100644 index 0000000..79fd988 --- /dev/null +++ b/test/seed_data/raindataFormat.json @@ -0,0 +1,9331 @@ +[ + { + "latitude": 51.7, + "longitude": 4.8139997, + "generationtime_ms": 0.03802776336669922, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.736, + "longitude": 4.785, + "generationtime_ms": 0.031948089599609375, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 2, + "location_id": 1, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.718, + "longitude": 4.843, + "generationtime_ms": 0.025987625122070312, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "location_id": 2, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.718, + "longitude": 4.8719997, + "generationtime_ms": 0.054001808166503906, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 4, + "location_id": 3, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.718, + "longitude": 4.93, + "generationtime_ms": 0.03802776336669922, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 1, + "location_id": 4, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.718, + "longitude": 4.9589996, + "generationtime_ms": 0.03504753112792969, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 1, + "location_id": 5, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.718, + "longitude": 4.988, + "generationtime_ms": 0.027060508728027344, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "location_id": 6, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.7, + "longitude": 4.785, + "generationtime_ms": 0.033974647521972656, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "location_id": 7, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.7, + "longitude": 4.8139997, + "generationtime_ms": 0.05602836608886719, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "location_id": 8, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.7, + "longitude": 4.843, + "generationtime_ms": 0.029921531677246094, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 1, + "location_id": 9, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.7, + "longitude": 4.8719997, + "generationtime_ms": 0.033020973205566406, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 3, + "location_id": 10, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.7, + "longitude": 4.93, + "generationtime_ms": 0.054955482482910156, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "location_id": 11, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.664, + "longitude": 4.785, + "generationtime_ms": 0.04506111145019531, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 1, + "location_id": 12, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.664, + "longitude": 4.8139997, + "generationtime_ms": 0.031948089599609375, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 1, + "location_id": 13, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.664, + "longitude": 4.843, + "generationtime_ms": 0.02002716064453125, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 4, + "location_id": 14, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.664, + "longitude": 4.8719997, + "generationtime_ms": 0.04398822784423828, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "location_id": 15, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.664, + "longitude": 4.93, + "generationtime_ms": 0.05602836608886719, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": -1, + "location_id": 16, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.664, + "longitude": 4.9589996, + "generationtime_ms": 0.030040740966796875, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "location_id": 17, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.646, + "longitude": 4.785, + "generationtime_ms": 0.02300739288330078, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 0, + "location_id": 18, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.646, + "longitude": 4.8139997, + "generationtime_ms": 0.04100799560546875, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 3, + "location_id": 19, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.646, + "longitude": 4.843, + "generationtime_ms": 0.04494190216064453, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 5, + "location_id": 20, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.646, + "longitude": 4.8719997, + "generationtime_ms": 0.03898143768310547, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 3, + "location_id": 21, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.646, + "longitude": 4.93, + "generationtime_ms": 0.030040740966796875, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 3, + "location_id": 22, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.646, + "longitude": 4.9589996, + "generationtime_ms": 0.07402896881103516, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 1, + "location_id": 23, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.628, + "longitude": 4.8139997, + "generationtime_ms": 0.024080276489257812, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 3, + "location_id": 24, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.628, + "longitude": 4.843, + "generationtime_ms": 0.0209808349609375, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 17, + "location_id": 25, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.628, + "longitude": 4.8719997, + "generationtime_ms": 0.04398822784423828, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 7, + "location_id": 26, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.628, + "longitude": 4.93, + "generationtime_ms": 0.033974647521972656, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 5, + "location_id": 27, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.592, + "longitude": 4.8719997, + "generationtime_ms": 0.02300739288330078, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 14, + "location_id": 28, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + }, + { + "latitude": 51.592, + "longitude": 4.93, + "generationtime_ms": 0.0209808349609375, + "utc_offset_seconds": 3600, + "timezone": "Europe/Berlin", + "timezone_abbreviation": "CET", + "elevation": 6, + "location_id": 29, + "hourly_units": { + "time": "iso8601", + "precipitation": "mm", + "precipitation_probability": "%" + }, + "hourly": { + "time": [ + "2024-11-04T00:00", + "2024-11-04T01:00", + "2024-11-04T02:00", + "2024-11-04T03:00", + "2024-11-04T04:00", + "2024-11-04T05:00", + "2024-11-04T06:00", + "2024-11-04T07:00", + "2024-11-04T08:00", + "2024-11-04T09:00", + "2024-11-04T10:00", + "2024-11-04T11:00", + "2024-11-04T12:00", + "2024-11-04T13:00", + "2024-11-04T14:00", + "2024-11-04T15:00", + "2024-11-04T16:00", + "2024-11-04T17:00", + "2024-11-04T18:00", + "2024-11-04T19:00", + "2024-11-04T20:00", + "2024-11-04T21:00", + "2024-11-04T22:00", + "2024-11-04T23:00", + "2024-11-05T00:00", + "2024-11-05T01:00", + "2024-11-05T02:00", + "2024-11-05T03:00", + "2024-11-05T04:00", + "2024-11-05T05:00", + "2024-11-05T06:00", + "2024-11-05T07:00", + "2024-11-05T08:00", + "2024-11-05T09:00", + "2024-11-05T10:00", + "2024-11-05T11:00", + "2024-11-05T12:00", + "2024-11-05T13:00", + "2024-11-05T14:00", + "2024-11-05T15:00", + "2024-11-05T16:00", + "2024-11-05T17:00", + "2024-11-05T18:00", + "2024-11-05T19:00", + "2024-11-05T20:00", + "2024-11-05T21:00", + "2024-11-05T22:00", + "2024-11-05T23:00", + "2024-11-06T00:00", + "2024-11-06T01:00", + "2024-11-06T02:00", + "2024-11-06T03:00", + "2024-11-06T04:00", + "2024-11-06T05:00", + "2024-11-06T06:00", + "2024-11-06T07:00", + "2024-11-06T08:00", + "2024-11-06T09:00", + "2024-11-06T10:00", + "2024-11-06T11:00", + "2024-11-06T12:00", + "2024-11-06T13:00", + "2024-11-06T14:00", + "2024-11-06T15:00", + "2024-11-06T16:00", + "2024-11-06T17:00", + "2024-11-06T18:00", + "2024-11-06T19:00", + "2024-11-06T20:00", + "2024-11-06T21:00", + "2024-11-06T22:00", + "2024-11-06T23:00", + "2024-11-07T00:00", + "2024-11-07T01:00", + "2024-11-07T02:00", + "2024-11-07T03:00", + "2024-11-07T04:00", + "2024-11-07T05:00", + "2024-11-07T06:00", + "2024-11-07T07:00", + "2024-11-07T08:00", + "2024-11-07T09:00", + "2024-11-07T10:00", + "2024-11-07T11:00", + "2024-11-07T12:00", + "2024-11-07T13:00", + "2024-11-07T14:00", + "2024-11-07T15:00", + "2024-11-07T16:00", + "2024-11-07T17:00", + "2024-11-07T18:00", + "2024-11-07T19:00", + "2024-11-07T20:00", + "2024-11-07T21:00", + "2024-11-07T22:00", + "2024-11-07T23:00" + ], + "precipitation": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "precipitation_probability": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + } +] \ No newline at end of file