☀️ UrbIrrad for solar radiation calculations with Radiance

Ever found yourself negotiating with Radiance command-line options, or exploring Honeybee, then wishing for a smaller workflow focused on solar radiation? UrbIrrad provides a Python and YAML workflow to turn geometry and weather data into irradiance on a sensor mesh.

UrbIrrad logo

Sunlight in cities and buildings

Developed at L’hypercube, UrbIrrad uses Radiance, through PyRadiance, to calculate shading, transmission through glazing and reflected contributions. The “Urb” in its name describes its origins, not a restriction to outdoor spaces: sensors can be placed in a street, courtyard, building, atrium or semi-open space.

Scene containing a glazed building and surrounding urban obstacles

A demonstration scene combining a building, glazing, ground and surrounding obstacles. The sensor mesh can cover both indoor and outdoor areas.

The tool can calculate separate components:

  • Direct solar irradiance, including shading and glazing transmission.
  • Sky-diffuse irradiance, including permitted diffuse reflections within the scene.
  • Diffuse reflections of direct sunlight, as an optional component.
  • Irradiance in six directions, particularly as inputs to comfort studies.
  • Potential sunshine hours, using a geometric mode without clouds or weather irradiance.

Direct solar irradiance on a sensor mesh

The solar_direct field, in W/m², shows sunlight received on the sensor plane after projection, obstruction and any glazing transmission.

One configuration file and a command

Version 0.1.1 is available on PyPI. In a Python 3.12 or newer environment:

python -m pip install urbirrad

Download the example case and its data , describe surfaces, materials, sensors and dates in YAML, then run:

python -m urbirrad.cli run case.yaml --nproc 8

Time series are stored in HDF5, with an XDMF companion for ParaView. Potential sunshine mode produces a static cumulative field rather than a time series.

What about runtime

In our trials, the direct calculation is very fast and the diffuse calculation remains quite reasonable. Reflected direct is substantially more expensive on its first run, because it requires more sampling of reflected paths. Coefficient matrices are cached to speed up subsequent calculations when the scene and numerical settings remain unchanged. These observations are not runtime guarantees: geometry, sensor count, accuracy settings and hardware all matter.

UrbIrrad is under active development. Its scope is shortwave solar radiation: it calculates neither longwave thermal radiation nor complete mean radiant temperature.

Learn more

Test cases, user feedback and scientific nitpicking welcome!