import math import pandas as pd import helpers.constants as cte class Weather(object): @staticmethod def sky_temperature(ambient_temperature): # Swinbank - Fuentes sky model approximation(1963) based on cloudiness statistics(32 %) in United States # ambient temperatures( in °C) # sky temperatures( in °C) _ambient_temperature = ambient_temperature[['temperature']].to_numpy() values = [] for temperature in _ambient_temperature: value = 0.037536 * math.pow((temperature + cte.celsius_to_kelvin), 1.5) \ + 0.32 * (temperature + cte.celsius_to_kelvin) - cte.celsius_to_kelvin values.append(value) return pd.DataFrame(values, columns=['sky temperature'])