commit 40156d628335b75bdcc777b3a3c1c4253ec3f134 Author: Guntis Smaukstelis Date: Thu Apr 13 16:58:56 2023 +0300 Initial commit with weather data fetcher and parser diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..61a2356 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +src/main/resources/application.conf + +target/ +project/target/ +project/project/target/ +.bsp +.project/ +.classpath +.cache +.settings/ +dist/* +lib_managed/ +ivy/ +ivy-cache/ +dependency-reduced-pom.xml +.history/ +.idea/ +*.iml +*.ipr +*.iws +/.idea_modules/ +*.swp +*.swo +*.log +logs/ +.DS_Store diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000..b733a56 --- /dev/null +++ b/build.sbt @@ -0,0 +1,28 @@ +ThisBuild / version := "0.1.0-SNAPSHOT" + +ThisBuild / scalaVersion := "2.13.10" + +lazy val root = (project in file(".")) + .settings( + name := "WeatherTool" + ) + +val http4sVersion = "0.23.16" +val circeVersion = "0.14.1" + +libraryDependencies ++= Seq( + "org.http4s" %% "http4s-dsl" % http4sVersion, + "org.http4s" %% "http4s-blaze-server" % "0.23.9", + "org.http4s" %% "http4s-blaze-client" % "0.23.13", + "org.http4s" %% "http4s-circe" % http4sVersion, + "org.http4s" %% "http4s-jdk-http-client" % "0.8.0", + + "ch.qos.logback" % "logback-classic" % "1.2.9", + "com.typesafe" % "config" % "1.4.1", + + "io.circe" %% "circe-core" % circeVersion, + "io.circe" %% "circe-generic" % circeVersion, + "io.circe" %% "circe-generic-extras" % circeVersion, + "io.circe" %% "circe-optics" % circeVersion, + "io.circe" %% "circe-parser" % circeVersion, +) diff --git a/data/20230413_1130.csv b/data/20230413_1130.csv new file mode 100644 index 0000000..a534a56 --- /dev/null +++ b/data/20230413_1130.csv @@ -0,0 +1,67 @@ +Pilsēta;Laiks;Stundas maksimālā temperatūra;Stundas minimālā temperatūra;Stundas vidējā temperatūra;Stundas nokrišņu daudzums;Vidējais vēja ātrums novērojumu termiņā (10 min. vidējais);Stundas maksimālās vēja brāzmas;Stundas minimālā redzamība;Stundas vidējā redzamība;Stundas vidējais sniega segas biezums;Atmosfēras spiediens jūras līmenī novērojuma termiņā (milibāros);Rasas punkta temperatūra novērojuma termiņā;Relatīvais gaisa mitrums novērojumu termiņā;Saules spīdēšanas ilgums;Laika parādības +Ainaži;13.04 11:00;+12.3;+11.5;+11.8;0.0;5.6;7.9;7030;20000;0.0;759.0;+2.1;50;; +Alūksne;13.04 11:00;+10.8;+9.1;+9.7;0.0;3.1;6.4;20000;20000;0.0;759.8;+0.7;50;0.5; +Bauska;13.04 11:00;+11.1;+10.7;+10.9;0.0;2.9;4.5;20000;20000;0.0;757.4;+5.1;67;; +Dagda;13.04 11:00;+11.6;+11.1;+11.3;0.0;2.5;7.0;20000;20000;0.0;758.5;+0.0;45;; +Daugavgrīva;13.04 11:00;+9.0;+7.6;+8.4;0.0;4.2;7.8;20000;20000;0.0;758.0;+4.4;78;; +Daugavpils;13.04 11:00;+12.7;+11.5;+12.2;0.0;0.8;2.7;17160;20000;0.0;757.9;+1.7;48;0.0; +Dobele;13.04 11:00;+12.0;+11.6;+11.8;0.0;3.8;5.9;12440;20000;0.0;757.7;+6.2;69;0.0; +Gulbene;13.04 11:00;+13.2;+10.7;+11.9;0.0;4.0;5.9;5580;20000;0.0;759.1;+1.5;46;; +Jelgava;13.04 11:00;+11.9;+11.3;+11.7;0.0;3.4;4.7;19080;20000;0.0;757.3;+3.8;58;; +Kalnciems;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 11:00;+8.8;+6.6;+8.1;0.0;3.7;6.6;20000;20000;0.0;759.1;+3.2;78;0.0; +Kuldīga;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Lielpēči;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 11:00;+10.4;+9.5;+10.0;0.1;2.2;6.1;13210;19362;0.0;757.1;+8.0;87;0.0;lietus +Madona;13.04 11:00;+12.7;+10.7;+11.8;0.0;1.6;5.6;20000;20000;0.0;758.6;+0.8;45;; +Mērsrags;13.04 11:00;+9.7;+8.6;+9.2;0.0;3.0;6.4;10470;19397;0.0;758.2;+3.7;67;; +Pāvilosta;13.04 11:00;+10.6;+9.4;+10.0;0.0;2.3;4.2;14140;19128;0.0;757.5;+8.1;85;;lietus +Piedruja;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 11:00;+12.8;+10.5;+11.5;0.0;2.3;4.6;13960;19808;0.0;758.6;+1.4;47;; +Rēzekne;13.04 11:00;+12.2;+11.0;+11.6;0.0;4.0;6.4;20000;20000;0.0;758.6;-0.1;43;; +Rīga;13.04 11:00;+13.1;+12.6;+12.9;0.0;4.1;7.3;12280;15220;0.0;758.0;+1.4;46;0.0; +Rucava;13.04 11:00;+10.0;+9.4;+9.7;0.3;3.0;5.8;14390;19078;0.0;757.0;+7.9;90;;lietus +Rūjiena;13.04 11:00;+11.4;+10.6;+11.1;0.0;4.4;6.5;20000;20000;0.0;759.4;+2.1;53;; +Saldus;13.04 11:00;+11.3;+9.2;+10.2;0.0;2.1;4.0;3910;19617;0.0;757.6;+6.8;75;; +Sigulda;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 11:00;+12.6;+11.6;+12.2;0.0;3.0;7.6;20000;20000;0.0;757.7;+0.7;45;; +Skulte;13.04 11:00;+12.2;+11.5;+12.0;0.0;2.9;6.7;20000;20000;0.0;758.1;+2.0;50;; +Stende;13.04 11:00;+11.0;+10.0;+10.4;0.0;1.4;2.4;15970;19902;0.0;757.9;+7.7;81;; +Ventspils;13.04 11:00;+11.0;+9.7;+10.4;0.2;4.0;6.4;11160;19040;0.0;757.9;+7.8;81;;lietus +Vičaki;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 11:00;+12.3;+11.3;+11.9;0.0;3.4;5.9;16650;20000;0.0;758.1;+1.4;48;; +Zosēni;13.04 11:00;+11.9;+10.9;+11.3;0.0;3.5;6.2;20000;20000;0.0;758.8;+1.4;49;0.2; +Ainaži;13.04 10:00;+11.6;+11.2;+11.4;0.0;4.3;6.8;20000;20000;0.0;759.0;+2.5;54;; +Alūksne;13.04 10:00;+9.1;+8.4;+8.8;0.0;2.8;6.0;19760;20000;0.0;759.6;+0.2;54;0.0; +Bauska;13.04 10:00;+10.7;+9.7;+10.3;0.0;2.2;3.8;16310;19742;0.0;757.3;+5.4;70;; +Dagda;13.04 10:00;+11.1;+10.2;+10.5;0.0;4.1;6.3;20000;20000;0.0;758.2;-0.2;46;; +Daugavgrīva;13.04 10:00;+9.2;+7.3;+8.1;0.0;3.9;8.6;20000;20000;0.0;757.8;+4.5;80;; +Daugavpils;13.04 10:00;+11.6;+10.9;+11.2;0.0;1.0;5.4;16040;20000;0.0;757.8;+1.6;51;0.0; +Dobele;13.04 10:00;+11.7;+10.3;+10.8;0.0;2.0;3.7;18130;20000;0.0;757.5;+7.2;74;0.0; +Gulbene;13.04 10:00;+10.8;+9.7;+10.2;0.0;3.1;6.2;20000;20000;0.0;758.8;+0.9;51;; +Jelgava;13.04 10:00;+11.4;+10.0;+10.8;0.0;3.2;4.5;16840;20000;0.0;757.5;+5.1;66;; +Kalnciems;13.04 10:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 10:00;+11.4;+8.4;+10.5;0.0;1.9;6.4;1700;7695;0.0;758.8;+3.8;73;0.0; +Kuldīga;13.04 10:00;;;;0.0;;;;;0.0;;;;; +Lielpēči;13.04 10:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 10:00;+9.6;+9.2;+9.4;0.4;2.7;5.7;13430;19213;0.0;757.1;+7.9;90;0.0;lietus +Madona;13.04 10:00;+10.8;+9.7;+10.2;0.0;1.7;4.1;20000;20000;0.0;758.6;+1.2;52;; +Mērsrags;13.04 10:00;+11.5;+8.1;+9.9;0.0;2.1;5.4;20000;20000;0.0;758.5;+4.8;78;; +Pāvilosta;13.04 10:00;+9.5;+9.2;+9.4;0.5;1.9;7.2;12140;16727;0.0;757.3;+8.1;92;;lietus +Piedruja;13.04 10:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 10:00;+10.4;+9.4;+9.8;0.0;2.0;3.9;19980;20000;0.0;758.5;+1.9;56;; +Rēzekne;13.04 10:00;+11.1;+9.7;+10.4;0.0;3.1;5.8;7820;20000;0.0;758.5;+0.0;47;; +Rīga;13.04 10:00;+12.6;+11.9;+12.2;0.0;3.6;7.9;9680;13498;0.0;757.7;+2.4;50;0.0; +Rucava;13.04 10:00;+9.4;+9.0;+9.1;0.5;3.2;5.6;11670;18582;0.0;756.9;+7.8;90;;lietus +Rūjiena;13.04 10:00;+10.6;+9.9;+10.3;0.0;3.7;6.1;20000;20000;0.0;759.2;+1.9;55;; +Saldus;13.04 10:00;+9.2;+8.4;+8.8;0.0;3.0;4.7;16580;20000;0.0;757.6;+7.6;90;;lietus +Sigulda;13.04 10:00;;;;;;;;;0.0;;;;; +Sīļi;13.04 10:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 10:00;+12.1;+11.5;+11.8;0.0;3.1;6.0;20000;20000;0.0;757.6;+1.5;50;; +Skulte;13.04 10:00;+11.5;+10.6;+11.0;0.0;3.0;6.0;20000;20000;0.0;758.0;+1.9;52;; +Stende;13.04 10:00;+10.3;+9.2;+9.8;0.0;0.4;2.6;16800;20000;0.0;757.9;+6.4;77;;lietus +Ventspils;13.04 10:00;+9.8;+9.4;+9.6;0.2;3.6;7.6;13360;16132;0.0;758.2;+7.7;87;;lietus +Vičaki;13.04 10:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 10:00;+11.3;+9.5;+10.3;0.0;1.8;4.7;15400;20000;0.0;757.9;+1.9;53;; +Zosēni;13.04 10:00;+10.9;+9.7;+10.3;0.0;4.2;6.1;20000;20000;0.0;758.5;+0.4;49;0.1; diff --git a/data/20230413_1230.csv b/data/20230413_1230.csv new file mode 100644 index 0000000..09350c5 --- /dev/null +++ b/data/20230413_1230.csv @@ -0,0 +1,67 @@ +Pilsēta;Laiks;Stundas maksimālā temperatūra;Stundas minimālā temperatūra;Stundas vidējā temperatūra;Stundas nokrišņu daudzums;Vidējais vēja ātrums novērojumu termiņā (10 min. vidējais);Stundas maksimālās vēja brāzmas;Stundas minimālā redzamība;Stundas vidējā redzamība;Stundas vidējais sniega segas biezums;Atmosfēras spiediens jūras līmenī novērojuma termiņā (milibāros);Rasas punkta temperatūra novērojuma termiņā;Relatīvais gaisa mitrums novērojumu termiņā;Saules spīdēšanas ilgums;Laika parādības +Ainaži;13.04 12:00;+13.3;+12.4;+12.8;0.0;7.4;10.2;20000;20000;0.0;759.0;+2.7;49;; +Alūksne;13.04 12:00;+11.7;+10.8;+11.3;0.0;2.8;5.9;20000;20000;0.0;760.0;+0.6;47;0.2; +Bauska;13.04 12:00;+12.2;+11.2;+11.7;0.0;2.7;4.4;3400;19208;0.0;757.4;+4.5;60;; +Dagda;13.04 12:00;;;+11.8;;;;;20000;0.0;758.8;+0.4;45;; +Daugavgrīva;13.04 12:00;+11.8;+7.2;+8.6;0.0;2.8;6.0;20000;20000;0.0;757.8;+4.1;73;; +Daugavpils;13.04 12:00;+13.2;+12.5;+12.8;0.0;0.9;3.4;19860;20000;0.0;758.3;+3.2;51;0.0; +Dobele;13.04 12:00;+13.0;+11.8;+12.4;0.0;4.2;6.5;9760;20000;0.0;757.5;+6.4;65;0.0; +Gulbene;13.04 12:00;+14.3;+12.8;+13.6;0.0;5.2;7.6;19190;20000;0.0;759.2;+0.5;40;; +Jelgava;13.04 12:00;+12.4;+11.9;+12.2;0.0;4.2;5.8;19750;20000;0.0;757.6;+3.5;55;; +Kalnciems;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 12:00;+10.1;+6.6;+9.0;0.0;5.4;9.6;19470;20000;0.0;758.8;+2.1;63;0.0; +Kuldīga;13.04 12:00;;;;;;;;;0.0;;;;; +Lielpēči;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 12:00;+10.4;+10.1;+10.3;0.0;1.8;4.0;8230;20000;0.0;757.4;+7.9;85;0.0;lietus +Madona;13.04 12:00;+13.6;+12.5;+13.0;0.0;2.7;6.1;20000;20000;0.0;758.7;+0.9;42;; +Mērsrags;13.04 12:00;+9.7;+8.5;+9.1;0.0;2.5;6.8;15230;20000;0.0;758.3;+3.1;69;; +Pāvilosta;13.04 12:00;+11.2;+10.5;+10.8;0.0;1.4;4.0;19920;20000;0.0;757.6;+7.5;79;;smidzināšana +Piedruja;13.04 12:00;;;;;;;;;0.0;;;;; +Priekuļi;13.04 12:00;+14.0;+12.6;+13.2;0.0;2.6;5.6;11030;20000;0.0;758.8;+1.5;43;; +Rēzekne;13.04 12:00;+12.8;+12.2;+12.4;0.0;3.1;6.3;20000;20000;0.0;758.8;+0.6;44;; +Rīga;13.04 12:00;+13.3;+12.7;+12.9;0.0;2.6;6.6;12920;15360;0.0;757.9;+2.1;47;0.0; +Rucava;13.04 12:00;+9.7;+9.4;+9.5;0.0;2.4;4.4;16250;20000;0.0;757.2;+7.9;89;;lietus +Rūjiena;13.04 12:00;+12.2;+11.4;+11.6;0.0;4.5;7.1;20000;20000;0.0;759.5;+2.8;53;; +Saldus;13.04 12:00;+13.1;+11.1;+12.1;0.0;3.9;5.6;12180;20000;0.0;757.4;+5.1;59;; +Sigulda;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 12:00;+13.7;+12.4;+12.8;0.0;3.1;5.9;18970;20000;0.0;757.9;+1.8;46;; +Skulte;13.04 12:00;+13.0;+12.2;+12.5;0.0;3.3;5.6;19950;20000;0.0;758.3;+2.2;48;; +Stende;13.04 12:00;+12.3;+10.8;+11.7;0.0;3.8;7.0;11460;19203;0.0;758.2;+6.8;72;; +Ventspils;13.04 12:00;+11.6;+11.0;+11.3;0.0;2.2;5.5;13230;19822;0.0;757.9;+7.4;76;; +Vičaki;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 12:00;+13.4;+12.4;+13.2;0.0;2.4;5.7;17270;20000;0.0;758.2;+1.3;44;; +Zosēni;13.04 12:00;+13.6;+11.6;+12.6;0.0;3.5;6.2;20000;20000;0.0;758.7;+0.6;42;0.3; +Ainaži;13.04 11:00;+12.3;+11.5;+11.8;0.0;5.6;7.9;7030;20000;0.0;759.0;+2.1;50;; +Alūksne;13.04 11:00;+10.8;+9.1;+9.7;0.0;3.1;6.4;20000;20000;0.0;759.8;+0.7;50;0.5; +Bauska;13.04 11:00;+11.1;+10.7;+10.9;0.0;2.9;4.5;20000;20000;0.0;757.4;+5.1;67;; +Dagda;13.04 11:00;+11.6;+11.1;+11.3;0.0;2.5;7.0;20000;20000;0.0;758.5;+0.0;45;; +Daugavgrīva;13.04 11:00;+9.0;+7.6;+8.4;0.0;4.2;7.8;20000;20000;0.0;758.0;+4.4;78;; +Daugavpils;13.04 11:00;+12.7;+11.5;+12.2;0.0;0.8;2.7;17160;20000;0.0;757.9;+1.7;48;0.0; +Dobele;13.04 11:00;+12.0;+11.6;+11.8;0.0;3.8;5.9;12440;20000;0.0;757.7;+6.2;69;0.0; +Gulbene;13.04 11:00;+13.2;+10.7;+11.9;0.0;4.0;5.9;5580;20000;0.0;759.1;+1.5;46;; +Jelgava;13.04 11:00;+11.9;+11.3;+11.7;0.0;3.4;4.7;19080;20000;0.0;757.3;+3.8;58;; +Kalnciems;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 11:00;+8.8;+6.6;+8.1;0.0;3.7;6.6;20000;20000;0.0;759.1;+3.2;78;0.0; +Kuldīga;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Lielpēči;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 11:00;+10.4;+9.5;+10.0;0.1;2.2;6.1;13210;19362;0.0;757.1;+8.0;87;0.0;lietus +Madona;13.04 11:00;+12.7;+10.7;+11.8;0.0;1.6;5.6;20000;20000;0.0;758.6;+0.8;45;; +Mērsrags;13.04 11:00;+9.7;+8.6;+9.2;0.0;3.0;6.4;10470;19397;0.0;758.2;+3.7;67;; +Pāvilosta;13.04 11:00;+10.6;+9.4;+10.0;0.0;2.3;4.2;14140;19128;0.0;757.5;+8.1;85;;lietus; smidzināšana +Piedruja;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 11:00;+12.8;+10.5;+11.5;0.0;2.3;4.6;13960;19808;0.0;758.6;+1.4;47;; +Rēzekne;13.04 11:00;+12.2;+11.0;+11.6;0.0;4.0;6.4;20000;20000;0.0;758.6;-0.1;43;; +Rīga;13.04 11:00;+13.1;+12.6;+12.9;0.0;4.1;7.3;12280;15220;0.0;758.0;+1.4;46;0.0; +Rucava;13.04 11:00;+10.0;+9.4;+9.7;0.3;3.0;5.8;14390;19078;0.0;757.0;+7.9;90;;lietus +Rūjiena;13.04 11:00;+11.4;+10.6;+11.1;0.0;4.4;6.5;20000;20000;0.0;759.4;+2.1;53;; +Saldus;13.04 11:00;+11.3;+9.2;+10.2;0.0;2.1;4.0;3910;19617;0.0;757.6;+6.8;75;; +Sigulda;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 11:00;+12.6;+11.6;+12.2;0.0;3.0;7.6;20000;20000;0.0;757.7;+0.7;45;; +Skulte;13.04 11:00;+12.2;+11.5;+12.0;0.0;2.9;6.7;20000;20000;0.0;758.1;+2.0;50;; +Stende;13.04 11:00;+11.0;+10.0;+10.4;0.0;1.4;2.4;15970;19902;0.0;757.9;+7.7;81;; +Ventspils;13.04 11:00;+11.0;+9.7;+10.4;0.2;4.0;6.4;11160;19040;0.0;757.9;+7.8;81;;lietus +Vičaki;13.04 11:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 11:00;+12.3;+11.3;+11.9;0.0;3.4;5.9;16650;20000;0.0;758.1;+1.4;48;; +Zosēni;13.04 11:00;+11.9;+10.9;+11.3;0.0;3.5;6.2;20000;20000;0.0;758.8;+1.4;49;0.2; diff --git a/data/20230413_1330.csv b/data/20230413_1330.csv new file mode 100644 index 0000000..07f3741 --- /dev/null +++ b/data/20230413_1330.csv @@ -0,0 +1,67 @@ +Pilsēta;Laiks;Stundas maksimālā temperatūra;Stundas minimālā temperatūra;Stundas vidējā temperatūra;Stundas nokrišņu daudzums;Vidējais vēja ātrums novērojumu termiņā (10 min. vidējais);Stundas maksimālās vēja brāzmas;Stundas minimālā redzamība;Stundas vidējā redzamība;Stundas vidējais sniega segas biezums;Atmosfēras spiediens jūras līmenī novērojuma termiņā (milibāros);Rasas punkta temperatūra novērojuma termiņā;Relatīvais gaisa mitrums novērojumu termiņā;Saules spīdēšanas ilgums;Laika parādības +Ainaži;13.04 13:00;+13.5;+13.1;+13.3;0.0;7.4;10.5;20000;20000;0.0;759.3;+2.3;47;; +Alūksne;13.04 13:00;+13.7;+11.6;+12.8;0.0;3.6;6.7;18890;20000;0.0;760.0;+1.1;43;0.9; +Bauska;13.04 13:00;+13.6;+12.1;+12.9;0.0;4.2;6.9;9850;20000;0.0;757.8;+3.7;52;; +Dagda;13.04 13:00;+12.7;+11.9;+12.2;0.0;2.5;4.9;10230;20000;0.0;758.9;+0.7;44;; +Daugavgrīva;13.04 13:00;+9.3;+8.2;+8.8;0.0;4.4;6.5;20000;20000;0.0;757.8;+4.2;73;; +Daugavpils;13.04 13:00;+13.5;+12.5;+13.0;0.0;1.2;5.8;16150;20000;0.0;758.5;+3.4;51;0.0; +Dobele;13.04 13:00;+14.3;+12.6;+13.4;0.0;2.1;5.9;4360;19902;0.0;757.6;+5.3;55;0.0; +Gulbene;13.04 13:00;+15.9;+14.0;+14.7;0.0;4.6;7.8;16280;20000;0.0;759.1;+1.1;37;; +Jelgava;13.04 13:00;+13.1;+12.4;+12.8;0.0;3.4;5.4;18960;20000;0.0;757.9;+4.1;55;; +Kalnciems;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 13:00;+9.1;+6.7;+7.9;0.0;6.0;10.2;17930;20000;0.0;758.8;+2.8;71;0.3; +Kuldīga;13.04 13:00;;;;;;;;;0.0;;;;; +Lielpēči;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 13:00;+11.6;+10.4;+10.9;0.0;2.8;4.9;10300;20000;0.0;757.1;+7.8;78;0.0; +Madona;13.04 13:00;+15.4;+13.4;+14.6;0.0;2.5;7.2;20000;20000;0.0;758.7;+0.1;36;; +Mērsrags;13.04 13:00;+9.0;+7.7;+8.2;0.0;2.7;7.0;20000;20000;0.0;758.5;+3.7;74;; +Pāvilosta;13.04 13:00;+11.9;+11.1;+11.5;0.0;1.9;4.2;18320;20000;0.0;757.6;+7.3;74;; +Piedruja;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 13:00;+15.0;+13.6;+14.1;0.0;3.3;7.3;17010;20000;0.0;758.8;+2.1;42;; +Rēzekne;13.04 13:00;+13.8;+12.6;+13.3;0.0;4.2;7.2;10200;20000;0.0;759.1;+0.0;39;; +Rīga;13.04 13:00;+14.3;+13.3;+13.8;0.0;2.3;5.9;12470;14715;0.0;757.6;+2.1;44;0.0; +Rucava;13.04 13:00;+11.5;+9.8;+10.4;0.0;3.0;4.1;17110;20000;0.0;756.9;+8.3;81;; +Rūjiena;13.04 13:00;+13.7;+12.2;+13.0;0.0;5.7;8.6;16510;20000;0.0;759.7;+2.8;48;; +Saldus;13.04 13:00;+13.5;+12.3;+12.9;0.0;5.8;8.9;6420;20000;0.0;757.3;+5.4;61;; +Sigulda;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 13:00;+14.5;+13.3;+13.9;0.0;3.6;7.4;12870;20000;0.0;758.0;+2.7;46;; +Skulte;13.04 13:00;+14.4;+13.0;+13.7;0.0;3.2;7.4;18110;20000;0.0;758.2;+2.8;46;; +Stende;13.04 13:00;+12.1;+10.8;+11.4;0.0;4.1;7.7;19110;20000;0.0;758.2;+4.6;61;; +Ventspils;13.04 13:00;+12.1;+8.9;+11.0;0.0;2.9;4.0;18780;20000;0.0;758.3;+6.4;85;; +Vičaki;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 13:00;+13.8;+13.1;+13.4;0.0;2.9;6.2;7440;19287;0.0;758.6;+1.1;44;; +Zosēni;13.04 13:00;+14.4;+13.3;+13.7;0.0;4.4;8.5;20000;20000;0.0;758.6;+0.8;40;0.1; +Ainaži;13.04 12:00;+13.3;+12.4;+12.8;0.0;7.4;10.2;20000;20000;0.0;759.0;+2.7;49;; +Alūksne;13.04 12:00;+11.7;+10.8;+11.3;0.0;2.8;5.9;20000;20000;0.0;760.0;+0.6;47;0.2; +Bauska;13.04 12:00;+12.2;+11.2;+11.7;0.0;2.7;4.4;3400;19208;0.0;757.4;+4.5;60;; +Dagda;13.04 12:00;;;+11.8;;;;;20000;0.0;758.8;+0.4;45;; +Daugavgrīva;13.04 12:00;+11.8;+7.2;+8.6;0.0;2.8;6.0;20000;20000;0.0;757.8;+4.1;73;; +Daugavpils;13.04 12:00;+13.2;+12.5;+12.8;0.0;0.9;3.4;19860;20000;0.0;758.3;+3.2;51;0.0; +Dobele;13.04 12:00;+13.0;+11.8;+12.4;0.0;4.2;6.5;9760;20000;0.0;757.5;+6.4;65;0.0; +Gulbene;13.04 12:00;+14.3;+12.8;+13.6;0.0;5.2;7.6;19190;20000;0.0;759.2;+0.5;40;; +Jelgava;13.04 12:00;+12.4;+11.9;+12.2;0.0;4.2;5.8;19750;20000;0.0;757.6;+3.5;55;; +Kalnciems;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 12:00;+10.1;+6.6;+9.0;0.0;5.4;9.6;19470;20000;0.0;758.8;+2.1;63;0.0; +Kuldīga;13.04 12:00;;;;;;;;;0.0;;;;; +Lielpēči;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 12:00;+10.4;+10.1;+10.3;0.0;1.8;4.0;8230;20000;0.0;757.4;+7.9;85;0.0;lietus +Madona;13.04 12:00;+13.6;+12.5;+13.0;0.0;2.7;6.1;20000;20000;0.0;758.7;+0.9;42;; +Mērsrags;13.04 12:00;+9.7;+8.5;+9.1;0.0;2.5;6.8;15230;20000;0.0;758.3;+3.1;69;; +Pāvilosta;13.04 12:00;+11.2;+10.5;+10.8;0.0;1.4;4.0;19920;20000;0.0;757.6;+7.5;79;;smidzināšana +Piedruja;13.04 12:00;;;;;;;;;0.0;;;;; +Priekuļi;13.04 12:00;+14.0;+12.6;+13.2;0.0;2.6;5.6;11030;20000;0.0;758.8;+1.5;43;; +Rēzekne;13.04 12:00;+12.8;+12.2;+12.4;0.0;3.1;6.3;20000;20000;0.0;758.8;+0.6;44;; +Rīga;13.04 12:00;+13.3;+12.7;+12.9;0.0;2.6;6.6;12920;15360;0.0;757.9;+2.1;47;0.0; +Rucava;13.04 12:00;+9.7;+9.4;+9.5;0.0;2.4;4.4;16250;20000;0.0;757.2;+7.9;89;;lietus +Rūjiena;13.04 12:00;+12.2;+11.4;+11.6;0.0;4.5;7.1;20000;20000;0.0;759.5;+2.8;53;; +Saldus;13.04 12:00;+13.1;+11.1;+12.1;0.0;3.9;5.6;12180;20000;0.0;757.4;+5.1;59;; +Sigulda;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 12:00;+13.7;+12.4;+12.8;0.0;3.1;5.9;18970;20000;0.0;757.9;+1.8;46;; +Skulte;13.04 12:00;+13.0;+12.2;+12.5;0.0;3.3;5.6;19950;20000;0.0;758.3;+2.2;48;; +Stende;13.04 12:00;+12.3;+10.8;+11.7;0.0;3.8;7.0;11460;19203;0.0;758.2;+6.8;72;; +Ventspils;13.04 12:00;+11.6;+11.0;+11.3;0.0;2.2;5.5;13230;19822;0.0;757.9;+7.4;76;;lietus; smidzināšana +Vičaki;13.04 12:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 12:00;+13.4;+12.4;+13.2;0.0;2.4;5.7;17270;20000;0.0;758.2;+1.3;44;; +Zosēni;13.04 12:00;+13.6;+11.6;+12.6;0.0;3.5;6.2;20000;20000;0.0;758.7;+0.6;42;0.3; diff --git a/data/20230413_1430.csv b/data/20230413_1430.csv new file mode 100644 index 0000000..997a3fe --- /dev/null +++ b/data/20230413_1430.csv @@ -0,0 +1,66 @@ +Pilsēta;Laiks;Stundas maksimālā temperatūra;Stundas minimālā temperatūra;Stundas vidējā temperatūra;Stundas nokrišņu daudzums;Vidējais vēja ātrums novērojumu termiņā (10 min. vidējais);Stundas maksimālās vēja brāzmas;Stundas minimālā redzamība;Stundas vidējā redzamība;Stundas vidējais sniega segas biezums;Atmosfēras spiediens jūras līmenī novērojuma termiņā (milibāros);Rasas punkta temperatūra novērojuma termiņā;Relatīvais gaisa mitrums novērojumu termiņā;Saules spīdēšanas ilgums;Laika parādības +Ainaži;13.04 14:00;+14.0;+13.5;+13.7;0.0;7.0;10.2;20000;20000;0.0;759.4;+2.6;47;; +Alūksne;13.04 14:00;+15.4;+13.4;+14.7;0.0;4.1;8.5;19990;20000;0.0;759.9;-0.9;33;0.9; +Bauska;13.04 14:00;+14.0;+13.5;+13.8;0.0;3.4;5.8;17520;20000;0.0;758.2;+4.8;55;; +Dagda;13.04 14:00;+13.9;+12.7;+13.2;0.0;1.5;3.8;8820;20000;0.0;758.8;+0.4;40;; +Daugavgrīva;13.04 14:00;+9.4;+8.7;+9.0;0.0;3.2;5.3;20000;20000;0.0;757.9;+5.1;78;; +Daugavpils;13.04 14:00;+14.9;+13.4;+14.3;0.0;2.2;6.4;20000;20000;0.0;758.5;+2.2;43;0.2; +Dobele;13.04 14:00;+15.2;+13.8;+14.4;0.0;6.2;9.4;19840;20000;0.0;757.9;+3.8;51;0.0; +Gulbene;13.04 14:00;+16.5;+15.4;+16.1;0.0;5.6;10.8;5870;18255;0.0;759.2;-0.5;32;; +Jelgava;13.04 14:00;+14.4;+13.0;+13.7;0.0;3.1;5.8;11030;20000;0.0;758.2;+4.8;53;; +Kolka;13.04 14:00;+8.1;+7.1;+7.5;0.0;6.1;10.7;15900;20000;0.0;758.6;+3.3;72;0.4; +Kuldīga;13.04 14:00;;;;;;;;;0.0;;;;; +Lielpēči;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 14:00;+14.3;+11.8;+13.0;0.0;2.1;6.5;7150;20000;0.0;757.1;+7.4;64;0.4; +Madona;13.04 14:00;+15.2;+14.2;+14.5;0.0;2.6;6.7;20000;20000;0.0;759.2;+0.4;38;; +Mērsrags;13.04 14:00;+10.1;+7.9;+9.0;0.0;3.8;6.6;9650;20000;0.0;758.3;+3.4;64;; +Pāvilosta;13.04 14:00;+13.9;+11.9;+12.7;0.0;1.5;3.0;19490;20000;0.0;757.5;+7.4;65;; +Piedruja;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 14:00;+15.4;+14.7;+14.9;0.0;3.9;8.0;15420;20000;0.0;759.0;+1.2;40;; +Rēzekne;13.04 14:00;+14.5;+13.8;+14.1;0.0;2.8;6.7;12190;20000;0.0;759.3;-0.4;37;; +Rīga;13.04 14:00;+16.4;+14.3;+15.3;;3.8;;12210;14697;0.0;757.9;+2.5;40;; +Rucava;13.04 14:00;+13.1;+11.5;+12.2;0.0;3.8;6.1;18690;20000;0.0;756.7;+8.4;75;; +Rūjiena;13.04 14:00;+14.4;+13.6;+14.0;0.0;6.3;8.6;17410;20000;0.0;759.9;+2.1;44;; +Saldus;13.04 14:00;+13.9;+12.6;+13.0;0.0;4.0;8.2;15550;20000;0.0;757.3;+4.3;53;; +Sigulda;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 14:00;+14.8;+13.8;+14.3;0.0;3.9;7.8;7540;16653;0.0;758.5;+2.0;43;; +Skulte;13.04 14:00;+16.4;+14.4;+15.1;0.0;3.5;7.5;18190;20000;0.0;758.2;+2.7;40;; +Stende;13.04 14:00;+13.1;+11.9;+12.6;0.0;3.8;8.1;8160;20000;0.0;757.8;+3.0;51;; +Ventspils;13.04 14:00;+9.3;+8.2;+8.7;0.0;4.9;6.1;18230;20000;0.0;758.2;+5.9;82;; +Vičaki;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 14:00;+13.6;+13.1;+13.3;0.0;2.6;5.8;6740;19942;0.0;759.1;+2.1;46;; +Zosēni;13.04 14:00;+15.5;+14.4;+15.1;0.0;5.3;9.7;20000;20000;0.0;759.1;+0.0;36;0.3; +Ainaži;13.04 13:00;+13.5;+13.1;+13.3;0.0;7.4;10.5;20000;20000;0.0;759.3;+2.3;47;; +Alūksne;13.04 13:00;+13.7;+11.6;+12.8;0.0;3.6;6.7;18890;20000;0.0;760.0;+1.1;43;0.9; +Bauska;13.04 13:00;+13.6;+12.1;+12.9;0.0;4.2;6.9;9850;20000;0.0;757.8;+3.7;52;; +Dagda;13.04 13:00;+12.7;+11.9;+12.2;0.0;2.5;4.9;10230;20000;0.0;758.9;+0.7;44;; +Daugavgrīva;13.04 13:00;+9.3;+8.2;+8.8;0.0;4.4;6.5;20000;20000;0.0;757.8;+4.2;73;; +Daugavpils;13.04 13:00;+13.5;+12.5;+13.0;0.0;1.2;5.8;16150;20000;0.0;758.5;+3.4;51;0.0;lietus +Dobele;13.04 13:00;+14.3;+12.6;+13.4;0.0;2.1;5.9;4360;19902;0.0;757.6;+5.3;55;0.0; +Gulbene;13.04 13:00;+15.9;+14.0;+14.7;0.0;4.6;7.8;16280;20000;0.0;759.1;+1.1;37;; +Jelgava;13.04 13:00;+13.1;+12.4;+12.8;0.0;3.4;5.4;18960;20000;0.0;757.9;+4.1;55;; +Kalnciems;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 13:00;+9.1;+6.7;+7.9;0.0;6.0;10.2;17930;20000;0.0;758.8;+2.8;71;0.3; +Kuldīga;13.04 13:00;;;;;;;;;0.0;;;;; +Lielpēči;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 13:00;+11.6;+10.4;+10.9;0.0;2.8;4.9;10300;20000;0.0;757.1;+7.8;78;0.0; +Madona;13.04 13:00;+15.4;+13.4;+14.6;0.0;2.5;7.2;20000;20000;0.0;758.7;+0.1;36;; +Mērsrags;13.04 13:00;+9.0;+7.7;+8.2;0.0;2.7;7.0;20000;20000;0.0;758.5;+3.7;74;; +Pāvilosta;13.04 13:00;+11.9;+11.1;+11.5;0.0;1.9;4.2;18320;20000;0.0;757.6;+7.3;74;; +Piedruja;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 13:00;+15.0;+13.6;+14.1;0.0;3.3;7.3;17010;20000;0.0;758.8;+2.1;42;; +Rēzekne;13.04 13:00;+13.8;+12.6;+13.3;0.0;4.2;7.2;10200;20000;0.0;759.1;+0.0;39;; +Rīga;13.04 13:00;+14.3;+13.3;+13.8;0.0;2.3;5.9;12470;14715;0.0;757.6;+2.1;44;0.0; +Rucava;13.04 13:00;+11.5;+9.8;+10.4;0.0;3.0;4.1;17110;20000;0.0;756.9;+8.3;81;; +Rūjiena;13.04 13:00;+13.7;+12.2;+13.0;0.0;5.7;8.6;16510;20000;0.0;759.7;+2.8;48;; +Saldus;13.04 13:00;+13.5;+12.3;+12.9;0.0;5.8;8.9;6420;20000;0.0;757.3;+5.4;61;; +Sigulda;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 13:00;+14.5;+13.3;+13.9;0.0;3.6;7.4;12870;20000;0.0;758.0;+2.7;46;; +Skulte;13.04 13:00;+14.4;+13.0;+13.7;0.0;3.2;7.4;18110;20000;0.0;758.2;+2.8;46;; +Stende;13.04 13:00;+12.1;+10.8;+11.4;0.0;4.1;7.7;19110;20000;0.0;758.2;+4.6;61;; +Ventspils;13.04 13:00;+12.1;+8.9;+11.0;0.0;2.9;4.0;18780;20000;0.0;758.3;+6.4;85;; +Vičaki;13.04 13:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 13:00;+13.8;+13.1;+13.4;0.0;2.9;6.2;7440;19287;0.0;758.6;+1.1;44;; +Zosēni;13.04 13:00;+14.4;+13.3;+13.7;0.0;4.4;8.5;20000;20000;0.0;758.6;+0.8;40;0.1; diff --git a/data/20230413_1530.csv b/data/20230413_1530.csv new file mode 100644 index 0000000..84cbcb3 --- /dev/null +++ b/data/20230413_1530.csv @@ -0,0 +1,66 @@ +Pilsēta;Laiks;Stundas maksimālā temperatūra;Stundas minimālā temperatūra;Stundas vidējā temperatūra;Stundas nokrišņu daudzums;Vidējais vēja ātrums novērojumu termiņā (10 min. vidējais);Stundas maksimālās vēja brāzmas;Stundas minimālā redzamība;Stundas vidējā redzamība;Stundas vidējais sniega segas biezums;Atmosfēras spiediens jūras līmenī novērojuma termiņā (milibāros);Rasas punkta temperatūra novērojuma termiņā;Relatīvais gaisa mitrums novērojumu termiņā;Saules spīdēšanas ilgums;Laika parādības +Ainaži;13.04 15:00;+15.5;+13.8;+14.5;0.0;6.0;10.5;20000;20000;0.0;759.3;+3.5;45;; +Alūksne;13.04 15:00;+15.9;+14.4;+15.2;0.0;4.5;9.9;15510;20000;0.0;759.9;-1.0;33;0.2; +Bauska;13.04 15:00;+14.1;+13.6;+13.8;0.0;6.2;10.2;10360;20000;0.0;758.4;+5.7;59;; +Dagda;13.04 15:00;+14.8;+13.9;+14.4;0.0;6.5;14.0;13660;20000;0.0;759.0;-1.5;34;; +Daugavgrīva;13.04 15:00;+16.6;+8.6;+12.2;0.0;3.8;7.2;14920;20000;0.0;758.1;+1.1;36;; +Daugavpils;13.04 15:00;+15.2;+13.5;+14.4;0.0;4.4;11.4;10090;20000;0.0;758.7;+1.4;44;0.0; +Dobele;13.04 15:00;+14.4;+13.5;+13.9;0.0;6.0;8.9;19060;20000;0.0;758.2;+5.0;56;0.0; +Gulbene;13.04 15:00;+16.8;+16.1;+16.4;0.0;6.1;10.0;13570;20000;0.0;759.3;-1.3;30;; +Jelgava;13.04 15:00;+14.5;+13.7;+14.1;0.0;3.2;6.0;8540;20000;0.0;758.4;+5.9;59;; +Kalnciems;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 15:00;+8.5;+7.0;+8.0;0.0;6.3;10.8;19260;20000;0.0;758.5;+3.4;71;1.0; +Kuldīga;13.04 15:00;;;;;;;;;0.0;;;;; +Lielpēči;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 15:00;+15.0;+13.6;+14.1;0.0;2.9;5.0;12580;20000;0.0;757.0;+6.3;60;0.4; +Madona;13.04 15:00;+14.7;+14.3;+14.5;0.0;3.0;6.2;11530;20000;0.0;759.4;+0.0;37;; +Mērsrags;13.04 15:00;+11.4;+9.1;+9.9;0.0;1.7;6.1;20000;20000;0.0;758.5;+3.7;60;; +Pāvilosta;13.04 15:00;+13.9;+12.3;+13.2;0.0;3.6;6.1;18310;20000;0.0;757.1;+6.9;66;; +Piedruja;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 15:00;+15.5;+14.7;+15.2;0.0;5.6;10.7;16260;20000;0.0;759.1;-0.6;34;; +Rēzekne;13.04 15:00;+15.0;+14.2;+14.6;0.0;5.6;9.6;20000;20000;0.0;759.2;-1.7;32;; +Rīga;13.04 15:00;+16.4;+16.0;+16.1;0.0;5.2;9.5;11300;13245;0.0;758.2;+2.0;39;0.0; +Rucava;13.04 15:00;+12.8;+12.4;+12.6;0.0;1.9;5.0;6800;20000;0.0;756.9;+8.2;75;; +Rūjiena;13.04 15:00;+15.5;+14.3;+14.8;0.0;5.9;8.5;7050;20000;0.0;759.7;+2.2;41;; +Saldus;13.04 15:00;+14.6;+13.7;+14.1;0.0;5.3;9.7;18100;20000;0.0;757.5;+4.5;54;; +Sigulda;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 15:00;+14.6;+14.0;+14.3;0.0;3.7;8.6;12630;20000;0.0;758.7;+2.6;45;; +Skulte;13.04 15:00;+17.4;+16.5;+17.1;0.0;5.1;9.3;17630;20000;0.0;758.4;+0.4;33;; +Stende;13.04 15:00;+13.6;+12.8;+13.2;0.0;4.4;6.9;3040;19208;0.0;758.0;+2.9;50;; +Ventspils;13.04 15:00;+11.3;+8.4;+9.7;0.0;4.6;8.0;8460;20000;0.0;757.8;+5.0;76;; +Vičaki;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 15:00;+14.2;+13.5;+13.8;0.0;3.3;7.7;5160;20000;0.0;759.0;-0.2;38;; +Zosēni;13.04 15:00;+15.0;+14.7;+14.8;0.0;4.3;9.4;20000;20000;0.0;759.2;-0.3;36;0.0; +Ainaži;13.04 14:00;+14.0;+13.5;+13.7;0.0;7.0;10.2;20000;20000;0.0;759.4;+2.6;47;; +Alūksne;13.04 14:00;+15.4;+13.4;+14.7;0.0;4.1;8.5;19990;20000;0.0;759.9;-0.9;33;0.9; +Bauska;13.04 14:00;+14.0;+13.5;+13.8;0.0;3.4;5.8;17520;20000;0.0;758.2;+4.8;55;; +Dagda;13.04 14:00;+13.9;+12.7;+13.2;0.0;1.5;3.8;8820;20000;0.0;758.8;+0.4;40;; +Daugavgrīva;13.04 14:00;+9.4;+8.7;+9.0;0.0;3.2;5.3;20000;20000;0.0;757.9;+5.1;78;; +Daugavpils;13.04 14:00;+14.9;+13.4;+14.3;0.0;2.2;6.4;20000;20000;0.0;758.5;+2.2;43;0.2; +Dobele;13.04 14:00;+15.2;+13.8;+14.4;0.0;6.2;9.4;19840;20000;0.0;757.9;+3.8;51;0.0; +Gulbene;13.04 14:00;+16.5;+15.4;+16.1;0.0;5.6;10.8;5870;18255;0.0;759.2;-0.5;32;; +Jelgava;13.04 14:00;+14.4;+13.0;+13.7;0.0;3.1;5.8;11030;20000;0.0;758.2;+4.8;53;; +Kolka;13.04 14:00;+8.1;+7.1;+7.5;0.0;6.1;10.7;15900;20000;0.0;758.6;+3.3;72;0.4; +Kuldīga;13.04 14:00;;;;;;;;;0.0;;;;; +Lielpēči;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 14:00;+14.3;+11.8;+13.0;0.0;2.1;6.5;7150;20000;0.0;757.1;+7.4;64;0.4; +Madona;13.04 14:00;+15.2;+14.2;+14.5;0.0;2.6;6.7;20000;20000;0.0;759.2;+0.4;38;; +Mērsrags;13.04 14:00;+10.1;+7.9;+9.0;0.0;3.8;6.6;9650;20000;0.0;758.3;+3.4;64;; +Pāvilosta;13.04 14:00;+13.9;+11.9;+12.7;0.0;1.5;3.0;19490;20000;0.0;757.5;+7.4;65;; +Piedruja;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 14:00;+15.4;+14.7;+14.9;0.0;3.9;8.0;15420;20000;0.0;759.0;+1.2;40;; +Rēzekne;13.04 14:00;+14.5;+13.8;+14.1;0.0;2.8;6.7;12190;20000;0.0;759.3;-0.4;37;; +Rīga;13.04 14:00;+16.4;+14.3;+15.3;;3.8;;12210;14697;0.0;757.9;+2.5;40;; +Rucava;13.04 14:00;+13.1;+11.5;+12.2;0.0;3.8;6.1;18690;20000;0.0;756.7;+8.4;75;; +Rūjiena;13.04 14:00;+14.4;+13.6;+14.0;0.0;6.3;8.6;17410;20000;0.0;759.9;+2.1;44;; +Saldus;13.04 14:00;+13.9;+12.6;+13.0;0.0;4.0;8.2;15550;20000;0.0;757.3;+4.3;53;; +Sigulda;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 14:00;+14.8;+13.8;+14.3;0.0;3.9;7.8;7540;16653;0.0;758.5;+2.0;43;; +Skulte;13.04 14:00;+16.4;+14.4;+15.1;0.0;3.5;7.5;18190;20000;0.0;758.2;+2.7;40;; +Stende;13.04 14:00;+13.1;+11.9;+12.6;0.0;3.8;8.1;8160;20000;0.0;757.8;+3.0;51;; +Ventspils;13.04 14:00;+9.3;+8.2;+8.7;0.0;4.9;6.1;18230;20000;0.0;758.2;+5.9;82;; +Vičaki;13.04 14:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 14:00;+13.6;+13.1;+13.3;0.0;2.6;5.8;6740;19942;0.0;759.1;+2.1;46;; +Zosēni;13.04 14:00;+15.5;+14.4;+15.1;0.0;5.3;9.7;20000;20000;0.0;759.1;+0.0;36;0.3; diff --git a/data/20230413_1630.csv b/data/20230413_1630.csv new file mode 100644 index 0000000..ec0ee12 --- /dev/null +++ b/data/20230413_1630.csv @@ -0,0 +1,67 @@ +Pilsēta;Laiks;Stundas maksimālā temperatūra;Stundas minimālā temperatūra;Stundas vidējā temperatūra;Stundas nokrišņu daudzums;Vidējais vēja ātrums novērojumu termiņā (10 min. vidējais);Stundas maksimālās vēja brāzmas;Stundas minimālā redzamība;Stundas vidējā redzamība;Stundas vidējais sniega segas biezums;Atmosfēras spiediens jūras līmenī novērojuma termiņā (milibāros);Rasas punkta temperatūra novērojuma termiņā;Relatīvais gaisa mitrums novērojumu termiņā;Saules spīdēšanas ilgums;Laika parādības +Ainaži;13.04 16:00;+15.9;+15.4;+15.8;0.0;7.5;11.7;20000;20000;0.0;759.4;+1.4;38;; +Alūksne;13.04 16:00;+15.4;+14.5;+15.0;0.0;3.7;8.5;19610;20000;0.0;760.0;-1.0;34;0.0; +Bauska;13.04 16:00;+13.9;+13.4;+13.7;0.0;3.8;7.1;17180;20000;0.0;758.3;+5.8;59;; +Dagda;13.04 16:00;+14.2;+12.7;+13.4;0.0;4.6;14.9;11910;20000;0.0;759.4;+0.0;41;; +Daugavgrīva;13.04 16:00;+16.7;+13.8;+15.5;0.0;3.9;7.4;19360;20000;0.0;758.4;+2.8;44;; +Daugavpils;13.04 16:00;+13.8;+13.3;+13.5;0.0;3.0;10.1;20000;20000;0.0;758.9;+2.0;46;0.0;lietus +Dobele;13.04 16:00;+13.7;+12.6;+13.2;0.0;3.9;9.2;20000;20000;0.0;758.5;+5.7;63;0.0; +Gulbene;13.04 16:00;+16.7;+15.9;+16.1;0.0;5.9;9.9;19340;20000;0.0;759.3;-0.9;32;; +Jelgava;13.04 16:00;+14.2;+13.7;+13.8;0.0;3.3;5.4;15160;20000;0.0;758.5;+5.8;59;; +Kalnciems;13.04 16:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 16:00;+8.7;+7.8;+8.2;0.0;2.9;9.7;9000;20000;0.0;758.8;+2.3;68;0.9; +Kuldīga;13.04 16:00;;;;0.0;;;;;0.0;;;;; +Lielpēči;13.04 16:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 16:00;+14.3;+13.9;+14.1;0.0;2.1;5.3;1090;17997;0.0;757.0;+6.2;60;0.0; +Madona;13.04 16:00;+14.9;+14.5;+14.7;0.0;2.6;5.5;9470;20000;0.0;759.4;+0.2;37;; +Mērsrags;13.04 16:00;+12.5;+10.6;+11.5;0.0;2.8;5.6;17540;20000;0.0;758.5;+3.6;59;; +Pāvilosta;13.04 16:00;+13.8;+9.3;+11.1;0.0;3.4;6.6;16060;20000;0.0;757.3;+6.0;76;; +Piedruja;13.04 16:00;;;;;;;;;0.0;;;;; +Priekuļi;13.04 16:00;+15.3;+14.8;+15.0;0.0;3.4;7.8;20000;20000;0.0;759.2;+0.2;37;; +Rēzekne;13.04 16:00;+15.2;+14.6;+14.9;0.0;5.9;14.2;20000;20000;0.0;759.3;-1.2;34;; +Rīga;13.04 16:00;+16.4;+15.8;+16.0;0.0;4.7;9.3;9930;12817;0.0;758.5;+2.0;39;0.2; +Rucava;13.04 16:00;+13.4;+12.6;+13.1;0.0;4.2;6.7;20000;20000;0.0;756.8;+5.7;62;; +Rūjiena;13.04 16:00;+15.7;+15.2;+15.4;0.1;5.4;10.3;15680;20000;0.0;759.7;+2.8;43;; +Saldus;13.04 16:00;+13.8;+12.4;+12.9;0.0;4.4;10.5;20000;20000;0.0;757.9;+4.5;59;; +Sigulda;13.04 16:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 16:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 16:00;+14.8;+14.1;+14.4;0.0;4.5;10.4;19650;20000;0.0;758.6;+1.1;41;; +Skulte;13.04 16:00;+17.2;+15.8;+16.5;0.0;4.8;11.7;12870;20000;0.0;759.0;+0.3;35;; +Stende;13.04 16:00;+13.7;+13.0;+13.5;0.0;4.6;7.9;19740;20000;0.0;758.0;+3.0;49;; +Ventspils;13.04 16:00;+14.6;+8.7;+10.5;0.0;6.6;9.1;17360;20000;0.0;757.6;+3.4;48;; +Vičaki;13.04 16:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 16:00;+14.3;+13.9;+14.0;0.0;3.0;8.4;5320;19065;0.0;759.0;+0.8;40;; +Zosēni;13.04 16:00;+14.9;+14.5;+14.7;0.0;3.5;8.3;20000;20000;0.0;759.1;-1.1;34;0.0; +Ainaži;13.04 15:00;+15.5;+13.8;+14.5;0.0;6.0;10.5;20000;20000;0.0;759.3;+3.5;45;; +Alūksne;13.04 15:00;+15.9;+14.4;+15.2;0.0;4.5;9.9;15510;20000;0.0;759.9;-1.0;33;0.2; +Bauska;13.04 15:00;+14.1;+13.6;+13.8;0.0;6.2;10.2;10360;20000;0.0;758.4;+5.7;59;; +Dagda;13.04 15:00;+14.8;+13.9;+14.4;0.0;6.5;14.0;13660;20000;0.0;759.0;-1.5;34;; +Daugavgrīva;13.04 15:00;+16.6;+8.6;+12.2;0.0;3.8;7.2;14920;20000;0.0;758.1;+1.1;36;; +Daugavpils;13.04 15:00;+15.2;+13.5;+14.4;0.0;4.4;11.4;10090;20000;0.0;758.7;+1.4;44;0.0; +Dobele;13.04 15:00;+14.4;+13.5;+13.9;0.0;6.0;8.9;19060;20000;0.0;758.2;+5.0;56;0.0; +Gulbene;13.04 15:00;+16.8;+16.1;+16.4;0.0;6.1;10.0;13570;20000;0.0;759.3;-1.3;30;; +Jelgava;13.04 15:00;+14.5;+13.7;+14.1;0.0;3.2;6.0;8540;20000;0.0;758.4;+5.9;59;; +Kalnciems;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Kolka;13.04 15:00;+8.5;+7.0;+8.0;0.0;6.3;10.8;19260;20000;0.0;758.5;+3.4;71;1.0; +Kuldīga;13.04 15:00;;;;;;;;;0.0;;;;; +Lielpēči;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Liepāja;13.04 15:00;+15.0;+13.6;+14.1;0.0;2.9;5.0;12580;20000;0.0;757.0;+6.3;60;0.4; +Madona;13.04 15:00;+14.7;+14.3;+14.5;0.0;3.0;6.2;11530;20000;0.0;759.4;+0.0;37;; +Mērsrags;13.04 15:00;+11.4;+9.1;+9.9;0.0;1.7;6.1;20000;20000;0.0;758.5;+3.7;60;; +Pāvilosta;13.04 15:00;+13.9;+12.3;+13.2;0.0;3.6;6.1;18310;20000;0.0;757.1;+6.9;66;; +Piedruja;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Priekuļi;13.04 15:00;+15.5;+14.7;+15.2;0.0;5.6;10.7;16260;20000;0.0;759.1;-0.6;34;; +Rēzekne;13.04 15:00;+15.0;+14.2;+14.6;0.0;5.6;9.6;20000;20000;0.0;759.2;-1.7;32;; +Rīga;13.04 15:00;+16.4;+16.0;+16.1;0.0;5.2;9.5;11300;13245;0.0;758.2;+2.0;39;0.0; +Rucava;13.04 15:00;+12.8;+12.4;+12.6;0.0;1.9;5.0;6800;20000;0.0;756.9;+8.2;75;; +Rūjiena;13.04 15:00;+15.5;+14.3;+14.8;0.0;5.9;8.5;7050;20000;0.0;759.7;+2.2;41;; +Saldus;13.04 15:00;+14.6;+13.7;+14.1;0.0;5.3;9.7;18100;20000;0.0;757.5;+4.5;54;; +Sigulda;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Sīļi;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Skrīveri;13.04 15:00;+14.6;+14.0;+14.3;0.0;3.7;8.6;12630;20000;0.0;758.7;+2.6;45;; +Skulte;13.04 15:00;+17.4;+16.5;+17.1;0.0;5.1;9.3;17630;20000;0.0;758.4;+0.4;33;; +Stende;13.04 15:00;+13.6;+12.8;+13.2;0.0;4.4;6.9;3040;19208;0.0;758.0;+2.9;50;; +Ventspils;13.04 15:00;+11.3;+8.4;+9.7;0.0;4.6;8.0;8460;20000;0.0;757.8;+5.0;76;; +Vičaki;13.04 15:00;;;;0.0;;;;;0.0;;;;; +Zīlāni;13.04 15:00;+14.2;+13.5;+13.8;0.0;3.3;7.7;5160;20000;0.0;759.0;-0.2;38;; +Zosēni;13.04 15:00;+15.0;+14.7;+14.8;0.0;4.3;9.4;20000;20000;0.0;759.2;-0.3;36;0.0; diff --git a/project/build.properties b/project/build.properties new file mode 100644 index 0000000..f344c14 --- /dev/null +++ b/project/build.properties @@ -0,0 +1 @@ +sbt.version = 1.8.2 diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..a1f73a1 --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,12 @@ + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + \ No newline at end of file diff --git a/src/main/scala/fetch/FetchData.scala b/src/main/scala/fetch/FetchData.scala new file mode 100644 index 0000000..a37daff --- /dev/null +++ b/src/main/scala/fetch/FetchData.scala @@ -0,0 +1,51 @@ +package fetch + +import cats.effect._ +import cats.implicits._ +import org.http4s._ +import org.http4s.blaze.client.BlazeClientBuilder +import org.http4s.client.Client +import org.http4s.headers.Authorization + +import com.typesafe.config.ConfigFactory + +import java.nio.file.{Files, Paths} +import scala.concurrent.ExecutionContext.global + +object FetchData extends IOApp.Simple { + private val config = ConfigFactory.load() + private val basicCredentials = BasicCredentials(config.getString("username"), config.getString("password")) + private val baseUrl = Uri.unsafeFromString(config.getString("url")) // 20220831_1330.csv +// private val baseUrl = Uri.unsafeFromString("https://jsonplaceholder.typicode.com/") // todos/1 + + def saveToFile(fileName: String, content: String): IO[Unit] = { + val path = Paths.get(s"data/$fileName") + IO(Files.writeString(path, content)).attempt.flatMap { + case Right(_) => IO(println(s"write: $fileName")) + case Left(error) => IO(println(s"Write file '$fileName' failed with error: ${error.getMessage}")) + } + } + + def makeRequest(client: Client[IO], url: Uri): IO[Unit] = { + val fileName = url.path.toString() + for { + request <- Request[IO](Method.GET, url) + .withHeaders(Authorization(basicCredentials)) + .pure[IO] + responseOrError <- client.expect[String](request).attempt + _ <- responseOrError match { + case Right(response) => saveToFile(fileName, response) + case Left(error) => IO(println(s"Request failed to url: $url with error: ${error.getMessage}")) + } + } yield () + } + + def run: IO[Unit] = { + val fileNames = FileName.generateLast5Hours() + // fileNames.foreach(println) + val urls = fileNames.map(baseUrl / _) + BlazeClientBuilder[IO](global).resource.use { client => + urls.traverse(url => makeRequest(client, url)) // urls.map(...).sequence + } + }.as(ExitCode.Success) +} \ No newline at end of file diff --git a/src/main/scala/fetch/FileName.scala b/src/main/scala/fetch/FileName.scala new file mode 100644 index 0000000..e5ba805 --- /dev/null +++ b/src/main/scala/fetch/FileName.scala @@ -0,0 +1,40 @@ +package fetch + +import java.time.format.DateTimeFormatter +import java.time.{LocalDateTime, Duration} + +object FileName { + private val interval = Duration.ofMinutes(30) + private val formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmm")s + + def generateLastHour(): List[String] = { + val now = LocalDateTime.now + generate(now.minusHours(1), now) + } + + def generateLast5Hours(): List[String] = { + val now = roundToInterval(LocalDateTime.now, false) + generate(now.minusHours(5), now) + } + + private def roundToInterval(time: LocalDateTime, roundUp: Boolean): LocalDateTime = { + val minutes = time.getMinute + val adjustment = if (roundUp) (interval.toMinutes - minutes % interval.toMinutes) % interval.toMinutes + else -minutes % interval.toMinutes + + time.plusMinutes(adjustment) + } + + // not sure either data are each 10 minutes or each 30 mins of hour + def generate(startTime: LocalDateTime, endTime: LocalDateTime): List[String] = { + val roundStartTime = roundToInterval(startTime, true) + val roundEndTime = roundToInterval(endTime, false) + + Iterator.iterate(roundStartTime) { time => + time.plus(interval) + }.takeWhile(!_.isAfter(roundEndTime)) + .filter(_.getMinute == 30) + .map(time => s"${formatter.format(time)}.csv") + .toList + } +} \ No newline at end of file diff --git a/src/main/scala/parse/MeteoData.scala b/src/main/scala/parse/MeteoData.scala new file mode 100644 index 0000000..cd4bd5e --- /dev/null +++ b/src/main/scala/parse/MeteoData.scala @@ -0,0 +1,94 @@ +package parse + +import java.time.LocalDateTime +import scala.reflect.runtime.universe.{termNames, typeOf} + + +case class WeatherStationData( + city: String, + timestamp: LocalDateTime, + meteo: MeteoData, + phenomena: List[String], + ) + +case class MeteoData( + tempMax: Option[Double], + tempMin: Option[Double], + tempAvg: Option[Double], + precipitation: Option[Double], + windSpeedAvg: Option[Double], + windGustMax: Option[Double], + visibilityMin: Option[Double], + visibilityAvg: Option[Double], + snowThicknessAvg: Option[Double], + atmPressure: Option[Double], + dewPoint: Option[Double], + airHumidity: Option[Double], + sunshineDuration: Option[Double] + ) + +object MeteoData { + def fromDoubles(data: List[Option[Double]]): Option[MeteoData] = data match { + case List( + tempMax, + tempMin, + tempAvg, + precipitation, + windSpeedAvg, + windGustMax, + visibilityMin, + visibilityAvg, + snowThicknessAvg, + atmPressure, + dewPoint, + airHumidity, + sunshineDuration + ) => Some(MeteoData( + tempMax, + tempMin, + tempAvg, + precipitation, + windSpeedAvg, + windGustMax, + visibilityMin, + visibilityAvg, + snowThicknessAvg, + atmPressure, + dewPoint, + airHumidity, + sunshineDuration, + )) + case _ => None + } + + def getCount: Int = { + val constructor = typeOf[MeteoData].decl(termNames.CONSTRUCTOR).asMethod + val paramCount = constructor.paramLists.flatten.size + paramCount + } + + def getKeys: List[String] = { + val constructor = typeOf[MeteoData].decl(termNames.CONSTRUCTOR).asMethod + constructor.paramLists.flatten.map(_.name.toString) + } +} + +//val cityList: List[String] = List("Ainaži", "Alūksne", "Bauska", "Dagda", "Daugavgrīva", "Daugavpils", "Dobele", "Gulbene", "Jelgava", "Kalnciems", "Kolka", "Kuldīga", "Lielpēči", "Liepāja", "Madona", "Mērsrags", "Pāvilosta", "Piedruja", "Priekuļi", "Rēzekne", "Rīga", "Rucava", "Rūjiena", "Saldus", "Sigulda", "Sīļi", "Skrīveri", "Skulte", "Stende", "Ventspils", "Vičaki", "Zīlāni", "Zosēni", "Ainaži", "Alūksne", "Bauska", "Dagda", "Daugavgrīva", "Daugavpils", "Dobele", "Gulbene", "Jelgava", "Kalnciems", "Kolka", "Kuldīga", "Lielpēči", "Liepāja", "Madona", "Mērsrags", "Pāvilosta", "Piedruja", "Priekuļi", "Rēzekne", "Rīga", "Rucava", "Rūjiena", "Saldus", "Sigulda", "Sīļi", "Skrīveri", "Skulte", "Stende", "Ventspils", "Vičaki", "Zīlāni", "Zosēni") + + +//Map( +// "tempMax" -> "Stundas maksimālā temperatūra", +// "tempMin" -> "Stundas minimālā temperatūra", +// "tempAvg" -> "Stundas vidējā temperatūra", +// "precipitation" -> "Stundas nokrišņu daudzums", +// "windSpeedAvg" -> "Vidējais vēja ātrums novērojumu termiņā (10 min. vidējais)", +// "windGustMax" -> "Stundas maksimālās vēja brāzmas", +// "visibilityMin" -> "Stundas minimālā redzamība", +// "visibilityAvg" -> "Stundas vidējā redzamība", +// "snowThicknessAvg" -> "Stundas vidējais sniega segas biezums", +// "atmPressure" -> "Atmosfēras spiediens jūras līmenī novērojuma termiņā (milibāros)", +// "dewPoint" -> "Rasas punkta temperatūra novērojuma termiņā", +// "airHumidity" -> "Relatīvais gaisa mitrums novērojumu termiņā", +// "sunshineDuration" -> "Saules spīdēšanas ilgums", +//// "weatherPhenomena" -> "Laika parādības", +//) diff --git a/src/main/scala/parse/Parser.scala b/src/main/scala/parse/Parser.scala new file mode 100644 index 0000000..92302f2 --- /dev/null +++ b/src/main/scala/parse/Parser.scala @@ -0,0 +1,89 @@ +package parse + +import java.io.File +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter +import scala.io.Source +import scala.util.Try + +object Parser { + val data_path = "/Users/guntissmaukstelis/sandbox/hello/data/" + + def fileToDateTime(file: File): LocalDateTime = { + val dateString = file.toString.split("/").last.split("\\.").head + val formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmm") + LocalDateTime.parse(dateString, formatter) + } + + def getFiles(path: String): List[File] = new File(path).listFiles.toList + + def getFilesInRange(start: LocalDateTime, end: LocalDateTime): List[File] = { + val fileMap = getFiles(data_path).map(file => fileToDateTime(file) -> file).toMap + fileMap + .filter { case (k, _) => + k.plusSeconds(1).isAfter(start) && k.minusSeconds(1).isBefore(end) + } + .map { case (_, v) => v }.toList + } + + // TODO I guess this should be wrapped in IO + def readFromFile(file: File): List[String] = { + val source = Source.fromFile(file) + val lineList = source.getLines.toList + source.close() + lineList.tail // remove header line + } + + def parseLine(line: String): Option[WeatherStationData] = { + val paramCount = MeteoData.getCount + + def parseTimestamp(timestampStr: String): Option[LocalDateTime] = { + val formatter = DateTimeFormatter.ofPattern("yyyyMM.dd HH:mm") + Try(LocalDateTime.parse(s"2023${timestampStr.trim}", formatter)).toEither match { + case Right(timestamp) => Some(timestamp) + case Left(_) => None + } + } + + def splitParts(parts: List[String]): Option[(String, String, List[String])] = { + parts.splitAt(2) match { + case (cityStr :: timestampStr :: Nil, rest) if rest.size >= paramCount => Some((cityStr, timestampStr, rest)) + case _ => None + } + } + + for { + (city, timestampStr, rest) <- splitParts(line.trim.split(";", -1).toList) + timestamp <- parseTimestamp(timestampStr) + (strList, meteoPhenomenaList) = rest.splitAt(paramCount) + meteoData <- MeteoData.fromDoubles(strList.map(_.toDoubleOption)) + phenomena <- Some(meteoPhenomenaList.map(_.trim)) + } yield WeatherStationData(city, timestamp, meteoData, phenomena) + } + + def readFromVariable(str: String): List[String] = str.split("\n").toList // Data.csv + + + def main(args: Array[String]): Unit = { + println("================ start parser") + + val formatter = DateTimeFormatter.ofPattern("yyyyMMdd_HHmm") + val start = LocalDateTime.parse("20230409_2200", formatter) + val end = LocalDateTime.parse("20230501_1230", formatter) + val files = getFilesInRange(start, end) + val weatherStationData = files + .flatMap(readFromFile) + .flatMap(parseLine) + + // weatherStationData.foreach(println) + + val liepajaWeather = weatherStationData.filter(_.city == "Liepāja") + val maxTempLiepaja = liepajaWeather.flatMap(_.meteo.tempMax).max + val minTempLiepaja = liepajaWeather.flatMap(_.meteo.tempMin).min + val avgTemps = liepajaWeather.flatMap(_.meteo.tempAvg) + val avgTempLiepaja = avgTemps.sum / avgTemps.size + println(s"Liepaja max: $maxTempLiepaja, min: $minTempLiepaja, avg: $avgTempLiepaja") + // liepaja.foreach(println) + + } +} \ No newline at end of file diff --git a/src/main/scala/server/Server.scala b/src/main/scala/server/Server.scala new file mode 100644 index 0000000..9dd3e28 --- /dev/null +++ b/src/main/scala/server/Server.scala @@ -0,0 +1,5 @@ +package server + +class Server { + // TODO proly BlazeServerBuilder which accepts requests from client and serves parsed data +}