Caught up to C++

Signed-off-by: fly <merspieler@airmail.cc>
This commit is contained in:
fly 2020-05-03 22:46:39 +10:00
parent 7be97e1a91
commit a5c1e72cac
6 changed files with 191 additions and 0 deletions

View file

@ -1,8 +1,27 @@
#! /usr/bin/python3
# Copyright (C) 2020 Merspieler, merspieler _at_ airmail.cc
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import pygrib
import sys
from config import config
from dataCycle import dataCycle
from fg import connection
from wind import windpoint
from functions import getForecast, getFilename, getMillibars
conf = config()

View file

@ -1,3 +1,19 @@
# Copyright (C) 2020 Merspieler, merspieler _at_ airmail.cc
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import sys
import os

View file

@ -0,0 +1,28 @@
# Copyright (C) 2020 Merspieler, merspieler _at_ airmail.cc
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
from time import time, gmtime
class dataCycle:
def __init__(self):
timeStamp = gmtime(time() - 18000)
self.hour = timeStamp.tm_hour
self.day = timeStamp.tm_mday
self.month = timeStamp.tm_mon
self.year = timeStamp.tm_year
self.cycle = self.hour - (self.hour % 6)
def getString(self):
return '{:04d}{:02d}{:02d}/{:02d}'.format(self.year, self.month, self.day, self.cycle)

20
fg.py
View file

@ -0,0 +1,20 @@
# Copyright (C) 2020 Merspieler, merspieler _at_ airmail.cc
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class connection:
def sendData(wp):
# TODO
pass

View file

@ -0,0 +1,79 @@
# Copyright (C) 2020 Merspieler, merspieler _at_ airmail.cc
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
from time import time, gmtime
def getForecast(cycle):
ts = gmtime(time() - 18000)
return ts.tm_hour - (ts.tm_hour % 3)
def getFilename(dc, fc):
return 'gfs.t{:02d}z.pgrb2full.0p50.f0{:02d}'.format(dc.cycle, fc)
def getMillibars(alt):
if alt < 710 or alt > 54000: # 1000mb and 75mb
return -9999;
if alt >= 710 and alt < 1410:
return 975;
if alt >= 1410 and alt < 2135:
return 950;
if alt >= 2135 and alt < 2875:
return 925;
if alt >= 2875 and alt < 4000:
return 900;
if alt >= 4000 and alt < 5600:
return 850;
if alt >= 5600 and alt < 7235:
return 800;
if alt >= 7235 and alt < 8995:
return 750;
if alt >= 8995 and alt < 10820:
return 700;
if alt >= 10820 and alt < 12775:
return 650;
if alt >= 12775 and alt < 14865:
return 600;
if alt >= 14865 and alt < 17100:
return 550;
if alt >= 17100 and alt < 19530:
return 500;
if alt >= 19530 and alt < 22160:
return 450;
if alt >= 22160 and alt < 25065:
return 400;
if alt >= 25065 and alt < 27450:
return 350;
if alt >= 27450 and alt < 29170:
return 325;
if alt >= 29170 and alt < 31000:
return 300;
if alt >= 31000 and alt < 32965:
return 275;
if alt >= 32965 and alt < 35100:
return 250;
if alt >= 35100 and alt < 37400:
return 225;
if alt >= 37400 and alt < 39950:
return 200;
if alt >= 39950 and alt < 42800:
return 175;
if alt >= 42800 and alt < 46000:
return 150;
if alt >= 46000 and alt < 49750:
return 125;
if alt >= 49750 and alt < 54000:
return 100;
return -9999;

29
wind.py
View file

@ -0,0 +1,29 @@
# Copyright (C) 2020 Merspieler, merspieler _at_ airmail.cc
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class wind:
direction = 0
speed = 0
class windpoint:
def __init__(self):
self.lat = 0
self.lon = 0
self.winds = []
i = 0
while i < 9:
self.winds.append(wind())
i += 1