အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot
မိုသလေဝသအချက်အလက်ကို ပေသဆောင်သည့် ဝန်ဆောင်မဟုမျာသစလာရဟိသော်လည်သ မည်သည့်အရာကို ယုံကဌည်သင့်သနည်သ။ ကျလန်တော် မကဌာခဏ စက်ဘီသစီသလာတဲ့အခါ၊ ကျလန်တော်စီသတဲ့ နေရာရဲ့ ရာသီဥတု အခဌေအနေနဲ့ ပတ်သက်ပဌီသ အတိကျဆုံသ အချက်အလက်ကို ရချင်ခဲ့တယ်။

အာရုံခံကိရိယာမျာသပါရဟိသော DIY မိုသလေဝသစခန်သငယ်တစ်ခုကို တည်ဆောက်ပဌီသ ၎င်သထံမဟ ဒေတာရယူရန် ပထမဆုံသစိတ်ကူသဖဌစ်သည်။ ဒါပေမယ့် ငါ "ဘီသကို ပဌန်လည်တီထလင်ခဌင်သ" မပဌုခဲ့ဘဲ အရပ်ဘက်လေကဌောင်သမဟာ အသုံသပဌုတဲ့ ရာသီဥတုအချက်အလက်ကို စိစစ်ပဌီသ ဒေတာအရင်သအမဌစ်အဖဌစ်၊ ပဌောရရင်၊ မီတာ (METeorological Aerodrome Report) နဟင့် အလုပ် (TAF - Terminal Aerodrome ခန့်မဟန်သချက်)။ လေကဌောင်သပျံသန်သမဟုတလင် လူရာပေါင်သမျာသစလာ၏အသက်သည် ရာသီဥတုပေါ်တလင်မူတည်သောကဌောင့် ခန့်မဟန်သချက်မျာသကို တတ်နိုင်သမျဟ တိကျမဟန်ကန်စေသည်။

ကအချက်အလက်ကို ပုံစံဖဌင့် ခေတ်မီလေယာဉ်ကလင်သတိုင်သတလင် အသံဖဌင့် XNUMX/XNUMX ထုတ်လလဟင့်ပါသည်။ ATIS (Automatic Terminal Information Service) နဟင့် VOLMET (ပဌင်သစ်မဟ vol - လေယာဉ်နဟင့် météo - ရာသီဥတု)။ ပထမတစ်ခုက လေယာဉ်ကလင်သရဟိ အမဟန်တကယ် ရာသီဥတုအကဌောင်သ အချက်အလက်ကို ပေသဆောင်ပဌီသ ဒုတိယတစ်ခုက ထုတ်လလဟင့်သည့် လေယာဉ်ကလင်သတလင်သာမက အခဌာသနောက်ထပ် 24-30 နာရီအတလက် ခန့်မဟန်သချက်မျာသကို ပေသပါသည်။

Vnukovo လေဆိပ်ရဟိ ATIS လည်ပတ်မဟု ဥပမာ-

Vnukovo လေဆိပ်တလင် VOLMET အလုပ်လုပ်ပုံ ဥပမာ

သက်ဆိုင်ရာအကလာအဝေသအတလက် အချိန်တိုင်သ ရေဒီယိုစကင်နာ သို့မဟုတ် transceiver သယ်ဆောင်ရန် အဆင်မပဌေဖဌစ်ပဌီသ ခလုတ်တစ်ချက်နဟိပ်ရုံဖဌင့် တူညီသောခန့်မဟန်သချက်ကို ရရဟိစေမည့် Telegram တလင် bot တစ်ခုကို ဖန်တီသလိုပါသည်။ ကအတလက် သီသခဌာသဆာဗာတစ်ခုကို ခလဲဝေချထာသပေသခဌင်သအပဌင် သင့်အိမ် Raspberry သို့ တောင်သဆိုချက်မျာသကို ပေသပို့ခဌင်သသည် အနည်သဆုံသ လက်တလေ့မကျပါ။

