Source code for pythermalcomfort.models.at

from pythermalcomfort.psychrometrics import psy_ta_rh


[docs]def at(tdb, rh, v, q=None, **kwargs): """Calculates the Apparent Temperature (AT). The AT is defined as the temperature at the reference humidity level producing the same amount of discomfort as that experienced under the current ambient temperature, humidity, and solar radiation [17]_. In other words, the AT is an adjustment to the dry bulb temperature based on the relative humidity value. Absolute humidity with a dew point of 14°C is chosen as a reference. [16]_. It includes the chilling effect of the wind at lower temperatures. Two formulas for AT are in use by the Australian Bureau of Meteorology: one includes solar radiation and the other one does not (http://www.bom.gov.au/info/thermal_stress/ , 29 Sep 2021). Please specify q if you want to estimate AT with solar load. Parameters ---------- tdb : float dry bulb air temperature,[°C] rh : float relative humidity, [%] v : float wind speed 10m above ground level, [m/s] q : float Net radiation absorbed per unit area of body surface [W/m2] Other Parameters ---------------- round: boolean, default True if True rounds output value, if False it does not round it Returns ------- at: float apparent temperature, [°C] Examples -------- .. code-block:: python >>> from pythermalcomfort.models import at >>> at(tdb=25, rh=30, v=0.1) 24.1 """ default_kwargs = { "round": True, } kwargs = {**default_kwargs, **kwargs} # dividing it by 100 since the at eq. requires p_vap to be in hPa p_vap = psy_ta_rh(tdb, rh).p_vap / 100 # equation sources [16] and http://www.bom.gov.au/info/thermal_stress/#apparent if q: t_at = tdb + 0.348 * p_vap - 0.7 * v + 0.7 * q / (v + 10) - 4.25 else: t_at = tdb + 0.33 * p_vap - 0.7 * v - 4.00 if kwargs["round"]: t_at = round(t_at, 1) return t_at