← Nazaj na blog

Nevihta opozorilo — Slovenija

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.

GitHub repozitorij

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
Radarska slika Slovenije
Radarska slika Slovenije s padavinami

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

  1. Prenos radarskih podatkov — pridobi najnovejšo sliko s slovenskega vremenskega servisa z uporabo requests.
  2. Analiza podatkov pikslov — piksli okoli določene lokacije se analizirajo za barvne vrednosti neviht.
  3. Upravljanje lokacij — lokacije se shranjujejo v CSV/MySQL. Nove lokacije se geokodirajo preko Nominatim.
  4. 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: