Ta Python skripta razčleni slovenske radarske podatke in zaznava nevihte na podlagi določenih lokacij. Uporabniki lahko vnesejo imena lokacij ali naslove, in če lokacija še ni v sistemu, jo lahko dodajo za prihodnjo uporabo.
Funkcionalnosti
- Prenos radarskih slik za zaznavanje neviht
- Preverjanje neviht na podlagi vrednosti pikslov v radarski sliki
- Shranjevanje in upravljanje lokacij v MySQL bazi podatkov
- Geokodiranje novih naslovov lokacij za pridobitev koordinat
- Prilagodljiva nastavitev polmera za zaznavanje neviht
- Beleženje zgodovinskih podatkov o padavinah za določene lokacije
Zahteve
Python 3.x z naslednjimi paketi:
argparse
requests
Pillow
pandas
numpy
geopy
Namestitev:
pip3 install -r requirements.txt
Uporaba
./bin/python3 radar_main.py [-h] [-a IME LOKACIJA POLMER] [-c IME] [-p IME]
Dodaj lokacijo
./bin/python3 radar_main.py -a "prijazno ime" "naslov" "polmer v km"
Zaženi neprekinjeno beleženje
./bin/python3 radar_main.py -p "ime 1" "ime 2"
Možnosti
-h, --help— Prikaži sporočilo pomoči-a, --add IME LOKACIJA POLMER— Dodaj novo lokacijo-c, --check IME— Preveri padavine za lokacijo-p, --periodic IME— Zaženi periodično beleženje vsakih 5 minut
Nastavitev MySQL baze
CREATE TABLE locations (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) UNIQUE NOT NULL,
location VARCHAR(100),
lat FLOAT,
lon FLOAT,
x FLOAT,
y FLOAT,
radius FLOAT,
radiuspx FLOAT
);
CREATE TABLE radar_precipitation (
id INT AUTO_INCREMENT PRIMARY KEY,
location_name VARCHAR(50),
precipitation FLOAT,
timestamp DATETIME,
FOREIGN KEY (location_name) REFERENCES locations(name)
);
Poverilnice
Uredite poverilnice baze podatkov v radar_main.py pri instanciranju razreda RadarApp:
db_host="localhost"
db_user="radar_user"
db_password="radar_password"
db_name="radar_db"
Kako deluje
- Prenos radarskih podatkov — pridobi najnovejšo sliko s slovenskega vremenskega servisa z uporabo
requests. - Analiza podatkov pikslov — piksli okoli določene lokacije se analizirajo za barvne vrednosti neviht.
- Upravljanje lokacij — lokacije se shranjujejo v CSV/MySQL. Nove lokacije se geokodirajo preko Nominatim.
- Zaznavanje neviht — če vrednosti pikslov padejo v območje barv neviht, se sproži opozorilo.
Občutljivost zaznavanja neviht
Občutljivost se nadzira z analizo barvnih vrednosti v radarski sliki. Vrednosti pikslov v določenem razponu (ki ustrezajo intenzivnosti nevihte) sprožijo opozorila.
Kaj je treba upoštevati
Prepričajte se, da datoteka locations.csv obstaja v istem imeniku. Shranjuje ime, koordinate in polmer za vsako lokacijo.
Primer locations.csv
name,location,lat,lon,x,y,radius,radiuspx
Ljubljana,"123 Main St, Ljubljana",46.0511,14.5051,123,456,1,2
Graf padavin
Podatki o padavinah v živo za Ljubljano: