Supla scripts - odczyt prognozy pogody

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Post Reply
ciekawy_zycia
Posts: 22
Joined: Wed Mar 06, 2019 8:35 am

Sat Mar 09, 2019 8:51 pm

Witam,
Chcialbym stworzyc nowy watek gdzie bedzie mozna udokumentowac jak pobierac dane dot prognozy pogody z ogolno dostepnych serwisow.

Ponizej kod ktory stworzylem ktory parsuje prognoze pogody z serwisu YR, w pierwszej lini ustalamy swoja lokalizacje, wynik mamy w tabeli prognoza ( w kazdym wierszu jest dzien, czas , opis, wiatr, kier_wiatru, temperaturai cisnienie)

Wynik wykonania:
Dnia 2019-03-09 o godz 22:00:00 bedzie Rain, opad wyniesie 1.1 mm, temp 5 wiatr 5.2 SW cisnienie 1002.6 hPa
Dnia 2019-03-10 o godz 00:00:00 bedzie Heavy rain, opad wyniesie 5.0 mm, temp 5 wiatr 5.3 SW cisnienie 1000.4 hPa
Dnia 2019-03-10 o godz 06:00:00 bedzie Partly cloudy, opad wyniesie 0 mm, temp 3 wiatr 9.3 WNW cisnienie 1003.3 hPa
Dnia 2019-03-10 o godz 12:00:00 bedzie Cloudy, opad wyniesie 0 mm, temp 7 wiatr 7.8 W cisnienie 1003.8 hPa
Dnia 2019-03-10 o godz 18:00:00 bedzie Rain, opad wyniesie 2.9 mm, temp 6 wiatr 2.5 SW cisnienie 1000.0 hPa
Dnia 2019-03-11 o godz 00:00:00 bedzie Heavy sleet, opad wyniesie 9.3 mm, temp 4 wiatr 2.5 NE cisnienie 993.5 hPa
Dnia 2019-03-11 o godz 06:00:00 bedzie Light rain, opad wyniesie 0.7 mm, temp 1 wiatr 6.5 WNW cisnienie 1001.3 hPa
Dnia 2019-03-11 o godz 12:00:00 bedzie Light rain, opad wyniesie 0.7 mm, temp 5 wiatr 5.5 W cisnienie 1006.1 hPa
Dnia 2019-03-11 o godz 18:00:00 bedzie Cloudy, opad wyniesie 0 mm, temp 2 wiatr 4.2 W cisnienie 1008.5 hPa
Dnia 2019-03-12 o godz 00:00:00 bedzie Partly cloudy, opad wyniesie 0 mm, temp 0 wiatr 4.3 W cisnienie 1012.1 hPa
Dnia 2019-03-12 o godz 06:00:00 bedzie Fair, opad wyniesie 0 mm, temp -1 wiatr 4.0 W cisnienie 1015.6 hPa
Dnia 2019-03-12 o godz 12:00:00 bedzie Partly cloudy, opad wyniesie 0 mm, temp 5 wiatr 5.2 W cisnienie 1017.6 hPa
Dnia 2019-03-12 o godz 19:00:00 bedzie Cloudy, opad wyniesie 0 mm, temp 0 wiatr 2.6 SSW cisnienie 1014.5 hPa
Dnia 2019-03-13 o godz 01:00:00 bedzie Cloudy, opad wyniesie 0 mm, temp 1 wiatr 5.3 SSE cisnienie 1009.1 hPa
Dnia 2019-03-13 o godz 07:00:00 bedzie Light rain, opad wyniesie 0.7 mm, temp 3 wiatr 6.4 SSW cisnienie 1005.2 hPa
Dnia 2019-03-13 o godz 13:00:00 bedzie Partly cloudy, opad wyniesie 0 mm, temp 7 wiatr 5.0 WSW cisnienie 1006.3 hPa

Kod

Code: Select all

{% set lokalizacja = 'http://www.yr.no/place/Poland/Other/RKS_Ursus_Warszawa/forecast_hour_by_hour.xml' %}
{% set prognozaXML= getUrl( lokalizacja ) | split('<time from="') %}
{% set prognoza = [] %}
{% set i = 1 %}
{% for item in prognozaXML %}
{% if i >1 %}
{% set dzien = item |split ('T')[0] %}
{% set czas = item |split ('T')[1] |split(' ')[0]|replace({'"' :''})%}
{% set opis = item| split ('name="')[1] | split('"')[0] %}
{% set opad = item| split ('precipitation value="')[1] | split('"')[0] %}
{% set kierunek= item| split ('code="')[1] | split('"')[0] %}
{% set predkosc = item| split ('mps="')[1] | split('"')[0] %}
{% set cisnienie = item| split ('unit="hPa" value="')[1] | split('"')[0] %}
{% set temp = item | split('<temperature unit="celsius" value="') [1] |split('"')[0] %}
{% set prognoza = prognoza | merge ([{ dzien: dzien, czas:czas, opis:opis, opad:opad, temperatura :temp, kierunek:kierunek,predkosc:predkosc, cisnienie:cisnienie}]) %}
{%endif %}
{%set i=i+1 %}
{% endfor %}
{% for item in prognoza %}
          Dnia {{item.dzien}} o godz {{item.czas}} bedzie {{item.opis}}, opad wyniesie {{item.opad}} mm, temp   {{item.temperatura}} wiatr {{item.predkosc}} {{item.kierunek}} cisnienie {{item.cisnienie}} hPa
{% endfor %}
Oczywiscie mozna moj kod wkleic do swojej sceny i pobrac wartosc z tabeli prognoza do tego zeby zrobic warunek np

Code: Select all

temp za ~3 godziny tj {{prognoza[3].czas}} bedzie {{prognoza[3].temperatura}} stopni celcjusza
albo w warunku dac:

Code: Select all

{{ prognoza[0].temperatura  <8}}
Post Reply