Added Aviation feature (Windir,knots)

This commit is contained in:
dicijr 2019-05-15 00:15:38 -04:00 committed by GitHub
parent 3bd7b55010
commit 61fd7af37a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 14 deletions

View file

@ -19,14 +19,14 @@ class OwmForecasts (WeatherInterface):
return self.api.is_API_online()
except:
return False
def reload(self):
pass
def get_today_forecast (self, location=None):
if self.is_available() is False:
return None
try:
location = self.location if location is None else location
@ -40,10 +40,10 @@ class OwmForecasts (WeatherInterface):
def get_forecast_in_days (self, offset_by_days, location=None):
if offset_by_days is 0:
return self.get_today_forecast(location)
if self.is_available() is False:
return None
location = self.location if location is None else location
try:
forecast = self.api.daily_forecast(location, limit=offset_by_days)
@ -66,16 +66,21 @@ class OwmForecasts (WeatherInterface):
forecast_object.short_description = translate(str(weather.get_status()))
forecast_object.detailed_description = str(weather.get_detailed_status())
forecast_object.air_pressure = str(weather.get_pressure()['press'])
forecast_object.wind_deg = str(int(weather.get_wind()['deg']))
if forecast_object.units == "metric":
forecast_object.air_temperature = str(int(weather.get_temperature(unit='celsius')['temp']))
forecast_object.wind_speed = str(int(weather.get_wind()['speed']))
forecast_object.wind_speed = str(int(weather.get_wind()['speed'])) #kmh
if forecast_object.units == "aviation":
forecast_object.air_temperature = str(int(weather.get_temperature(unit='celsius')['temp']))
forecast_object.wind_speed = str(int(weather.get_wind()['speed'] * 1.94384)) #knots
if forecast_object.units == "imperial":
forecast_object.air_temperature = str(int(weather.get_temperature('fahrenheit')['temp']))
forecast_object.wind_speed = str(int(weather.get_wind()['speed'] * 0.621))
forecast_object.wind_speed = str(int(weather.get_wind()['speed'] * 0.621)) #mph
forecast_object.sunrise = datetime.fromtimestamp(int(weather.get_sunrise_time(timeformat='unix')))
forecast_object.sunset = datetime.fromtimestamp(int(weather.get_sunset_time(timeformat='unix')))
return forecast_object
return forecast_object

View file

@ -30,16 +30,23 @@ class WeatherColumnDesign (DesignEntity):
def __draw_infos__ (self, forecast):
temperature = forecast.air_temperature + " " + self.__get_unit__(("°C", "°F"))
humidity = forecast.air_humidity + "%"
windspeed = forecast.wind_speed + " " + self.__get_unit__(("km/h", "mph"))
if self.forecast.units== "aviation":
if int(forecast.wind_speed)<10:
windspeed = forecast.wind_deg + "@" + "0" + forecast.wind_speed + self.__get_unit__(("", "")) #added degrees, if wind<10 add a 0 to make two digit
else:
windspeed = forecast.wind_deg + "@" + forecast.wind_speed + self.__get_unit__(("", "")) #added degrees
else:
windspeed = forecast.wind_speed + " " + self.__get_unit__(("km/h", "mph"))
numbers_list = [ [ forecast.short_description ],
[ temperature ],
[ humidity ],
[ windspeed ]]
[ windspeed ] ]
ypos = info_x_ypos * self.size[0]
pos = (0, ypos)
size = (self.size[0], self.size[1] + info_yresize * self.size[1] - pos[1])
print(size)
line_spacing = (size[1] - len(numbers_list) * fontsize_static) / (len(numbers_list) + 1)
table = TableDesign(size, numbers_list, fontsize=fontsize_static, line_spacing=line_spacing, column_horizontal_alignments=[ "center" ], max_col_size=[ size[0] ], truncate_text=False, truncate_rows=False)
@ -87,4 +94,4 @@ class WeatherColumnDesign (DesignEntity):
if hours == "24":
return time.strftime('%H:%M')
else:
return time.strftime('%I:%M')
return time.strftime('%I:%M')

View file

@ -29,7 +29,13 @@ class WeatherHeaderDesign (DesignEntity):
return
temperature = cur_weather.air_temperature + " " + self.__get_unit__(("°C", "°F"))
windspeed = cur_weather.wind_speed + " " + self.__get_unit__(("km/h", "mph"))
if units== "aviation": #pick up aviation
if int(cur_weather.wind_speed)<10:
windspeed = cur_weather.wind_deg + "@" + "0" + cur_weather.wind_speed + self.__get_unit__(("", "")) #added degrees, if wind<10 add a 0 to make two digit
else:
windspeed = cur_weather.wind_deg + "@" + cur_weather.wind_speed + self.__get_unit__(("", "")) #added degrees
else:
windspeed = cur_weather.wind_speed + " " + self.__get_unit__(("km/h", "mph"))
self.__draw_text__(temperature, self.__abs_pos__((0.87, 0)), (50,35))
self.__draw_text__(windspeed, self.__abs_pos__((0.297, 0.05)), (100,35))
@ -66,4 +72,4 @@ class WeatherHeaderDesign (DesignEntity):
if hours == "24":
return time.strftime('%H:%M')
else:
return time.strftime('%I:%M')
return time.strftime('%I:%M')

View file

@ -18,7 +18,7 @@ week_starts_on = "Monday"
display_colours = "bwr"
language = "en"
datetime_encoding = "UTF-8" # UTF-8
units = "metric"
units = "metric" #aviation (celcius,degrees/knots), metric (celcius,kmh), imperial(f,mph)
hours = "24"
update_interval = 60
@ -38,4 +38,4 @@ general_settings = { # General settings that designs may use
render_to_display = True
render_to_file = False # Will be called "design_exported.png" in Calendar-directory
calibrate_hours = [0, 12, 18]
print_technical_data = False
print_technical_data = False