Untitled notebook
Section
defmodule Pars do
def parsline(line) do
[datetime_str, type, val_str, id, name, cords] = String.split(line, ";")
[date, time] = datetime_str |> String.split("T")
time = time |> String.slice(0, 8)
date = date
|> String.split("-")
|> Enum.map(&String.to_integer/1)
|> List.to_tuple()
time = time
|> String.split(":")
|> Enum.map(&String.to_integer/1)
|> List.to_tuple()
val = val_str |> String.to_float()
cords = cords
|> String.split(",")
|> Enum.map(&String.to_float/1)
|> List.to_tuple()
%{id: String.to_integer(id), value: val, type: type, datet: {date, time}, name: name, cords: cords}
end
end
map = File.read!("D:\\nauka\\Programowanie-Erlang\\data\\AirlyData-ALL-50k.csv")
# map = File.read!("C:\\Users\\Admin\\studia\\Programowanie-Erlang\\data\\AirlyData-ALL-50k.csv")
|> String.trim()
|> String.split("\n")
|> Enum.map(&Pars.parsline/1)
map_uniq = map |> Enum.uniq_by(& &1.id)
Code.append_path("D:\\nauka\\Programowanie-Erlang\\pollution_app\\_build\\default\\lib\\pollution_app\\ebin")
# Code.append_path("C:\\Users\\Admin\\studia\\Programowanie-Erlang\\pollution_app\\_build\\default\\lib\\pollution_app\\ebin")
# Application.stop(:pollution_app)
Application.start(:pollution_app)
fn ->
map_uniq
|> Enum.map(fn x -> :pollution_gen_server.add_station(x.name <> " " <> Integer.to_string(x.id), x.cords) end)
end
|> :timer.tc
|> elem(0)
:pollution_gen_server.get_monitor()
fn ->
map
|> Enum.map(fn x -> :pollution_gen_server.add_value(x.name <> " " <> Integer.to_string(x.id), x.datet, x.type, x.value) end)
end
|> :timer.tc
|> elem(0)
:pollution_gen_server.get_monitor()
:pollution_gen_server.get_closest_stations("Polska, Kraków, Kielecka 9919")
:pollution_gen_server.get_daily_mean("PM1", {2024, 2, 10})
:pollution_gen_server.get_closest_stations("Polska, Kraków, Kielecka 9919")
:pollution_gen_server.get_closest_stations("Polska, Kraków, Generała Józefa Bema 11239")
fn -> :pollution_gen_server.get_station_min("Polska, Kraków, Studencka 9910", "PM10") end |> :timer.tc
fn -> :pollution_gen_server.get_daily_mean("PM25", {2024, 2, 10}) end |> :timer.tc