ladybug_comfort.utci module

Utility functions for calculating Universal Thermal Climate Index (UTCI).

UTCI is a thermal comfort model strictly for the outdoors. It is an international standard for outdoor temperature sensation (aka. “feels-like” temperature) and is one of the most common of such “feels-like” temperatures used by meteorologists. UTCI that attempts to satisfy the following requirements:

  1. Thermo-physiological significance in the whole range of heat

    exchange conditions of existing thermal environments

  2. Valid in all climates, seasons, and scales

  3. Useful for key applications in human biometeorology.

While UTCI is designed to be valid in all climates and seasons, it assumes that human subjects are walking (with a metabolic rate around 2.4 met) and that they naturally adapt their clothing with the outdoor temperature. For outdoor situations that do not fit these criteria, the Physiological Equivalent Temperature (PET) model is recommended.

ladybug_comfort.utci.calc_missing_utci_input(target_utci, utci_inputs, low_bound=0.0, up_bound=100.0, tolerance=0.001)[source]

Return the value of a missing_utci_input given a target_utci and the 3 other inputs.

This is particularly useful when trying to draw comfort polygons on charts using the UTCI model.

  • target_utci – The target UTCI temperature that you are trying to produce from the inputs to the UTCI model.

  • utci_inputs

    A dictionary of 4 UTCI inputs with the following keys:

    ’ta’, ‘tr’, ‘vel’, ‘rh’. Each key should correspond to a value that represents that UTCI input but one of these inputs should have a value of None. The input corresponding to None will be solved for by this function. One can also input None for both ‘ta’ and ‘tr’ to solve for the operative temperature that meets the target_utci. In this case, both ‘ta’ and ‘tr’ in the output dictionary will be the same. Example (solving for relative humidity):

    {'ta': 20, 'tr': 20, 'vel': 0.05, 'rh': None}

  • low_bound – The lowest possible value of the missing input you are tying to find. Putting in a good value here will help the model converge to a solution faster. (Default: 0).

  • up_bound – The highest possible value of the missing input you are tying to find. Putting in a good value here will help the model converge to a solution faster. (Default: 100).

  • tolerance – The acceptable error in the target_utci. (Default: 0.001).


complete_utci_inputs – A copy of the utci_inputs dictionary but with values for all inputs. The missing input to the UTCI model will be filled by the value that returns the target_utci.


Calculate saturated vapor pressure (hPa) at temperature (C).

This equation of saturation vapor pressure is specific to the UTCI model.

ladybug_comfort.utci.universal_thermal_climate_index(ta, tr, vel, rh)[source]

Calculate Universal Thermal Climate Index (UTCI) using a polynomial approximation.

This function here is a Python version of the original UTCI_approx application written in Fortran. Version a 0.002, October 2009 The original Fortran code can be found at


[1] Peter Bröde, Dusan Fiala, Krzysztof Blazejczyk, Yoram Epstein, Ingvar Holmér, Gerd Jendritzky, Bernhard Kampmann, Mark Richards, Hannu Rintamäki, Avraham Shitzer, George Havenith. 2009. Calculating UTCI Equivalent Temperature. In: JW Castellani & TL Endrusick, eds. Proceedings of the 13th International Conference on Environmental Ergonomics, USARIEM, Natick, MA.

  • ta – Air temperature [C]

  • tr – Mean radiant temperature [C]

  • vel – Wind speed 10 m above ground level [m/s]. Note that this meteorological speed at 10 m is simply 1.5 times the speed felt at ground in the original Fiala model used to build UTCI.

  • rh – Relative humidity [%]


UTCI_approx – The Universal Thermal Climate Index (UTCI) for the input conditions as approximated by a 4-D polynomial.