コード例 #1
0
ファイル: weather.py プロジェクト: damonkohler/pypert
 def Display(self):
     fetcher = pymetar.ReportFetcher()
     report = fetcher.FetchReport(self.icao)
     parser = pymetar.ReportParser()
     parser.ParseReport(report)
     temperature = report.getTemperatureCelsius()
     # NOTE(damonkohler): There is no 'Weather' heading for clear weather.
     weather = report.getWeather() or 'Clear'
     self.pert.Clear()
     self.pert.WrapMessage('%d\xdfC %s' % (temperature, weather))
コード例 #2
0
def get_metar(station):
	'''fetch the METAR for a given station and return a pymetar object'''
	wx_fetcher = pymetar.ReportFetcher()
	dest = station + '.TXT'
	if not os.path.exists(dest): # pull from network
		raw_report = wx_fetcher.FetchReport(station)
		data = urllib2.urlopen(raw_report.reporturl).read()
		fd = open(dest, 'a+')
		fd.write(data)
		fd.close()
	else: # use local cache
		fd = open(dest)
		report_text = fd.read()
		fd.close()
		raw_report = wx_fetcher.MakeReport(station, report_text)

	wx_parser = pymetar.ReportParser()
	wx_report = wx_parser.ParseReport(raw_report)
	return wx_report
コード例 #3
0
    def run(self):
        print("Starting scanner for ", self.station)

        while self.shouldRun():
            try:
                report = self.io.FetchReport(self.station)
                pymetar.ReportParser().ParseReport(report)

                rtime = iso2sec(report.getISOTime())
                report._updatetime = rtime
                #print('update',report.getISOTime(),rtime,self.lastUpdate)

                if self.lastUpdate is not None:
                    if self.lastUpdate >= rtime:
                        #print('No update, Wait a little longer next time')
                        self.updatePeriod = self.initPeriod

                    else:  # self.lastUpdate < rtime
                        #print('Got an update')
                        self.updatePeriod = rtime - self.lastUpdate
                        self.updatePeriod = max(
                            self.minPeriod,
                            min(self.updatePeriod, self.maxPeriod))
                        self.updatePeriod += 15 * 60.0
                        self.scan.interrupt(reason=report)
                else:
                    self.scan.interrupt(reason=report)

                self.lastUpdate = rtime

            except Exception as e:
                print("download error for", self.station, ":", e)
                self.updatePeriod = self.initPeriod

            self.intscan.interrupt()

            #print('Waiting',self.updatePeriod)
            self.sleep(self.updatePeriod)

        print('Done')
コード例 #4
0
from gps import *                                         # GPS

# ========================
# Switches
# ========================
t1 = os.getpid()
DEBUG = 1
LOGGER = 0

# ========================
# Metar declare
# ========================
station = "KPNE"
rf=pymetar.ReportFetcher(station)
rep=rf.FetchReport()
rp=pymetar.ReportParser()
pr=rp.ParseReport(rep)
locAS = 1013.25

# ========================
# COSM variables
# ========================
#API_KEY = '1nmfR0zAp8X0jB27soRr6qCxk_iSAKx5NUJHNGJYajZobz0g'
#FEED = 79880
#API_URL = '/v2/feeds/{feednum}.xml' .format(feednum = FEED)

# ========================
# Setup
# ========================

class BmpPoller(threading.Thread):
コード例 #5
0
ファイル: weather-pymetar.py プロジェクト: ways/pyyrascii
def getWeather(station):
    rf = pymetar.ReportFetcher(station)
    rep = rf.FetchReport()
    rp = pymetar.ReportParser()
    return rp.ParseReport(rep)
コード例 #6
0
ファイル: weather.py プロジェクト: scorninpc/awn-extras
    def get_report(self, report_fetcher):
        # Fetching the report may take a couple of seconds
        fetched_report = report_fetcher.FetchReport()

        return metar.ReportParser(fetched_report).ParseReport()
コード例 #7
0
def getWeather():
    fetch = pymetar.ReportFetcher(weatherCode)
    pars = pymetar.ReportParser(fetch.FetchReport())
    pars.ParseReport()
    uinterface.console.AppendText(
        str(pars.Report.temp) + " C " + str(pars.Report.weather) + "\n")
コード例 #8
0
ファイル: pywestat.py プロジェクト: Nic0/pywestat
 def retrieve_report(self):
     rf = pymetar.ReportFetcher(self.station)
     rep = rf.FetchReport()
     rp = pymetar.ReportParser()
     return rp.ParseReport(rep)