เดเดพเดฒเดพเดตเดธเตเดฅเดพ เดตเดฟเดตเดฐเดเตเดเตพ เดจเตฝเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดธเตเดตเดจเดเตเดเดณเตเดฃเตเดเต, เดเดจเตเดจเดพเตฝ เดเดคเดพเดฃเต เดจเดฟเดเตเดเตพ เดตเดฟเดถเตเดตเดธเดฟเดเตเดเตเดฃเตเดเดคเต? เดเดพเตป เดชเดคเดฟเดตเดพเดฏเดฟ เดธเตเดเตเดเดฟเตพ เดเดตเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเดฟเดฏเดชเตเดชเตเตพ, เดเดพเตป เดธเดตเดพเดฐเดฟ เดเตเดฏเตเดฏเตเดจเตเดจ เดธเตเดฅเดฒเดคเตเดคเต เดเดพเดฒเดพเดตเดธเตเดฅเดฏเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด เดเตเดคเตเดฏเดฎเดพเดฏ เดตเดฟเดตเดฐเดเตเดเตพ เดฒเดญเดฟเดเตเดเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเต.
เดธเตเตปเดธเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดเตเดฑเดฟเดฏ DIY เดเดพเดฒเดพเดตเดธเตเดฅเดพ เดธเตเดฑเตเดฑเตเดทเตป เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดเดฏเตเด เด
เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด เดเดจเตเดจเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต เดเดจเตเดฑเต เดเดฆเตเดฏ เดเดฟเดจเตเดค. เดเดจเตเดจเดพเตฝ เดเดพเตป "เดเดเตเดฐเด เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฒเตเดฒ" เดเตเดเดพเดคเต เดธเดฟเดตเดฟเตฝ เดเดตเดฟเดฏเตเดทเดจเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดพเดฒเดพเดตเดธเตเดฅเดพ เดตเดฟเดตเดฐเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเด เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฑเดตเดฟเดเดฎเดพเดฏเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเต. เดฎเตเดฑเตเดฑเดพเตผ (เดฎเตเดฑเตเดฑเตเดฐเดฟเดฏเตเดณเดเดฟเดเตเดเตฝ เดเดฏเดฑเตเดกเตเดฐเตเด เดฑเดฟเดชเตเดชเตเตผเดเตเดเต) เดเตเดเดพเดคเต เดธเตเดคเตเดฐเดเตเดเดณเดพเดฃเตเดพ (TAF - เดเตเตผเดฎเดฟเดจเตฝ เดเดฏเดฑเตเดกเตเดฐเตเด เดชเตเดฐเดตเดเดจเด). เดตเตเดฏเตเดฎเดฏเดพเดจเดคเตเดคเดฟเตฝ, เดจเตเดฑเตเดเดฃเดเตเดเดฟเดจเต เดเดณเตเดเดณเตเดเต เดเตเดตเดฟเดคเด เดเดพเดฒเดพเดตเดธเตเดฅเดฏเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เด
เดคเดฟเดจเดพเตฝ เดชเตเดฐเดตเดเดจเดเตเดเตพ เดเดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดเตเดคเตเดฏเดฎเดพเดฃเต.
เดซเตเดฎเดฟเดฒเตเดณเตเดณ เดเดฒเตเดฒเดพ เดเดงเตเดจเดฟเด เดเดฏเตผเดซเตเตฝเดกเดฟเดฒเตเด เด เดตเดฟเดตเดฐเดเตเดเตพ XNUMX/XNUMX เดตเตเดฏเตโเดธเต เดตเดดเดฟ เดชเตเดฐเดเตเดทเตเดชเดฃเด เดเตเดฏเตเดฏเตเดจเตเดจเต ATIS (เดเดเตเดเตเดฎเดพเดฑเตเดฑเดฟเดเต เดเตเตผเดฎเดฟเดจเตฝ เดเตปเดซเตผเดฎเตเดทเตป เดธเตผเดตเตเดธเต) เดเตเดเดพเดคเต เดตเตเตพเดฎเตเดฑเตเดฑเต (เดซเตเดฐเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต. vol - เดซเตเดฒเตเดฑเตเดฑเต เดเดชเตเดชเด เดธเตเดตเดจเดตเดฟเดญเดพเดเด - เดเดพเดฒเดพเดตเดธเตเดฅ). เดเดฆเตเดฏเดคเตเดคเตเดคเต เดเดฏเตผเดซเตเตฝเดกเดฟเดฒเต เดฏเดฅเดพเตผเดคเตเดฅ เดเดพเดฒเดพเดตเดธเตเดฅเดฏเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดตเดฟเดตเดฐเดเตเดเตพ เดจเตฝเดเตเดจเตเดจเต, เดฐเดฃเตเดเดพเดฎเดคเตเดคเตเดคเต เดฌเตเดฐเตเดกเตเดเดพเดธเตเดฑเตเดฑเต เดเดฏเตผเดซเตเตฝเดกเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด
เดเตเดคเตเดค 24-30 เดฎเดฃเดฟเดเตเดเตเดฑเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเดเดจเด เดจเตฝเดเตเดจเตเดจเต.
Vnukovo เดตเดฟเดฎเดพเดจเดคเตเดคเดพเดตเดณเดคเตเดคเดฟเดฒเต ATIS เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเด:
เดตเตเดจเตเดเตเดเตเดตเต เดเดฏเตผเดชเตเตผเดเตเดเดฟเตฝ VOLMET เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด
เด เดจเตเดฌเดจเตเดง เดถเตเดฐเตเดฃเดฟเดฏเดฟเตฝ เดเดฐเต เดคเดตเดฃเดฏเตเด เดเดฐเต เดฑเตเดกเดฟเดฏเต เดธเตเดเดพเดจเดฑเต เดเตเดฐเดพเตปเดธเตโเดธเดฟเดตเดฑเต เดเตเดฃเตเดเตเดชเตเดเตเดจเตเดจเดคเต เด เดธเตเดเดฐเตเดฏเดฎเดพเดฃเต, เดเตเดเดพเดคเต เดเตเดฒเดฟเดเตเดฐเดพเดฎเดฟเตฝ เดเดฐเต เดฌเตเดเตเดเต เดธเตเดทเตโเดเดฟเดเตเดเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเต, เดเดฐเต เดฌเดเตเดเดฃเดฟเตฝ เดเตเดฒเดฟเดเตเดเตเดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ, เด เดคเต เดชเตเดฐเดตเดเดจเด เดจเดฟเดเตเดเตพเดเตเดเต เดฒเดญเดฟเดเตเดเตเด. เดเดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดธเตเตผเดตเตผ เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเดคเตเด เดจเดฟเดเตเดเดณเตเดเต เดนเตเด เดฑเดพเดธเตโเดฌเตเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เด เดฏเดฏเตเดเตเดเตเดจเตเดจเดคเตเด เดชเตเดฐเดพเดฏเตเดเดฟเดเดฎเดฒเตเดฒ.
เด
เดคเดฟเดจเดพเตฝ, เดธเตเดตเดจเด เดเดฐเต เดฌเดพเดเตเดเตเตปเดกเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต
เดชเดถเตเดเดพเดคเตเดคเดฒ เดคเดฏเตเดฏเดพเดฑเตเดเตเดชเตเดชเต
เดเดฐเต เดซเดเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเตเด
เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเดพเดจเดฒเดฟเตฝ
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดธเตเดทเตเดเดฟเดเตเด เดถเตเดทเด, เดตเดฟเดญเดพเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดเตเด เดซเดเตเดทเดจเตเดเตพ:
เดฌเดเตเดเตบ เด
เดฎเตผเดคเตเดคเตเด เดเดฐเต เดซเดเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเตเด เด
เดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดชเตเดฐเต เดจเตฝเดเตเด:
เด
เดฎเตผเดคเตเดคเดฟ เดถเตเดทเด เดเดฐเต เดซเดเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเตเด เดธเตเดทเตโเดเดฟเดเตเด เดซเดเดเตโเดทเดจเตเดฑเต เดเดฐเต เดชเตเดฐเดพเดคเดฟเดจเดฟเดงเตเดฏเด เดจเดฎเตเดเตเดเตเดฃเตเดเดพเดเตเด:
เดจเดฟเดเตเดเตพ เดชเตเดคเตเดคเดฃเดฟเตฝ เดเตเดกเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดฎเตเดชเต, เดจเดฟเดเตเดเตพ เดเตเดฒเดฟเดเตเดฐเดพเดฎเดฟเตฝ เดเดฐเต เดฌเตเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดคเต เดเดเตเดเดจเต เดเตเดฏเตเดฏเดพเดฎเตเดจเตเดจเต เดเดพเตป เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฒเตเดฒ - เดตเดฟเดถเดฆเดฎเดพเดฏ เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเดณเตเดฃเตเดเต
เดเตเดกเต เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตเดจเตเดจเต
เดตเดฟเดถเตเดตเดธเดจเตเดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฑเดตเดฟเดเดฎเดพเดฏเดฟ เดเดพเตป เดจเดพเดทเดฃเตฝ เดเดทเตเดฏเดพเดจเดฟเดเต เดเตปเดกเต เด เดฑเตเดฑเตเดฎเตเดธเตเดซเตเดฑเดฟเดเต เด เดกเตเดฎเดฟเดจเดฟเดธเตเดเตเดฐเตเดทเตป (NOAA) เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเต. เด เดถเดพเดธเตเดคเตเดฐ เดเดเตปเดธเดฟ เด เดคเดฟเดจเตเดฑเต เดธเตเตผเดตเดฑเดฟเตฝ TXT เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดคเดคเตเดธเดฎเดฏเด เดกเดพเดฑเตเดฑ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเต.
METAR เดกเดพเดฑเตเดฑ เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฒเดฟเดเตเดเต (เดเตเดธเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด):
https://tgftp.nws.noaa.gov/data/observations/metar/stations/<ะบะพะด ะฐััะพะฟะพััะฐ ะฟะพ ICAO>.TXT
เดเดจเตเดฑเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดฑเตเดฑเดตเตเด เด เดเตเดคเตเดคเตเดณเตเดณ เดตเดฟเดฎเดพเดจเดคเตเดคเดพเดตเดณเด Vnukovo เดเดฃเต, เด เดคเดฟเดจเตเดฑเต ICAO เดเตเดกเต UUWW. เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดค URL-เดฒเตเดเตเดเต เดชเตเดเตเดจเตเดจเดคเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดจเตฝเดเตเด:
2020/08/10 11:30
UUWW 101130Z 31004MPS 9999 SCT048 24/13 Q1014 R01/000070 NOSIG
เดเตเดฐเตเตปเดตเดฟเดเตเดเต เดฎเตเตป เดเตเดฎเดฟเดฒเต เดชเตเดฐเดตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดจเดฟเดฒเดตเดฟเดฒเต เดธเดฎเดฏเดฎเดพเดฃเต เดเดฆเตเดฏ เดตเดฐเดฟ. เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดตเดฐเดฟ เดฏเดฅเดพเตผเดคเตเดฅ เดเดพเดฒเดพเดตเดธเตเดฅเดฏเตเดเต เดธเดเดเตเดฐเดนเดฎเดพเดฃเต. เดธเดฟเดตเดฟเตฝ เดเดตเดฟเดฏเตเดทเตป เดชเตเดฒเดฑเตเดฑเตเดฎเดพเตผเดเตเดเต เด เดฒเตเตป เดเดจเตเดคเดพเดฃเต เด เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเดคเต เดเดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเดเตเดเดพเตป เดเดฐเต เดชเตเดฐเดถเตเดจเดตเตเดฎเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดเตเดเตพเดเตเดเต เดเดฐเต เดตเดฟเดถเดฆเตเดเดฐเดฃเด เดเดตเดถเตเดฏเดฎเดพเดฃเต:
- [UUWW] - Vnukovo, เดฎเตเดธเตเดเต (เดฑเดทเตเดฏ - RU);
- [101130Z] - เดฎเดพเดธเดคเตเดคเดฟเดฒเต 10-เดพเด เดฆเดฟเดตเดธเด, 11:30 am GMT;
- [31004เดเดเดชเดฟเดเดธเต] - เดเดพเดฑเตเดฑเดฟเดจเตเดฑเต เดฆเดฟเดถ 310 เดกเดฟเดเตเดฐเดฟ, เดตเตเดเดค 4 เดฎเต / เดธเต;
- [9999] - เดคเดฟเดฐเดถเตเดเตเดจ เดฆเตเดถเตเดฏเดชเดฐเดค 10 เดเดฟเดฒเตเดฎเตเดฑเตเดฑเดฑเต เด เดคเดฟเตฝ เดเตเดเตเดคเดฒเต;
- [SCT048] - 4800 เด เดเดฟ (~1584 เดฎเตเดฑเตเดฑเตผ) เดเดฏเดฐเดคเตเดคเดฟเตฝ เดเดฟเดคเดฑเดฟเดเตเดเดฟเดเดเตเดเตเดจเตเดจ/เดเดฟเดคเดฑเดฟเดเตเดเดฟเดเดเตเดเตเดจเตเดจ เดฎเตเดเดเตเดเตพ;
- [24 / 13] - เดคเดพเดชเดจเดฟเดฒ 24 ยฐ C, เดฎเดเตเดเต เดชเตเดฏเดฟเดจเตเดฑเต 13 ยฐ C;
- [Q1014] - เดฎเตผเดฆเตเดฆเด (เดเตเดฏเตเดเตปเดเดเตเดเต) 1014 เดนเตเดเตเดเตเดชเดพเดธเตเดเดฒเตเดเตพ (750 เดเดเดเด เดเดเตเดเตเดเดฟ);
- [R01/000070] - เดฒเตเดฏเตเตป 01 - 0,70-เดฒเต เด เดกเตเดทเตป เดเตเดซเดฟเดซเดฟเดทเตเดฏเดจเตเดฑเต;
- [NOSIG] - เดเดพเดฐเตเดฏเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต.
เดชเตเดฐเตเดเตเดฐเดพเด เดเตเดกเต เดเดดเตเดคเดฟ เดคเตเดเดเตเดเดพเด. เดเดฆเตเดฏเด เดจเดฟเดเตเดเตพ เดซเดเดเตเดทเดจเตเดเตพ เดเดฑเดเตเดเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต เด เดญเตเดฏเตผเดคเตเดฅเดจ ะธ เดชเตเดฑเตเดฑเดพเดซเต:
from urllib import request
import pytaf
เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดเดฏเตเด เดกเตเดเตเดกเดฟเดเดเต เดซเดเดเตเดทเตป เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด:
URL_METAR = "https://tgftp.nws.noaa.gov/data/observations/metar/stations/UUWW.TXT"
URL_TAF = "https://tgftp.nws.noaa.gov/data/forecasts/taf/stations/UUWW.TXT"
def parse_data(code):
code = code.split('n')[1]
return pytaf.Decoder(pytaf.TAF(code)).decode_taf()
เดจเดฎเตเดเตเดเต TAF-เดฒเตเดเตเดเต เดชเตเดเดพเด (เดเตเดธเตเด เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต).
https://tgftp.nws.noaa.gov/data/forecasts/taf/stations/<ะบะพะด ะฐััะพะฟะพััะฐ ะฟะพ ICAO>.TXT
เดฎเตเดฎเตเดชเดคเตเดคเต เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเตเดจเตเดจเดชเตเดฒเต, เดจเดฎเตเดเตเดเต Vnukovo เดตเดฟเดฎเดพเดจเดคเตเดคเดพเดตเดณเดคเตเดคเดฟเดฒเต เดชเตเดฐเดตเดเดจเด เดจเตเดเตเดเดพเด:
2020/08/10 12:21
TAF UUWW 101050Z 1012/1112 28003G10MPS 9999 SCT030 TX25/1012Z TN15/1103Z
TEMPO 1012/1020 -TSRA BKN020CB
BECMG 1020/1021 FEW007 BKN016
TEMPO 1021/1106 -SHRA BKN020CB PROB40
TEMPO 1021/1106 -TSRA BKN020CB
BECMG 1101/1103 34006G13MPS
เดจเดฎเตเดเตเดเต เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเต เดตเดฐเดฟเดเตพ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดพเด เดเตเดฎเตเดชเต ะธ เดฌเดฟ.เด.เดธเดฟ.เดเด.เดเดฟ. TEMPO เดเดจเตเดจเดพเตฝ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดเดพเดฒเดฏเดณเดตเดฟเดฒเต เดฏเดฅเดพเตผเดคเตเดฅ เดเดพเดฒเดพเดตเดธเตเดฅ เดเดจเตเดเดพเดฒเดฟเดเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเด เดเดจเตเดจเดพเดฃเต. BECMG - เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดพเดฒเดพเดตเดธเตเดฅ เดเตเดฐเดฎเตเดฃ เดฎเดพเดฑเตเด.
เด เดคเดพเดฏเดคเต, เดตเดฐเดฟ:
TEMPO 1012/1020 -TSRA BKN020CB
เด เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเดคเต:
- [1012 / 1020] - 12 เดฎเตเดคเตฝ 20 เดฎเดฃเดฟเดเตเดเตเตผ เดตเดฐเต (เดเตเดฐเตเตปเดตเดฟเดเตเดเต เดถเดฐเดพเดถเดฐเดฟ เดธเดฎเดฏเด);
- [-TSRA] - เดเดเดฟเดฎเดฟเดจเตเดจเตฝ (TS = เดเดเดฟเดฎเดฟเดจเตเดจเตฝ) เดฎเดด (RA = เดฎเดด) เดเตเดฑเดเตเด เดคเตเดตเตเดฐเดค (เดฎเตเดจเดธเต เด เดเดฏเดพเดณเด);
- [BKN020CB] - เดธเดฎเตเดฆเตเดฐเดจเดฟเดฐเดชเตเดชเดฟเตฝ เดจเดฟเดจเตเดจเต 2000 เด เดเดฟ (610 เดฎเตเดฑเตเดฑเตผ) เดเดฏเดฐเดคเตเดคเดฟเตฝ เดธเตเดชเตเดฐเดงเดพเดจเดฎเดพเดฏ (BKN = เดคเดเตผเดจเตเดจ), เดเตเดฏเตเดฎเตเดฒเตเดจเดฟเดเดฌเดธเต (CB = เดเตเดฎเตเดฒเตเดจเดฟเดเดฌเดธเต) เดฎเตเดเดเตเดเตพ.
เดเดพเดฒเดพเดตเดธเตเดฅเดพ เดชเตเดฐเดคเดฟเดญเดพเดธเดเตเดเตพเดเตเดเต เดงเดพเดฐเดพเดณเด เดจเดฟเดฌเดจเตเดงเดจเดเตพ เดเดฃเตเดเต, เด เดต เดเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฃเต. TAF เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดเตเดเตเดณเตเดณ เดเตเดกเต เดธเดฎเดพเดจเดฎเดพเดฏ เดฐเตเดคเดฟเดฏเดฟเตฝ เดเดดเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดฒเตเดกเดฟเดฒเตเดเตเดเต เดเตเดกเต เด เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเต
เดธเดฎเดฏเด เดชเดพเดดเดพเดเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป, เดจเดฎเตเดเตเดเต เดจเดฎเตเดฎเตเดเต เดธเดเดญเดฐเดฃเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเตเดฒเดฟเดเตเดฐเดพเด เดฌเตเดเตเดเต เดเตเดเดชเตเดฒเตเดฑเตเดฑเต เดเดเตเดเตเดเดพเด
เดเตเดกเดฟเดฒเตเดณเตเดณเดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เดฎเตเดกเตเดฏเตเดณเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดฟเดเตเดเตเด เดชเตเดฑเตเดฑเดพเดซเต, เด เดชเตเดชเตเตพ เด เดคเดฟเดจเตเดฑเต เดชเดคเดฟเดชเตเดชเต เดเดเตป เดเตเตผเดเตเดเดฃเด เดเดตเดถเตเดฏเดเดคเดเตพ. txt
pytaf~=1.2.1
- เดจเดฎเตเดเตเดเต เดเดกเดฟเดฑเตเดฑเดฟเดเดเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด bot/tele_bot.py. เดเดเตเดเตพ เด เดจเดพเดตเดถเตเดฏเดฎเดพเดฏ เดเดฒเตเดฒเดพ เดเดพเดฐเตเดฏเดเตเดเดณเตเด เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเดเดฏเตเด เดเดเตเดเดณเตเดเต เดเตเดกเต เดเตเตผเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
import os
from urllib import request
import telebot
import pytaf
TOKEN = os.environ.get('TOKEN')
URL_METAR = "https://tgftp.nws.noaa.gov/data/observations/metar/stations/UUWW.TXT"
URL_TAF = "https://tgftp.nws.noaa.gov/data/forecasts/taf/stations/UUWW.TXT"
bot = telebot.TeleBot(token=TOKEN, threaded=False)
keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.row('/start', '/get_metar', '/get_taf')
def start(message):
msg = "ะัะธะฒะตั. ะญัะพ ะฑะพั ะดะปั ะฟะพะปััะตะฝะธั ะฐะฒะธะฐัะธะพะฝะฝะพะณะพ ะฟัะพะณะฝะพะทะฐ ะฟะพะณะพะดั "
"ั ัะตัะฒะตัะพะฒ NOAA. ะะพั ะฝะฐัััะพะตะฝ ะฝะฐ ะฐััะพะฟะพัั ะะฝัะบะพะฒะพ (UUWW)."
bot.send_message(message.chat.id, msg, reply_markup=keyboard)
def parse_data(code):
code = code.split('n')[1]
return pytaf.Decoder(pytaf.TAF(code)).decode_taf()
def get_metar(message):
# Fetch info from server.
code = request.urlopen(URL_METAR).read().decode('utf-8')
# Send formatted answer.
bot.send_message(message.chat.id, parse_data(code), reply_markup=keyboard)
def get_taf(message):
# Fetch info from server.
code = request.urlopen(URL_TAF).read().decode('utf-8')
# Send formatted answer.
bot.send_message(message.chat.id, parse_data(code), reply_markup=keyboard)
def route_command(command, message):
"""
Commands router.
"""
if command == '/start':
return start(message)
elif command == '/get_metar':
return get_metar(message)
elif command == '/get_taf':
return get_taf(message)
def main(**kwargs):
"""
Serverless environment entry point.
"""
print(f'Received: "{kwargs}"')
message = telebot.types.Update.de_json(kwargs)
message = message.message or message.edited_message
if message and message.text and message.text[0] == '/':
print(f'Echo on "{message.text}"')
route_command(message.text.lower(), message)
- เดเดเตเดเตพ เดฎเตเดดเตเดตเตป เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเตเด เดเดฐเต ZIP เดเตผเดเตเดเตเดตเดฟเดฒเตเดเตเดเต เดชเดพเดเตเดเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดธเตเดทเตเดเดฟเดเตเด เดซเดเดเตเดทเดจเดฟเดฒเตเดเตเดเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดชเดพเดจเดฒเดฟเดฒเตเดเตเดเต เดชเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
- เดชเตเดทเต เดเดกเดฟเดฑเตเดฑเตเดเตเดฏเตเดฏเตเด เดเตเดเดพเดคเต เดเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเตผเดเตเดเตเดตเต เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเด.
- เดซเดฏเดฒเดฟเดฒเต เดเดชเตเดเตเดทเดฟเด เดชเดพเดค เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเด เดเตเดฒเดฟ_เดฌเตเดเตเดเต (เดตเดฟเดชเตเดฒเตเดเดฐเดฃเด .py เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด) เดเตเดเดพเดคเต เดเดฐเต เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเต เดซเดเดเตโเดทเดจเตเด (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดจเตฝเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดเดคเดพเดฃเต เดชเตเดฐเดงเดพเดจ).
- เดตเดฟเดญเดพเดเด เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดเดฐเต เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดเดดเตเดคเตเด TOKEN เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดเตเดฒเดฟเดเตเดฐเดพเด เดฌเตเดเตเดเดฟเดจเตเดฑเต เดเตเดเตเดเตบ เด เดคเดฟเดจเต เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
- เดชเตเดทเต เดธเดเดฐเดเตเดทเดฟเดเตเดเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเด, เด เดคเดฟเดจเตเดถเตเดทเด เดเดเตเดเตพ เดตเดฟเดญเดพเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดเตเดจเตเดจเต เดเตเดฐเดฟเดเดฑเตเดเตพ.
- เดเดเตเดเตพ เดธเตเดตเดฟเดเตเดเต เดเดเตเดเต HTTP เด เดญเตเดฏเตผเดคเตเดฅเดจเด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดฐเดธเตเดฏเดฎเดพเดเตเดเดพเตป.
เดซเดเดเตโเดทเดจเต เดชเดฐเดธเตเดฏเดฎเดพเดฏเดฟ เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเตพเดเตเดเต เดเดชเตเดชเตเตพ เดเดฐเต URL เดเดฃเตเดเต. เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณเดคเต เดเดคเตเดฐเดฎเดพเดคเตเดฐเด
/setwebhook <you bot token> <public URL of your function>
เดซเดฒเด
เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดเตเดฏเตเดคเดพเตฝ, เดจเดฟเดเตเดเดณเตเดเต เดฌเตเดเตเดเต เดเดเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเตเดเดฏเตเด เดเดฑเตเดฑเดตเตเด เดชเตเดคเดฟเดฏ เดตเตเดฏเตเดฎเดฏเดพเดจ เดเดพเดฒเดพเดตเดธเตเดฅเดพ เดฑเดฟเดชเตเดชเตเตผเดเตเดเต เดจเตเดฐเดฟเดเตเดเต เดฎเตเดธเดเตเดเดฑเดฟเตฝ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเตเดกเต เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเดพเตป เดเดดเดฟเดฏเตเด, เดเดจเตเดจเดพเตฝ เด
เดคเดฟเดจเตเดฑเต เดจเดฟเดฒเดตเดฟเดฒเต เด
เดตเดธเตเดฅเดฏเดฟเตฝ เดชเตเดฒเตเด เดตเดฟเดถเตเดตเดธเดจเตเดฏเดฎเดพเดฏ เดเดฑเดตเดฟเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฑเตเดฑเดตเตเด เดเตเดคเตเดฏเดฎเดพเดฏ เดเดพเดฒเดพเดตเดธเตเดฅเดฏเตเด เดชเตเดฐเดตเดเดจเดตเตเด เดเดฃเตเดเตเดคเตเดคเดพเตป เดเดคเต เดฎเดคเดฟเดฏเดพเดเตเด.
เดเดเตเดเดณเตเดเต เดเตเดกเดฟเดจเตเดฑเต เดชเตเตผเดฃเตเดฃ เดชเดคเดฟเดชเตเดชเต เดจเดฟเดเตเดเตพ เดเดฃเตเดเตเดคเตเดคเตเด
เด
เดตเดฒเดเดฌเด: www.habr.com