kopia lustrzana https://github.com/sq9atk/sr0wx
moduł informacje o propagacji
rodzic
3ab59ed813
commit
f702fcb526
Plik binarny nie jest wyświetlany.
|
@ -1,21 +1,53 @@
|
|||
<?php
|
||||
|
||||
|
||||
// TYLKO Z TEJ TABLICY GENEROWANE SĄ SAMPLE
|
||||
// URUCHOMIENIE W KONSOLI:
|
||||
// php index.php
|
||||
$slownik = array(
|
||||
array('lekkie zachmurzenie','lekkie_zachmurzenie'),
|
||||
array('słowa do przeczytania','nazwa_pliku_wynikowego'),
|
||||
);
|
||||
|
||||
|
||||
/// OPEN WEATHER MAP
|
||||
|
||||
// TABLICE Z SAMPLAMI DO MODUŁÓW
|
||||
|
||||
/// PROPAGACJA
|
||||
$slownikPropagacja = array(
|
||||
array('rigreferens','rigreference'),
|
||||
array('rigreferens kom','rigreference_com'),
|
||||
array('noaa','noaa'),
|
||||
|
||||
array('dzień ','dzien'),
|
||||
array('noc','noc'),
|
||||
|
||||
array('informacje o propagacji','informacje_o_propagacji'),
|
||||
array('pasma','pasma'),
|
||||
|
||||
array('warunki podwyższone','warunki_podwyzszone'),
|
||||
array('warunki normalne','warunki_normalne'),
|
||||
array('warunki obniżone','warunki_obnizone'),
|
||||
array('pasmo zamknięte','pasmo_zamkniete'),
|
||||
|
||||
array('160 metrów','160_metrow'),
|
||||
array('80 metrów','80_metrow'),
|
||||
array('40 metrów','40_metrow'),
|
||||
array('20 metrów','20_metrow'),
|
||||
array('10 metrów','10_metrow'),
|
||||
array('6 metrów','6_metrow'),
|
||||
);
|
||||
|
||||
|
||||
/// OPEN WEATHER MAP
|
||||
$slownikOpenWeathermap = array(
|
||||
array('ołpenłeder map','open_weather_map'),
|
||||
array('burza z lekkimi opadami deszczu'),
|
||||
array('burza z opadami deszczu'),
|
||||
array('burza z silnymi opadami deszczu'),
|
||||
array('burza z silnymi opadami deszczu'),
|
||||
array('niewielka burza'),
|
||||
array('burza'),
|
||||
array('silna burza'),
|
||||
array('przelotna burza'),
|
||||
array('przelotna burza'),
|
||||
array('burza z lekką mżawką','burza_z_lekka_mzawka'),
|
||||
array('burza z mżawką','burza_z_mzawka'),
|
||||
array('burza z silną mżawką','burza_z_silna_mzawka'),
|
||||
|
@ -31,10 +63,10 @@
|
|||
array('ulewa z mżawką','ulewa_z_mzawka'),
|
||||
|
||||
array('lekkie opady deszczu'),
|
||||
array('umiarkowane opady deszczu'),
|
||||
array('umiarkowane opady deszczu'),
|
||||
array('intensywne opady deszczu'),
|
||||
array('bardzo intensywne opady deszczu'),
|
||||
array('oberwanie chmury'),
|
||||
array('bardzo intensywne opady deszczu'),
|
||||
array('oberwanie chmury'),
|
||||
array('marznący deszcz','marznacy_deszcz'),
|
||||
array('lekka ulewa'),
|
||||
array('ulewa'),
|
||||
|
@ -54,7 +86,7 @@
|
|||
|
||||
array('zamglenia'),
|
||||
array('zadymienie'),
|
||||
array('mgła','mgla'),
|
||||
array('mgła','mgla'),
|
||||
array('kusz i piach','kurz_i_piach'),
|
||||
array('mgła','mgla'),
|
||||
array('piasek','piasek'),
|
||||
|
@ -73,7 +105,7 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
$slownikSDFSD = array(
|
||||
array('wiatr'),
|
||||
array('stacja pomiarowa'),
|
||||
|
@ -84,7 +116,7 @@
|
|||
array('pył zawieszony Pe eM 2.5','pyl__zawieszony_pm25'),
|
||||
array('dwutlenek siarki','dwutlenek_siarki'),
|
||||
array('ozon','ozon'),
|
||||
|
||||
|
||||
array('Wrocław - Bartnicza','wrocl_aw___bartnicza'),
|
||||
array('Wrocław - Korzeniowskiego','wrocl_aw___korzeniowskiego'),
|
||||
array('Wrocław - Wiśniowa','wrocl_aw___wis_niowa'),
|
||||
|
@ -269,11 +301,11 @@
|
|||
|
||||
array('mikrosjiwerta'),
|
||||
array('na godzinę'),
|
||||
|
||||
|
||||
array('setna'),
|
||||
array('setne'),
|
||||
array('setnych'),
|
||||
|
||||
|
||||
array('dziesiąta'),
|
||||
array('dziesiąte'),
|
||||
array('dziesiątych'),
|
||||
|
@ -308,18 +340,18 @@
|
|||
|
||||
array('mikrosjiwerta'),
|
||||
array('na godzinę'),
|
||||
|
||||
|
||||
array('setna'),
|
||||
array('setne'),
|
||||
array('setnych'),
|
||||
|
||||
|
||||
array('dziesiąta'),
|
||||
array('dziesiąte'),
|
||||
array('dziesiątych'),
|
||||
|
||||
|
||||
|
||||
|
||||
#geomagnetic sq9atk
|
||||
array('sytuacja geomagnetyczna w regionie'),
|
||||
array('sytuacja geomagnetyczna w regionie'),
|
||||
|
||||
array('po jutrze'),
|
||||
|
||||
|
@ -345,7 +377,7 @@
|
|||
array('niezauważalne'),
|
||||
array('znikome'),
|
||||
array('lekkie'),
|
||||
array('podwyższone'),
|
||||
array('podwyższone'),
|
||||
array('umiarkowane'),
|
||||
array('duże'),
|
||||
array('bardzo duże'),
|
||||
|
|
40
config.py
40
config.py
|
@ -30,7 +30,7 @@ log_handlers = [{
|
|||
'backupCount': 30,
|
||||
'delay': True,
|
||||
'utc': True,
|
||||
}
|
||||
}
|
||||
}]
|
||||
|
||||
serial_port = '/dev/ttyS0'
|
||||
|
@ -53,7 +53,7 @@ from activity_map import ActivityMap
|
|||
activitymap = ActivityMap(
|
||||
service_url="http://wx.ostol.pl/map_requests?base=",
|
||||
callsign="TEST",
|
||||
latitude=54.655245,
|
||||
latitude=54.655245,
|
||||
longitude=19.268097,
|
||||
hour_quarter=10,
|
||||
above_sea_level=225,
|
||||
|
@ -70,7 +70,7 @@ activitymap = ActivityMap(
|
|||
from openweather_sq9atk import OpenWeatherSq9atk
|
||||
openweathersq9atk = OpenWeatherSq9atk(
|
||||
language = pl_google,
|
||||
api_key = 'ee78911a0fb560b58144230f46e0d4b2',
|
||||
api_key = 'ee78911a0fb560b58144230f46e0d4b2',
|
||||
lat = 50,
|
||||
lon = 20,
|
||||
service_url = 'http://api.openweathermap.org/data/2.5/'
|
||||
|
@ -289,14 +289,14 @@ from air_pollution_sq9atk import AirPollutionSq9atk
|
|||
airpollutionsq9atk = AirPollutionSq9atk(
|
||||
language=pl_google,
|
||||
service_url="http://api.gios.gov.pl/pjp-api/rest/",
|
||||
station_id = 402,
|
||||
station_id = 402,
|
||||
|
||||
# LISTA STACJI Z NUMERAMI Z CAŁEJ POLSKI
|
||||
# http://api.gios.gov.pl/pjp-api/rest/station/findAll
|
||||
|
||||
|
||||
# poniższe TYLKO DLA KRAKOWA!!!!!
|
||||
# do station_id wpada co 20 minut inna cyfra z przedziału 0,1,2
|
||||
# dzięki czemu za każdym razem wybieramy inną stację pomiarową
|
||||
# dzięki czemu za każdym razem wybieramy inną stację pomiarową
|
||||
# station_id = 400 + (int(datetime.now().strftime('%M')))/20,
|
||||
# 400 Kraków, Aleja Krasińskiego
|
||||
# 401 Kraków, ul. Bujaka
|
||||
|
@ -342,6 +342,17 @@ radioactivesq9atk = RadioactiveSq9atk(
|
|||
## więcej czujników na stronie http://radioactiveathome.org/map/
|
||||
)
|
||||
|
||||
|
||||
# ---------------
|
||||
# propagation_sq9atk
|
||||
# ---------------
|
||||
from propagation_sq9atk import PropagationSq9atk
|
||||
propagationsq9atk = PropagationSq9atk(
|
||||
language=pl_google,
|
||||
service_url="https://rigreference.com/solar/img/tall",
|
||||
)
|
||||
|
||||
|
||||
# ---------------
|
||||
# calendar_sq9atk
|
||||
# ---------------
|
||||
|
@ -372,13 +383,14 @@ calendarsq9atk = CalendarSq9atk(
|
|||
# WŁĄCZONE MODUŁY
|
||||
modules = [
|
||||
activitymap,
|
||||
#openweathersq9atk,
|
||||
meteosq9atk, # ten moduł jest zastąpiony przez openweathersq9atk
|
||||
#meteoalarmsq9atk,
|
||||
#imgwpodestsq9atk,
|
||||
#airpollutionsq9atk,
|
||||
#geomagneticsq9atk,
|
||||
#radioactivesq9atk,
|
||||
#calendarsq9atk,
|
||||
openweathersq9atk,
|
||||
#meteosq9atk, # pogoda z onet-u, ten moduł jest zastąpiony przez openweathersq9atk
|
||||
meteoalarmsq9atk,
|
||||
imgwpodestsq9atk,
|
||||
airpollutionsq9atk,
|
||||
propagationsq9atk,
|
||||
geomagneticsq9atk,
|
||||
radioactivesq9atk,
|
||||
calendarsq9atk,
|
||||
]
|
||||
|
||||
|
|
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
Plik binarny nie jest wyświetlany.
|
@ -0,0 +1,109 @@
|
|||
#!/usr/bin/python -tt
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import urllib2
|
||||
import logging
|
||||
import socket
|
||||
|
||||
from PIL import Image
|
||||
from pprint import pprint
|
||||
|
||||
from sr0wx_module import SR0WXModule
|
||||
|
||||
class PropagationSq9atk(SR0WXModule):
|
||||
"""Klasa pobierająca dane kalendarzowe"""
|
||||
|
||||
def __init__(self,language,service_url):
|
||||
self.__service_url = service_url
|
||||
self.__language = language
|
||||
self.__logger = logging.getLogger(__name__)
|
||||
self.__pixels = {
|
||||
# niepotrzebne pasma można zaremowac znakiem '#'
|
||||
160 : {'day' :{'x':50, 'y':60}, 'night':{'x':100, 'y':60}},
|
||||
80 : {'day' :{'x':50, 'y':95}, 'night':{'x':100, 'y':95}},
|
||||
40 : {'day' :{'x':50, 'y':140}, 'night':{'x':100, 'y':140}},
|
||||
20 : {'day' :{'x':50, 'y':185}, 'night':{'x':100, 'y':185}},
|
||||
10 : {'day' :{'x':50, 'y':230}, 'night':{'x':100, 'y':230}},
|
||||
6 : {'day' :{'x':50, 'y':270}, 'night':{'x':100, 'y':270}},
|
||||
}
|
||||
|
||||
self.__levels = {
|
||||
'#17e624':'warunki_podwyzszone', # zielony
|
||||
'#e6bc17':'warunki_normalne', # żółty
|
||||
'#e61717':'warunki_obnizone', # czerwony
|
||||
'#5817e6':'pasmo_zamkniete', #fioletowy
|
||||
}
|
||||
|
||||
def rgb2hex(self, rgb):
|
||||
return '#%02x%02x%02x' % rgb
|
||||
|
||||
|
||||
def downloadImage(self, url):
|
||||
try:
|
||||
self.__logger.info("::: Odpytuję adres: " + url)
|
||||
webFile = urllib2.urlopen(url, None, 30)
|
||||
return Image.open(webFile)
|
||||
except urllib2.URLError, e:
|
||||
print e
|
||||
except socket.timeout:
|
||||
print "Timed out!"
|
||||
return ""
|
||||
|
||||
|
||||
def collectBandConditionsFromImage(self, image, dayTime):
|
||||
imageData = image.load()
|
||||
data = list()
|
||||
for band in sorted(self.__pixels):
|
||||
x = self.__pixels[band][dayTime]['x']
|
||||
y = self.__pixels[band][dayTime]['y']
|
||||
rgba = imageData[x,y]
|
||||
color = self.rgb2hex(( rgba[0],rgba[1],rgba[2] ));
|
||||
|
||||
# można zaremowac wybraną grupę aby nie podawać info o konkretnych warunkach
|
||||
if self.__levels[color] == 'warunki_podwyzszone':
|
||||
string = str(band) + '_metrow' + ' ' + self.__levels[color]
|
||||
data[:0] = [string]
|
||||
|
||||
if self.__levels[color] == 'warunki_normalne':
|
||||
string = str(band) + '_metrow' + ' ' + self.__levels[color]
|
||||
data[:0] = [string]
|
||||
|
||||
if self.__levels[color] == 'warunki_obnizone':
|
||||
string = str(band) + '_metrow' + ' ' + self.__levels[color]
|
||||
data[:0] = [string]
|
||||
|
||||
if self.__levels[color] == 'pasmo_zamkniete':
|
||||
string = str(band) + '_metrow' + ' ' + self.__levels[color]
|
||||
data[:0] = [string]
|
||||
|
||||
return data
|
||||
|
||||
|
||||
def get_data(self):
|
||||
|
||||
image = self.downloadImage(self.__service_url)
|
||||
|
||||
self.__logger.info("::: Przetwarzam dane...\n")
|
||||
|
||||
message = " ".join([
|
||||
" _ informacje_o_propagacji ",
|
||||
" _ dzien _ ",
|
||||
" _ pasma _ ",
|
||||
" _ " .join( self.collectBandConditionsFromImage(image, 'day') ),
|
||||
" _ noc _ ",
|
||||
" _ pasma _ ",
|
||||
" _ " .join( self.collectBandConditionsFromImage(image, 'night') ),
|
||||
" _ "
|
||||
])
|
||||
|
||||
return {
|
||||
"message": message,
|
||||
"source": "noaa",
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Ładowanie…
Reference in New Issue