SOLWEIG¶
Spatially resolved mean radiant temperature and thermal comfort modelling for urban environments.
Experimental
This package and QGIS plugin are released for testing and discussion purposes. The API is stabilising but may change. Feedback and bug reports are welcome — open an issue.
SOLWEIG computes Mean Radiant Temperature (Tmrt) and thermal comfort indices (UTCI, PET) for urban environments. Given a building height model and weather data, it produces high-resolution maps of the radiation environment experienced by a person at ground level.
Attribution
This package is adapted from the UMEP (Urban Multi-scale Environmental Predictor) platform by Fredrik Lindberg, Sue Grimmond, and contributors. If you use SOLWEIG in your research, please cite the original papers.
DSM/DEM data: PNOA-LiDAR, Instituto Geográfico Nacional (IGN), Spain. CC BY 4.0.
Intended Users¶
- Urban planners comparing street designs, tree planting, or cool-roof strategies
- Researchers conducting microclimate experiments at 1 m resolution
- Climate service providers generating heat-risk maps for public health or events
- Students studying urban radiation and thermal comfort
Minimal Example¶
import solweig
# Load building heights and weather data
surface = solweig.SurfaceData.prepare(dsm="dsm.tif", working_dir="cache/")
weather_list = solweig.Weather.from_epw("weather.epw", start="2025-07-01", end="2025-07-03")
location = solweig.Location.from_epw("weather.epw")
# Run calculation — results saved as GeoTIFFs
solweig.calculate(
surface=surface,
weather=weather_list,
location=location,
output_dir="output/",
)
SurfaceData.prepare() performs all preprocessing (walls, SVF, shadow matrices); calculate() uses these to compute shadows, radiation, and Tmrt. The anisotropic sky model is enabled by default.
Model Overview¶
SOLWEIG models the complete radiation budget experienced by a person standing outdoors:
- Shadows — Determination of shaded pixels from buildings and trees
- Sky View Factor — Fraction of open sky visible from each point
- Surface temperatures — Ground and wall temperature estimation
- Radiation balance — Summation of shortwave (solar) and longwave (thermal) fluxes from all directions
- Tmrt — Conversion of absorbed radiation into mean radiant temperature
- Thermal comfort — Optional derivation of UTCI or PET indices
SVF Rule
SurfaceData.prepare() computes SVF as part of surface preparation. SVF data must exist before calling calculate().
Anisotropic Rule
The anisotropic sky model is enabled by default (use_anisotropic_sky=True). It requires the SVF and shadow matrices produced by prepare().
Documentation¶
-
Getting Started
Install SOLWEIG and run an initial calculation
-
Tutorials
Step-by-step notebooks with Athens data and visual outputs
-
User Guide
Common workflows: loading GeoTIFFs, timeseries, thermal comfort
Basic Usage Working with GeoTIFFs Timeseries Thermal Comfort
-
API Reference
Complete reference for all classes and functions
-
Physics
Scientific documentation of the radiation model
-
QGIS Plugin
Spatial analysis in QGIS without scripting
Citation¶
If you use SOLWEIG in your research, please cite the original model paper and the UMEP platform:
-
Lindberg F, Holmer B, Thorsson S (2008) SOLWEIG 1.0 – Modelling spatial variations of 3D radiant fluxes and mean radiant temperature in complex urban settings. International Journal of Biometeorology 52, 697–713 doi:10.1007/s00484-008-0162-7
-
Lindberg F, Grimmond CSB, Gabey A, Huang B, Kent CW, Sun T, Theeuwes N, Järvi L, Ward H, Capel-Timms I, Chang YY, Jonsson P, Krave N, Liu D, Meyer D, Olofson F, Tan JG, Wästberg D, Xue L, Zhang Z (2018) Urban Multi-scale Environmental Predictor (UMEP) – An integrated tool for city-based climate services. Environmental Modelling and Software 99, 70-87 doi:10.1016/j.envsoft.2017.09.020
License¶
GNU Affero General Public License v3.0. See LICENSE for details.