Skip to content

Thermal Comfort Indices

Tmrt quantifies the radiation absorbed by a person, but thermal comfort also depends on air temperature, humidity, and wind speed. SOLWEIG computes two standard indices that combine these variables into a single equivalent temperature.

UTCI (Universal Thermal Climate Index)

UTCI represents the air temperature of a reference environment that would produce the same thermal strain as the actual conditions. It is the most widely used outdoor thermal comfort index.

Applicable when: A standardised metric is needed for heat stress mapping, urban planning, or public health applications.

Summary grids (default)

UTCI summary grids (mean, max, min, day/night averages) are computed as part of TimeseriesSummary:

summary = solweig.calculate(surface=surface, weather=weather_list, output_dir="output/")
print(summary.report())  # Includes Tmrt, UTCI, sun hours, threshold exceedance

Per-timestep GeoTIFFs

Include "utci" in outputs to save per-timestep UTCI GeoTIFFs:

summary = solweig.calculate(
    surface=surface,
    weather=weather_list,
    output_dir="output/",
    outputs=["tmrt", "utci"],
)

From a single result

result = solweig.calculate(surface, location, weather, output_dir="output/")
utci = result.compute_utci(weather)
print(f"Mean UTCI: {utci.mean():.1f} deg C")

UTCI stress categories

UTCI (deg C) Thermal stress
> 46 Extreme heat stress
38 to 46 Very strong heat stress
32 to 38 Strong heat stress
26 to 32 Moderate heat stress
9 to 26 No thermal stress
0 to 9 Slight cold stress
-13 to 0 Moderate cold stress
-27 to -13 Strong cold stress
< -40 Extreme cold stress

Interpreting results

On a clear summer day (air temperature approximately 32 deg C), typical values are:

  • Sunlit areas: Tmrt 55–70 deg C, UTCI 35–45 deg C (strong to very strong heat stress)
  • Shaded areas: Tmrt 35–45 deg C, UTCI 28–34 deg C (moderate to strong heat stress)
  • Shade effect: Tree shade typically reduces UTCI by 5–15 K, often sufficient to shift one stress category

Values outside these ranges are not necessarily erroneous — they depend on latitude, time of year, and surface materials — but extreme outliers (e.g., Tmrt > 80 deg C or UTCI > 55 deg C) may indicate input data issues.

Performance

UTCI uses a polynomial approximation (~200 terms). Processing time is negligible relative to the main Tmrt calculation:

  • Single grid: ~1 ms
  • 72 timesteps: ~1 s

PET (Physiological Equivalent Temperature)

PET is the air temperature of a reference indoor environment at which the human heat balance equals the actual outdoor conditions. Unlike UTCI, PET accepts customisable body parameters.

Applicable when: Thermal comfort assessments for specific populations (elderly, children, athletes) are required, or when the physiological model is needed for research purposes.

Per-timestep PET

Include "pet" in outputs:

summary = solweig.calculate(
    surface=surface,
    weather=weather_list,
    output_dir="output/",
    outputs=["tmrt", "pet"],
    human=solweig.HumanParams(weight=60, height=1.65, age=70),
)

Single-result PET

result = solweig.calculate(surface, location, weather, output_dir="output/")
pet = result.compute_pet(weather)
print(f"Mean PET: {pet.mean():.1f} deg C")

With custom human parameters

pet = result.compute_pet(
    weather,
    human=solweig.HumanParams(
        weight=60,           # kg
        height=1.65,         # m
        age=70,              # years
        sex=2,               # 1=male, 2=female
        activity=80.0,       # metabolic rate (W)
        clothing=0.5,        # clothing insulation (clo)
        posture="standing",
    ),
)

PET thermal sensation

PET (deg C) Perception Physiological stress
> 41 Very hot Extreme heat stress
35 to 41 Hot Strong heat stress
29 to 35 Warm Moderate heat stress
23 to 29 Slightly warm Slight heat stress
18 to 23 Comfortable No thermal stress
13 to 18 Slightly cool Slight cold stress
8 to 13 Cool Moderate cold stress
4 to 8 Cold Strong cold stress
< 4 Very cold Extreme cold stress

PET performance

PET uses an iterative solver and requires more computation time than UTCI:

  • Single grid: ~50 ms
  • 72 timesteps: ~1 minute

PET computation time

PET requires iterative solving and takes approximately 50 times longer than UTCI per timestep. For large-scale studies, consider whether the customisable body parameters offered by PET are required.


Choosing Between UTCI and PET

UTCI PET
Computation Polynomial approximation Iterative solver
Human parameters Fixed reference person Customisable (age, weight, clothing, etc.)
Typical applications Heat warnings, urban planning, large-scale mapping Detailed comfort studies, vulnerable populations
Common in European heat action plans, WMO guidelines German VDI guidelines, bioclimatology research

UTCI is computationally efficient and has standardised stress categories referenced in public health guidance. PET allows customisation of individual body parameters for population-specific comfort studies.