diff --git a/Calendar/OwmForecasts.py b/Calendar/OwmForecasts.py index adbb45c..dbc03ed 100644 --- a/Calendar/OwmForecasts.py +++ b/Calendar/OwmForecasts.py @@ -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 \ No newline at end of file + return forecast_object diff --git a/Calendar/WeatherColumnDesign.py b/Calendar/WeatherColumnDesign.py index ae7f7b4..3c5c165 100644 --- a/Calendar/WeatherColumnDesign.py +++ b/Calendar/WeatherColumnDesign.py @@ -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') \ No newline at end of file + return time.strftime('%I:%M') diff --git a/Calendar/WeatherHeaderDesign.py b/Calendar/WeatherHeaderDesign.py index b3c396b..c6d21aa 100644 --- a/Calendar/WeatherHeaderDesign.py +++ b/Calendar/WeatherHeaderDesign.py @@ -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') \ No newline at end of file + return time.strftime('%I:%M') diff --git a/Calendar/settings.py.sample b/Calendar/settings.py.sample index a900641..5a72c4d 100644 --- a/Calendar/settings.py.sample +++ b/Calendar/settings.py.sample @@ -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 \ No newline at end of file +print_technical_data = False