āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ
āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ¨āĻāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤? āĻ¯āĻāĻ¨ āĻāĻŽāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻ¸āĻžāĻāĻā§āĻ˛ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ, āĻ¤āĻāĻ¨ āĻāĻŽāĻŋ āĻ¯ā§ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻŦāĻžāĻāĻ āĻāĻžāĻ˛āĻžāĻ āĻ¸ā§āĻāĻžāĻ¨āĻāĻžāĻ° āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻ āĻŋāĻ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¤ā§ āĻāĻžāĻāĨ¤
āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻŋāĻ˛ āĻ¸ā§āĻ¨ā§āĻ¸āĻ° āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻ DIY āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻž āĻ¸ā§āĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻāĻŋ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻŋ "āĻāĻžāĻāĻžāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻĻā§āĻāĻžāĻŦāĻ¨ āĻāĻ°āĻŋāĻ¨āĻŋ" āĻāĻŦāĻ āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¤āĻĨā§āĻ¯ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ āĻ¯āĻž āĻ¸āĻŋāĻāĻŋāĻ˛ āĻāĻāĻŋāĻ¯āĻŧā§āĻļāĻ¨ā§ āĻ¯āĻžāĻāĻžāĻāĻā§āĻ¤ āĻĄā§āĻāĻžāĻ° āĻā§āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻĨāĻž āĻŽā§āĻāĻžāĻ° (āĻŽā§āĻāĻŋāĻāĻ°ā§āĻ˛āĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻ
ā§āĻ¯āĻžāĻ°ā§āĻĄā§āĻ°ā§āĻŽ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ) āĻāĻŦāĻ TAF (TAF - āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ āĻāĻ°ā§āĻĄā§āĻ°ā§āĻŽ āĻĒā§āĻ°ā§āĻŦāĻžāĻāĻžāĻ¸)āĨ¤ āĻŦāĻŋāĻŽāĻžāĻ¨ āĻāĻžāĻ˛āĻ¨āĻžāĻ¯āĻŧ, āĻļāĻ¤ āĻļāĻ¤ āĻŽāĻžāĻ¨ā§āĻˇā§āĻ° āĻā§āĻŦāĻ¨ āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻ¤āĻžāĻ āĻĒā§āĻ°ā§āĻŦāĻžāĻāĻžāĻ¸ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛āĨ¤
āĻāĻ āĻ¤āĻĨā§āĻ¯ āĻĢāĻ°ā§āĻŽā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻāĻ¯āĻŧāĻžāĻ°āĻĢāĻŋāĻ˛ā§āĻĄā§ āĻāĻ¯āĻŧā§āĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ XNUMX/XNUMX āĻ¸āĻŽā§āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻāĻŋāĻāĻāĻāĻ¸ (āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ āĻ¤āĻĨā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž) āĻāĻŦāĻ VOLMET (āĻĢāĻ°āĻžāĻ¸āĻŋ āĻĨā§āĻā§āĨ¤ āĻā§āĻ˛ - āĻĢā§āĻ˛āĻžāĻāĻ āĻāĻŦāĻ mÊtÊo - āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻž). āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ āĻāĻ¯āĻŧāĻžāĻ°āĻĢāĻŋāĻ˛ā§āĻĄā§ āĻĒā§āĻ°āĻā§āĻ¤ āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ 24-30 āĻāĻ¨ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŦāĻžāĻāĻžāĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻ¯āĻŧāĻžāĻ°āĻĢāĻŋāĻ˛ā§āĻĄā§ āĻ¨āĻ¯āĻŧ, āĻ
āĻ¨ā§āĻ¯āĻĻā§āĻ°āĻāĨ¤
āĻāĻ¨ā§āĻā§āĻā§ āĻŦāĻŋāĻŽāĻžāĻ¨āĻŦāĻ¨ā§āĻĻāĻ°ā§ ATIS āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ:
āĻāĻ¨ā§āĻā§āĻā§ āĻŦāĻŋāĻŽāĻžāĻ¨āĻŦāĻ¨ā§āĻĻāĻ°ā§ VOLMET āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ°ā§āĻĄāĻŋāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨āĻžāĻ° āĻŦāĻž āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻ¸āĻŋāĻāĻžāĻ° āĻŦāĻšāĻ¨ āĻāĻ°āĻž āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ, āĻāĻŦāĻ āĻāĻŽāĻŋ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻŦāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻā§āĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻ¯āĻž, āĻāĻāĻāĻŋ āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻ˛ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻ āĻĒā§āĻ°ā§āĻŦāĻžāĻāĻžāĻ¸ āĻĒā§āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻāĻĒāĻ¨āĻžāĻ° āĻšā§āĻŽ āĻ°āĻžāĻ¸ā§āĻĒāĻŦā§āĻ°āĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĨ¤
āĻ
āĻ¤āĻāĻŦ, āĻāĻŽāĻŋ āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ
āĻŦā§āĻ¯āĻžāĻāĻāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋ
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĒā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§, āĻŦāĻŋāĻāĻžāĻā§ āĻ¯āĻžāĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ:
āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒā§āĻ¨ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¨:
āĻāĻžāĻĒāĻžāĻ° āĻĒāĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻĨāĻžāĻāĻŦā§:
āĻāĻĒāĻ¨āĻŋ āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻŦāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻāĻŽāĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŦ āĻ¨āĻž - āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ°āĻ¯āĻŧā§āĻā§
āĻā§āĻĄ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽāĻŋ āĻ¨ā§āĻ¯āĻžāĻļāĻ¨āĻžāĻ˛ āĻāĻļā§āĻ¨āĻŋāĻ āĻ ā§āĻ¯āĻžāĻ¨ā§āĻĄ āĻ ā§āĻ¯āĻžāĻāĻŽā§āĻ¸ā§āĻĢāĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻļāĻ¨ (NOAA) āĻā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻā§āĻ¸ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻāĻ āĻŦā§āĻā§āĻāĻžāĻ¨āĻŋāĻ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻāĻŋ āĻ¤āĻžāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ TXT āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛ āĻāĻžāĻāĻŽā§ āĻĄā§āĻāĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĨ¤
METAR āĻĄā§āĻāĻž āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ˛āĻŋāĻā§āĻ (āĻā§āĻ¸āĻāĻŋ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨):
https://tgftp.nws.noaa.gov/data/observations/metar/stations/<ĐēОд Đ°ŅŅĐžĐŋĐžŅŅĐ° ĐŋĐž ICAO>.TXT
āĻāĻŽāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¨āĻŋāĻāĻāĻ¤āĻŽ āĻŦāĻŋāĻŽāĻžāĻ¨āĻŦāĻ¨ā§āĻĻāĻ° āĻšāĻ˛ Vnukovo, āĻāĻ° ICAO āĻā§āĻĄ UUWW. āĻā§āĻ¨āĻžāĻ°ā§āĻā§āĻĄ āĻāĻāĻāĻ°āĻāĻ˛ā§ āĻā§āĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§:
2020/08/10 11:30
UUWW 101130Z 31004MPS 9999 SCT048 24/13 Q1014 R01/000070 NOSIG
āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻžāĻāĻ¨ āĻšāĻ˛ āĻā§āĻ°āĻŋāĻ¨āĻŋāĻ āĻāĻĄāĻŧ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻĒā§āĻ°ā§āĻŦāĻžāĻāĻžāĻ¸ā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ˛āĻžāĻāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻā§āĻ¤ āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¸āĻžāĻ°āĨ¤ āĻ¸āĻŋāĻāĻŋāĻ˛ āĻāĻāĻŋāĻ¯āĻŧā§āĻļāĻ¨ āĻĒāĻžāĻāĻ˛āĻāĻĻā§āĻ° āĻāĻ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻ āĻ°ā§āĻĨ āĻŦā§āĻāĻ¤ā§ āĻā§āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻŦā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻĻāĻ°āĻāĻžāĻ°:
- [UUWW] â āĻāĻžāĻ¨ā§āĻā§āĻā§, āĻŽāĻ¸ā§āĻā§ (āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻž â āĻāĻ°āĻāĻ);
- [101130Z] â āĻŽāĻžāĻ¸ā§āĻ° 10 āĻ¤āĻŽ āĻĻāĻŋāĻ¨, 11:30 am GMT;
- [ā§Šā§§ā§Ļā§Ļā§ĒāĻāĻŽāĻĒāĻŋāĻāĻ¸] â āĻŦāĻžāĻ¤āĻžāĻ¸ā§āĻ° āĻĻāĻŋāĻ 310 āĻĄāĻŋāĻā§āĻ°āĻŋ, āĻāĻ¤āĻŋ 4 āĻŽāĻŋ/āĻ¸ā§āĻā§āĻ¨ā§āĻĄ;
- [9999] - āĻ āĻ¨ā§āĻā§āĻŽāĻŋāĻ āĻĻā§āĻļā§āĻ¯āĻŽāĻžāĻ¨āĻ¤āĻž 10 āĻāĻŋāĻŽāĻŋ āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ;
- [SCT048] â 4800 āĻĢā§āĻ (~1584m) āĻ āĻŦāĻŋāĻā§āĻˇāĻŋāĻĒā§āĻ¤/āĻŦāĻŋāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŽā§āĻ;
- [ā§§/ā§¨] â āĻ¤āĻžāĻĒāĻŽāĻžāĻ¤ā§āĻ°āĻž 24°C, āĻļāĻŋāĻļāĻŋāĻ° āĻŦāĻŋāĻ¨ā§āĻĻā§ 13°C;
- [āĻĒā§āĻ°āĻļā§āĻ¨1014] â āĻāĻžāĻĒ (QNH) 1014 āĻšā§āĻā§āĻā§āĻĒāĻžāĻ¸ā§āĻāĻžāĻ˛ (750 mm Hg);
- [R01/000070] â āĻ˛ā§āĻ¨ā§ āĻāĻ¨ā§āĻāĻ¤ā§āĻ¯ā§āĻ° āĻ¸āĻšāĻ 01 â 0,70;
- [NOSIG] - āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻā§āĻĄ āĻ˛ā§āĻāĻž āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ. āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŽāĻĻāĻžāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ и pytaf:
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()
āĻāĻ¸ā§āĻ¨ āĻāĻŋāĻāĻāĻĢ-āĻ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ (āĻā§āĻ¸āĻāĻŋāĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ)āĨ¤
https://tgftp.nws.noaa.gov/data/forecasts/taf/stations/<ĐēОд Đ°ŅŅĐžĐŋĐžŅŅĐ° ĐŋĐž ICAO>.TXT
āĻāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŽāĻ¤ā§, āĻāĻ¸ā§āĻ¨ āĻāĻ¨ā§āĻā§āĻā§ āĻŦāĻŋāĻŽāĻžāĻ¨āĻŦāĻ¨ā§āĻĻāĻ°ā§āĻ° āĻĒā§āĻ°ā§āĻŦāĻžāĻāĻžāĻ¸āĻāĻŋ āĻĻā§āĻāĻŋ:
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
āĻŽāĻžāĻ¨ā§ āĻšāĻŦā§:
- [ā§§/ā§¨] - 12 āĻĨā§āĻā§ 20 āĻāĻ¨ā§āĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ (āĻā§āĻ°āĻŋāĻ¨āĻāĻāĻ āĻāĻĄāĻŧ āĻ¸āĻŽāĻ¯āĻŧ);
- [-TSRA] â āĻŦāĻā§āĻ°āĻāĻĄāĻŧ (TS = āĻŦāĻā§āĻ°āĻāĻĄāĻŧ) āĻŦā§āĻˇā§āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ (RA = āĻŦā§āĻˇā§āĻāĻŋ) āĻāĻŽ āĻ¤ā§āĻŦā§āĻ°āĻ¤āĻžāĻ° (āĻŽāĻžāĻāĻ¨āĻžāĻ¸ āĻāĻŋāĻšā§āĻ¨);
- [BKN020CB] - āĻ¸āĻŽā§āĻĻā§āĻ°āĻĒā§āĻˇā§āĻ āĻĨā§āĻā§ 2000 āĻĢā§āĻ (610 āĻŽāĻŋāĻāĻžāĻ°) āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ (BKN = āĻāĻžāĻāĻž), āĻāĻŋāĻāĻŽā§āĻ˛ā§āĻ¨āĻŋāĻŽā§āĻŦāĻžāĻ¸ (CB = cumulonimbus) āĻŽā§āĻāĨ¤
āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻāĻ¨āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻāĻ āĻŋāĻ¨āĨ¤ TAF āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻā§āĻĄ āĻāĻāĻ āĻāĻžāĻŦā§ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻ˛āĻžāĻāĻĄā§ āĻā§āĻĄ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻŦāĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ
āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻĄā§ āĻāĻŽāĻ°āĻž āĻŽāĻĄāĻŋāĻāĻ˛ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻŦ pytaf, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻā§āĻ˛āĻŋ.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)
- āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ°ā§ āĻ¸āĻŽāĻā§āĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻ¤ā§āĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻ¯āĻžāĻāĨ¤
- āĻ§āĻžāĻā§āĻāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻž āĻāĻŦāĻ āĻā§āĻĄ āĻ¸āĻš āĻāĻ°ā§āĻāĻžāĻāĻ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨āĨ¤
- āĻĢāĻžāĻāĻ˛ā§ āĻāĻĒā§āĻā§āĻˇāĻŋāĻ āĻĒāĻĨāĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨ āĻā§āĻ˛āĻŋ_āĻŦāĻ (āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ .py āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§) āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻĄāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĢāĻžāĻāĻļāĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨).
- āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻ˛āĻŋāĻā§āĻ¨ āĻā§āĻā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻŦāĻā§āĻ° āĻā§āĻā§āĻ¨ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°ā§āĻ¨āĨ¤
- āĻ§āĻžāĻā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§āĻ¨, āĻ¯āĻžāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻžāĻā§ āĻ¯āĻžāĻ āĻā§āĻ°āĻŋāĻāĻžāĻ°.
- āĻāĻŽāĻ°āĻž āĻ¸ā§āĻāĻ āĻāĻ°āĻž HTTP āĻ āĻ¨ā§āĻ°ā§āĻ§āĻ āĻ¨ā§āĻ°ā§āĻ§āĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻāĻ°āĻ¤ā§āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻāĻ¨ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨āĻāĻžāĻŦā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ URL āĻāĻā§āĨ¤ āĻ¯āĻž āĻŦāĻžāĻāĻŋ āĻāĻā§
/setwebhook <you bot token> <public URL of your function>
āĻĢāĻ˛
āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ˛ā§, āĻāĻĒāĻ¨āĻžāĻ° āĻŦāĻ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻžāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŽā§āĻ¸ā§āĻā§āĻāĻžāĻ°ā§ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻŦāĻŋāĻŽāĻžāĻ¨ āĻāĻ˛āĻžāĻāĻ˛ā§āĻ° āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻĻāĻ¨ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦā§āĨ¤
āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻā§āĻĄāĻāĻŋ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻŦā§ āĻ¤āĻžāĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻāĻ¤ā§āĻ¸ āĻĨā§āĻā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻ āĻŋāĻ āĻāĻŦāĻšāĻžāĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻŦāĻžāĻāĻžāĻ¸ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻžāĻŦā§āĻ¨
āĻāĻ¤ā§āĻ¸: www.habr.com