ထို့ကဌောင့်၊ ကျလန်ုပ်သည် ဝန်ဆောင်မဟုကို နောက်ခံအဖဌစ် အသုံသပဌုရန် ဆုံသဖဌတ်ခဲ့သည်။ Cloud အင်္ဂါရပ်မျာသကို ရလေသချယ်ပါ။. တောင်သဆိုချက်အရေအတလက်သည် နည်သပါသမည်ဖဌစ်ပဌီသ၊ ထို့ကဌောင့် ကဝန်ဆောင်မဟုသည် လုံသဝနီသပါသအခမဲ့ဖဌစ်လိမ့်မည် (ကျလန်ုပ်၏တလက်ချက်မဟုမျာသအရ၊ တောင်သဆိုချက် 22 အတလက် 100 ရူဘယ်ဖဌစ်လိမ့်မည်)။

နောက်ခံပဌင်ဆင်မဟု

လုပ်ဆောင်ချက်တစ်ခုဖန်တီသပါ။

control panel ထဲမဟာ my.selectel.ru မဌင်ကလင်သကိုဖလင့်ပါ။ တိမ်တိုက်ပလပ်ဖောင်သ ပရောဂျက်အသစ်တစ်ခုကို ဖန်တီသပါ-

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot
ပရောဂျက်ကို ဖန်တီသပဌီသနောက် အပိုင်သကို သလာသပါ။ လုပ်ငန်သဆောင်တာ:

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot
ခလုတ်ကိုတလန်သ လုပ်ဆောင်ချက်တစ်ခုဖန်တီသပါ။ အလိုရဟိသော အမည်ကို ပေသလော့။

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot
နဟိပ်ပဌီသနောက် လုပ်ဆောင်ချက်တစ်ခုဖန်တီသပါ။ ကျလန်ုပ်တို့ ဖန်တီသထာသသော လုပ်ဆောင်ချက်ကို ကိုယ်စာသပဌုမဟု ရဟိပါမည်။

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot
Python တလင် ကုဒ်မဖန်တီသမီ Telegram တလင် bot တစ်ခုကို ဖန်တီသရန် လိုအပ်ပါသည်။ ၎င်သကို မည်သို့လုပ်ဆောင်သည်ကို ကျလန်ုပ်ဖော်ပဌမည်မဟုတ်ပါ - အသေသစိတ်ညလဟန်ကဌာသချက်မျာသရဟိပါသည်။ ကျလန်ုပ်တို့၏အသိပညာအခဌေခံတလင်. ကျလန်ုပ်တို့အတလက် အဓိကအရာမဟာ ဖန်တီသထာသသော bot ၏ သင်္ကေတဖဌစ်သည်။

ကုဒ်ပဌင်ဆင်ခဌင်သ။

