-
Notifications
You must be signed in to change notification settings - Fork 3
Moduły
Moduły danych to poszczególne programy znajdujące się w katalogu modules/ pobierające konkretną informację ze źródła, zazwyczaj internetowego, przetwarzające ją i zwracające komunikat jako listę sampli do odtworzenia. Każdy plik modułu zawiera klasę będącą klasą podrzędną klasy SR0WXModule
, musi zawierać ona także funkcję get_data()
. Klasa jest konstruowana przez plik config.py, a poprzez konstruktor przekazywany jest jej moduł językowy (TODO) oraz jej parametry konfiguracyjne takie jak adres URL. Odbywa się to dla każdego modułu osobno, tutaj widać przykład:
# ----------------
# meteoalert_sq2ips
# ----------------
from meteoalert_sq2ips import MeteoAlertSq2ips
meteoalertsq2ips = MeteoAlertSq2ips(
language=lang,
service_url="https://meteo.imgw.pl/api/meteo/messages/v1/",
city_id=["2262"], # Gdynia
# start_message="ostrzezenia_meteorologiczne_i_hydrologiczne_imgw",
start_message="",
hydronames=["W_G_6_PM", "Z_G_22_PM"], # Gdynia i bałtyk
short_validity=True,
)
Jest to inicjalizacja modułu meteoalert_sq2ips
, przekazywany jest mu parametr language
, czyli instancja modułu językowego (TODO), service_url
czyli adres, z którego są pobierane dane, city_id czyli id miasta i inne.
Klasa jest konstruowana przez plik config.py
a potem importowana przez rdzeń, który uruchamia funkcję get_data()
i dalej przetwarza otrzymany komunikat. Opis konfiguracji poszczególnych modułów znajduje się w ich podstronach wypisanych tutaj().
Funkcja get_data()
zwraca komunikat w formie hasha:
{
"message":wiadomość,
"source":źródło
}
gdzie message to komunikat wygenerowany przez moduł a source to źródło danych np. IMGW, które jest odtwarzane na końcu komunikatu o ile zostanie ustawiony parametr read_sources_msg
w pliku config.py
.
W pliku config.py
ustawia się też które moduły mają być użyte za pomocą listy modułów.
Przyjeło się, że nazwy modułów składają się z dwóch części: nazwy i autora. W projekcie znajdują się na razie moduły autorstwa sq9atk i sq2ips.
Nazwa pliku modułu jest pisana małymi literami z _
jako spacjami np. time_sq2ips.py
, nazwa klasy modułu używa dużych liter bez spacji np. TimeSq2ips
natomiast instancje klas w pliku config.py
nazywa się tylko małymi literami np. timesq2ips
.
Moduł time_sq2ips.py
ma zwracać aktualną godzinę w formacie:
"raport_meteorologiczny z_godziny "
jego funkcja get_data()
sprawdza czas używając biblioteki datetime, np. 12:00, następnie konwertuje ją na słowa z użyciem modułu językowego np. dwónasta zero-zero. I tak zwracanym komunikatem modułu jest:
{
"message":"raport_meteorologiczny z_godziny dwunasta zero-zero",
"source":""
}
- activity_map - moduł wysyłający marker na mapę wx.vhf.com.pl
- time_sq2ips - prosty moduł podający godzinę
- meteoalert_sq2ips - ostrzeżenia meteorologiczne IMGW z meteo.imgw.pl
- antistorm_sq2ips - radar pogodowy z antistorm.eu
- meteostation_sq2ips - dane ze stacji meteo przez UDP
- meteo_yr_sq2ips - dane pogodowe z yr.no
- openweather_sq9atk - dane pogodowe z OpenWeatherMap
- meteo_sq9atk - Pogoda z pogoda.onet.pl
- imgw_podest_sq2ips - dane z wodowskazów o przekroczeniach stanów rzek z hydro.imgw.pl
- air_pollution_sq9atk - zanieczyszczenia powietrza z GIOŚ
- airly_sq9atk - zanieczyszczenia powietrza z Airly
- fires_sq2ips - informacja o stopniu zagrożenia pożarowego lasów z TRAX elektronik
- spaceweather_sq2ips - informacje o pogodzie kosmicznej z SWPC
- geo_magnetic_sq9atk - informacje o zaburzeniach geomagnetycznych z Meteofor
- propagation_sq9atk - informacje o propagacji z RigReference
- propagation_sq2ips - informacje o propagacji z Hamqsl
- vhf_tropo_sq9atk - informacje o propagacji troposferycznej z dxinfocentre
- radioactive_sq9atk - informacje o poziomie promieniowania jonizującego z Radioactive@Home
- radioactive_sq2ips - informacje o poziomie promieniowania jonizującego z Państwowej Agencji Atomistyki
- calendar_sq9atk - dane o wschodzie i zachodzie słońca z calendar.zoznam.sk
- calendar_sq2ips - dane o wschodzie i zachodzie słońca wyliczane offline z użyciem biblioteki ephem
- baltyk_sq2ips - moduł uruchamiany osobna z pliku konfiguracyjnego config_baltyk.py podający prognozę na obszary bałtyku z baltyk.imgw.pl