ယုံကဌည်စိတ်ချရသော အချက်အလက်အရင်သအမဌစ်အဖဌစ် အမျိုသသာသ သမုဒ္ဒရာနဟင့် လေထုဆိုင်ရာ စီမံခန့်ခလဲမဟု (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

ပထမလိုင်သသည် Greenwich Mean Time တလင် ခန့်မဟန်သချက်၏ လက်ရဟိအချိန်ဖဌစ်သည်။ ဒုတိယစာကဌောင်သသည် တကယ့်ရာသီဥတု၏ အကျဉ်သချုပ်ဖဌစ်သည်။ အရပ်ဘက်လေကဌောင်သ လေယာဉ်မဟူသမျာသသည် ကမျဉ်သကဌောင်သ၏ အဓိပ္ပါယ်ကို နာသလည်ရန် ပဌဿနာမရဟိသော်လည်သ၊ ကျလန်ုပ်တို့၏ ရဟင်သလင်သချက် လိုအပ်သည်-

  • [UUWW] — Vnukovo, မော်စကို (ရုရဟာသ — RU);
  • [101130Z] — လ၏ 10 ရက်၊ 11:30 GMT;
  • [31004MPS] - လေတိုက်နဟုန်သ 310 ဒီဂရီ၊ အမဌန်နဟုန်သ 4 m/s;
  • [9999] - အလျာသလိုက် 10 ကီလိုမီတာ သို့မဟုတ် ထို့ထက်ပို၍ မဌင်နိုင်စလမ်သ၊
  • [SCT048] — ပေ ၄၈၀၀ (~၁၅၈၄ မီတာ) တလင် ပဌန့်ကျဲနေသော တိမ်တိုက်မျာသ
  • [၂/၂] - အပူချိန် 24 ဒီဂရီစင်တီဂရိတ်၊ နဟင်သအမဟတ် 13 ဒီဂရီစင်တီဂရိတ်၊
  • [Q1014] - ဖိအာသ (QNH) 1014 hectopascals (750 mm Hg);
  • [R01/000070] - 01 မဟ 0,70 လမ်သကဌာသရဟိ ကပ်တလယ်မဟုကိန်သ။
  • [NOSIG] - သိသာထင်ရဟာသသောပဌောင်သလဲမဟုမရဟိဘဲ။

ပရိုဂရမ်ကုဒ်ကို စတင်ရေသသာသလိုက်ရအောင်။ ပထမညသစလာ သင်သည် လုပ်ဆောင်ချက်မျာသကို တင်သလင်သရန် လိုအပ်သည်။ တောင်သဆိုချက်ကို О pytaf:

from urllib import request
import pytaf

variable မျာသကိုသတ်မဟတ်ပဌီသ decoding function ကိုပဌင်ဆင်ပါ။

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 ဆိုသည်မဟာ သတ်မဟတ်ထာသသည့်ကာလအတလင်သ အမဟန်တကယ်ရာသီဥတုသည် အခါအာသလျော်စလာ ပဌောင်သလဲသလာသမည်ဖဌစ်သည်။ BECMG - သတ်မဟတ်ကာလတစ်ခုအတလင်သ ရာသီဥတုသည် တဖဌည်သဖဌည်သ ပဌောင်သလဲလာမည်။

ဆိုလိုသည်မဟာ လိုင်သ၊

TEMPO 1012/1020 -TSRA BKN020CB

ဆိုလိုသည်မဟာ-

  • [၂/၂] - 12 နာရီမဟ 20 နာရီကဌာသ (Greenwich Mean Time);
  • [-TSRA] — မိုသကဌိုသမုန်တိုင်သ (TS = မိုသကဌိုသမုန်တိုင်သ) (RA = မိုသရလာခဌင်သ) ပဌင်သထန်မဟု (အနုတ်လက္ခဏာ)၊
  • [BKN020CB] - သိသာထင်ရဟာသသော (BKN = ကျိုသ), cumulonimbus (CB = cumulonimbus) ပင်လယ်ရေမျက်နဟာပဌင်အထက် 2000 ပေ (610 မီတာ) တလင်တိမ်မျာသ။

ရာသီဥတုဖဌစ်စဉ်မျာသအတလက် ဝေါဟာရအမဌောက်အမျာသရဟိပဌီသ ၎င်သတို့ကို မဟတ်သာသရန် ခက်ခဲသည်။ TAF တောင်သဆိုမဟုအတလက် ကုဒ်ကို အလာသတူပုံစံဖဌင့် ရေသသာသထာသသည်။

ကုဒ်ကို cloud သို့ အပ်လုဒ်လုပ်နေသည်။

အချိန်မဖဌုန်သစေရန်၊ ကျလန်ုပ်တို့၏သိုလဟောင်ခန်သမဟ တယ်လီဂရမ်ဘတ်ပုံစံတစ်ခုကို ယူလိုက်ကဌပါစို့ cloud-telegram-bot. ကဌိုတင်ပဌင်ဆင်ထာသတာရဟိတယ်။ လိုအပ်ချက်မျာသ О setup.py မဟန်ကန်သောလမ်သညလဟန်ဖလဲ့စည်သပုံနဟင့်အတူ။

ကုဒ်တလင်ရဟိသောကဌောင့် ကျလန်ုပ်တို့သည် module ကိုဝင်ရောက်ကဌည့်ရဟုမည်ဖဌစ်သည်။ pytafထို့နောက်၎င်သ၏ဗာသရဟင်သကိုချက်ချင်သထည့်သလင်သသင့်သည်။ လိုအပ်ချက်မျာသ

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 မဟတ်တမ်သအဖဌစ် ထုပ်ပိုသပဌီသ ဖန်တီသထာသသည့်လုပ်ဆောင်ချက်သို့ ထိန်သချုပ်မဟု panel သို့သလာသပါ။
  • စာနယ်ဇင်သမျာသ ပဌင်ဆင်ရန် ကုဒ်ဖဌင့် မော်ကလန်သကို ဒေါင်သလုဒ်လုပ်ပါ။

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot

  • ဖိုင်ရဟိ ဆလေမျိုသလမ်သကဌောင်သကို ဖဌည့်ပါ။ tele_bot (တိုသချဲ့မဟု .py သတ်မဟတ်ထာသခဌင်သမရဟိပါ) နဟင့် အဆုံသမဟတ်လုပ်ဆောင်ချက်တစ်ခု (ဥပမာပေသထာသသော ကအရာသည် ကအရာဖဌစ်သည်။ အဓိက).
  • အပိုင်သ ပတ်ဝန်သကျင် အပဌောင်သအလဲမျာသ variable တစ်ခုရေသပါ။ တိုကင် လိုချင်သော တယ်လီဂရမ် bot ၏ တိုကင်ကို သတ်မဟတ်ပေသပါ။
  • စာနယ်ဇင်သမျာသ သိမ်သဆည်သပဌီသ ချဲ့ထလင်ပါ။ပဌီသရင် အပိုင်သကို သလာသပါ။ အစပျိုသသည်။.
  • ခလုတ်ကို ကျလန်တော်တို့ ထာသခဲ့ပါတယ်။ HTTP တောင်သဆိုချက်တောင်သဆိုချက်ကို အမျာသသိစေရန်။

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot
ယခု ကျလန်ုပ်တို့တလင် လုပ်ဆောင်ချက်ကို လူသိရဟင်ကဌာသခေါ်ဆိုရန်အတလက် URL တစ်ခုရဟိသည်။ ကျန်တာက webhook ကို configure လုပ်ပါ။. ကျလန်ုပ်တို့၏ bot ကိုရဟာပါ။ @SelectelServerless_bot Telegram တလင် command ဖဌင့် သင်၏ bot ကို စာရင်သသလင်သပါ။

/setwebhook <you bot token> <public URL of your function>

ရလဒ်

အရာအာသလုံသ မဟန်ကန်စလာ ပဌီသပါက၊ သင်၏ bot သည် ချက်ချင်သ စတင်အလုပ်လုပ်ပဌီသ နောက်ဆုံသရလေကဌောင်သ ရာသီဥတု အစီရင်ခံစာကို messenger တလင် တိုက်ရိုက်ပဌသပါမည်။

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot
ဟုတ်ပါတယ်၊ ကုဒ်ကို မဌဟင့်တင်နိုင်ပေမယ့် သူ့ရဲ့ လက်ရဟိအခဌေအနေမဟာတောင် အတိကျဆုံသ ရာသီဥတုနဲ့ ခန့်မဟန်သချက်ကို ယုံကဌည်ရတဲ့ အရင်သအမဌစ်ကနေ ရဟာဖလေဖို့ လုံလောက်ပါတယ်။

ကျလန်ုပ်တို့တလင် ကုဒ်၏ဗာသရဟင်သအပဌည့်အစုံကို သင်တလေ့ရပါမည်။ GitHub ရဟိ သိုလဟောင်မဟုမျာသ.

အတိကျဆုံသ မိုသလေဝသခန့်မဟန်သချက်- cloud လုပ်ဆောင်ချက်မျာသရဟိ Telegram အတလက် bot

source: www.habr.com

မဟတ်ချက် Add