Solar Energy - Introduction to SEBE


Lindberg et al.’s (2015) solar radiation model SEBE (Solar Energy on Building Envelopes) allows estimates of solar irradiance on ground surfaces, building roofs and walls. It uses a shadow casting algorithm with a digital surface model (DSM) and the solar position to generate pixel-level information of shadow or sunlit areas. The shadow casting algorithm (Ratti and Richens 1999) has been developed to incorporate walls (Lindberg et al. 2015). This is of interest for a broad range of applications, for example solar energy potential and thermal comfort.

SEBE is incorporated in UMEP(Urban Multi-scale Environmental Predictor), a plugin for QGIS. As SEBE was initially developed to estimate solar energy potential on building roofs, the Digital Surface Models (DSMs) used need to include roof structures, such as tilted roofs, chimneys etc. Methods to produce accurate ground and building DSMs for SEBE include the use of LiDAR technology and 3D roof structure objects in vector format.

In this exercise you will apply the model in Gothenburg, Sweden and Covent Garden, London to investigate solar energy potential, how it changes between buildings, with seasons, with the effects of vegetation etc.

Initial Practical steps

  • If QGIS is not on your computer you will need to install it
  • Then install the **UMEP** plugin
  • Start the QGIS software
  • Windows: If not visible on the desktop use the Start button to find the software (i.e. Find QGIS under your applications)
  • Select QGIS 2.18 Desktop (or the latest version installed). Do not use QGIS3 at this point.

When you open it on the top toolbar you will see UMEP.


Fig. 54 Location of SEBE in UMEP

  • Read through the section in the online manual BEFORE using the model, so you are familiar with it’s operation and terminology used.

Data for Tutorial


Fig. 55 Central Gothenburg study area (red square). The Open layers plugin in QGIS was used to generate this snapshot.

Geodata and meteorological data for Gothenburg, Sweden.

  • Data are projected in SWEREF99 1200 (EPSG:3007) the national coordinate system of Sweden.

Data requreiments: S: Spatial, M: Meteorological,

Table 4 Input data and parameters
Name Definition Type Description
krbig_dsm.asc Ground and building DSM S Raster dataset: derived from a 3D vector roof structure dataset and a digital elevation model (DEM)
krbig_cdsm.asc Vegetation canopy DSM S Raster dataset: drived from a LiDAR dataset
kr_buildings.shp Building footprint polygon layer S Vector dataset
GBG_typicalweatheryear_1977.txt Meteorological forcing data M Meteorological data, hourly time resolution for 1977 Gothenburg, Sweden.

Datasets in Gothenburg, Sweden

Datasets in London Covent Garden

Google map link to Covent Garden


  1. Start with the Gothenbrug data. If the data are zipped - unzip the data first.
  2. Examine the geodata by adding the layers to your project.
  3. Use Layer > Add Layer > Add Raster Layer to open the .asc raster files and Layer > Add Layer > Add Vector Layer. The Vector layer is a shape file which consists of multiple files. It is the kr_building.shp that should be used to load the vector layer into QGIS.
  4. You will need to indicate the co-ordinate system (CRS) that is associated with these data. If you look at the lower right hand side you can see the CRS used in the current QGIS project.
    • You can use the filter to find this then.
    • Select SWEREF99 1200 as CRS and the files will load into the map canvas.
    • Do this for all of the geodata files.
  5. Open the meteorological file in a text editor or in a spreadsheet such as MS excel or LibreOffice (Open office).
    • Data file is formatted for the UMEP plugin (in general) and the SEBE plugin (in particular).
    • First four columns are time related.
    • Columns of interest are kdown, kdiff and kdir. These are related to shortwave radiation and give global, diffuse and direct radiation, respectively.
    • The meteorological file should be at least a year long, but preferably multi-year.
    • One option is to use a **typical meteorological year** as you will do in this tutorial

Variables included in the meteorological data file. No. indicates the column the file is in. Use indicates if it is R – required or O- optional (in this application) or N- Not used in this application. All columns must be present but can be filled with numbers to indicate they are not in use (e.g. -999).

No. USE Column name Description
1 R iy Year [YYYY]
2 R id Day of year [DOY]
3 R it Hour [H]
4 R imin Minute [M]
5 N qn Net all-wave radiation [W m-2]
6 N qh Sensible heat flux [W m-2]
7 N qe Latent heat flux [W m-2]
8 N qs Storage heat flux [W m-2]
9 N qf Anthropogenic heat flux [W m-2]
10 N U Wind speed [m s-1]
11 O RH Relative Humidity [%]
12 O Tair Air temperature [°C]
13 N pres Barometric pressure [kPa]
14 N rain Rainfall [mm]
15 R kdown Incoming shortwave radiation [W m-2] Must be >= 0 W m-2.
16 N snow Snow [mm]
17 N ldown Incoming longwave radiation [W m-2]
18 N fcld Cloud fraction [tenths]
19 N Wuh External water use[m3]
20 N xsmd Observed soil moisture [m3 m-3 or kg kg-1]
21 N lai Observed leaf area index [m2 m-2]
22 O kdiff Diffuse radiation [W m-2]
23 O kdir Direct radiation [W m-2]
24 N wdir Wind direction [°]

Preparing data for SEBE

SEBE plugin: located at UMEP -> Processor -> Solar Energy -> Solar Energy on Building Envelopes (SEBE) in the menu bar.


Fig. 56 The interface for SEBE in UMEP

  1. Top frame: for input data for the SEBE calculations.

    • Critical is the building and ground DSM for the calculations in SEBE.

    • Optionally vegetation (trees and bushes) can be included as they can shadow buildings, walls and roofs reducing the potential solar energy production

    • Two vegetation DSMs are required when the Use vegetation DSMs is ticked:

      • One to describe the top of the vegetation (Vegetation Canopy DSM).
      • One to describe the bottom, underneath the canopies (Vegetation Trunk Zone DSM).

      As Trunk Zone DSMs are very rare, an option to create this from the canopy DSM is available. You can set the amount of light (shortwave radiation) that is transmitted through the vegetation.

  2. Two raster datasets, height and wall aspect, are needed to calculate irradiance on building walls.

    • The average albedo (one value is used for all surfaces) can be changed.
  3. The UTC offset is needed to accurately estimate the sun position, positive numbers for easterly position and negative for westerly. For example, Gothenburg is located in CET which is UTC +1.

  4. Meteorological file needs to be specified.

  5. Wall data are created with the UMEP plugin - **Wall Height and Aspect**:

    • This uses a 3 by 3 pixels kernel minimum filter where the four cardinal points (N, W, S,E) are investigated. The pixels just ‘inside’ the buildings are identified and give values to indicate they are a building edge. The aspect algorithm originates from a linear filtering technique (Goodwin et al. 2009). It identifies the linear features plus (a new addition) the aspect of the identified line. Other more accurate techniques include using a vector building layer and spatially relating this to the wall pixels.
  6. UMEP -> Pre-Processor -> Urban Geometry -> Wall Height and Aspect.

  7. Close the SEBE plugin and open the Wall and Height and Aspect plugin

  8. Use your ground and building DSM as input

  9. Tick the option to Calculate wall aspect.

  10. Create a folder in your Documents folder called e.g. SEBETutorial

  11. Use this to save the result.

  12. Name your new raster datasets aspect and height, respectively.

  13. Tick: Add result to project and click OK.

Running the model

Now you have all data ready to run the model.

Settings for running SEBE without vegetation.

Fig. 57 Example of settings for running SEBE without vegetation.

  1. First run the model without including vegetation.
    • Open the SEBE-plugin again
    • Make the setting according to the figure to the LHS
    • Save your results in a subfolder (NoVeg) of SEBETutorial.
    • The model takes some time to calculate irradiance on all the surfaces.
    • The result added to your map canvas is the horizontal radiation, i.e. irradiance on the ground and roofs.
  2. Run the model again but this time also use the vegetation DSM.
    • Save your result in a subfolder called Veg.

Irradiance on building envelopes (alternatively see the tips below – currrently better)

To determine the irradiance on building walls:

  1. Open the SunAnalyser located at UMEP > Post-Processor > Solar Radiation > SEBE (Visualisation).
    • This can be used to visualize the irradiance on both roofs and walls.
  2. Choose the input folder where you saved your result for one of the runs.
  3. Mark an area with the tool (Area of Visualisation) on the map canvas by click first once
  4. Drag to produce an area
  5. Click again to finish.
  6. Click Visualise. Now you should be able to see the results in 3D.

3D Visualisation for Mac currently not working properly

Use the Profile tool, which is a plugin for QGIS, to see the range of values along a transect.

  1. Plugins > Profile tool > Terrain profile.
    • Draw a line across the screen on the area of interest. Double click and you will see the profile drawn. Make certain you use the correct layer (see Tips).
  2. If this is not installed you will need to install it from official QGIS-plugin reporistory (Plugins > Manage and Install Plugins).

Solar Energy Potential

In order to obtain the solar energy potential for a specific building:

  1. The actual area of the roof needs to be considered.

  2. Determine the area of each pixel (AP): e.g. 1 m2

  3. As some roofs are tilting the area may be larger for some pixels. The actual area (AA) can be computed from:

    AA = AP / cos(Si)

    where the slope (Si) of the raster pixel should be in radians (1 deg = pi/180 rad).

To make a slope raster:

  1. Raster > Terrain analysis > Slope. If the tool is missing, Go to Manage and Install Plugins and activate (Raster Terrain Analysis Plugin)
  2. Use the DSM for elevation layer
  3. Create the slope z factor =1 - area

Fig. 58 The Slope tool in QGIS

Use the raster menu: Raster> Raster Calculator.

  1. To determine the area after you have removed the wall area from the buildings.
  2. Enter the equation indicated.
  3. To visualize where to place solar panels the amount of energy received needs to be cost effective. As irradiance below 900 kWh is considered to be too low for solar energy production (Per Jonsson personal communication Tyréns Consultancy), pixel cells lower than 900 can be filtered out (Figure LHS). Transparency – allows you to make visible above a threshold of interest.
    • Right-click on the Energyyearroof-layer and go to Properties and then Transparency.
    • Add a custom transparency (green cross) where values between 0 and 900 are set to 100% transparency.

Fig. 59 The RasterCalculator in QGIS

Irradiance map with values less than 900 kWh filtered out

To estimate solar potential on building roofs we can use the Zonal statistics tool:

  1. Raster > Zonal statistics.

    • Use the roof area raster layer (energyPerm2_slope65_RoofArea) created before and use kr_building.shp as the polygon layer to calculate as your zone layer. Make sure that you calculate sum statistics.
  2. On your building layer – Right click Open Attribute Table

  3. Or use the identifier to click a building (polygon) of interest to see the statistics you have just calculated

    Note that we will not consider the performance of the solar panels.


    Fig. 60 Irradiance map on building roofs in Gothenburg

Covent Garden data set

A second GIS data set is available for the Covent Garden area in London

  1. Close the Gothenburg data (it may be easiest to completely close QGIS and re-open).
  2. Download from 1
  3. Add the Covent Garden data
  4. Extract the data to a directory
  5. Load the Raster data (DEM, DSM) files (as you did before)
  6. Shadows

Questions for you to explore with UMEP:SEBE

  1. Use the Gothenburg dataset consider the impact of vegetation.
    • What are the main differences between the two model runs with respect to ground and roof surfaces?
    • To what extent are the building roofs affected by vegetation?
  2. Consider the differences between London and Gothenburg. You can run the model for different times of the year by modifying the meteorological data so the file only has the period of interest.
  3. For Covent Garden, determine the solar energy potential for a specific building within the model domain. Work in groups to consider different areas. What would be the impact of having a smaller/larger area domain modelled for this building? Identify the possibilities of solar energy production for that building.


  • Goodwin NR, Coops NC, Tooke TR, Christen A, Voogt JA 2009: Characterizing urban surface cover and structure with airborne lidar technology. Can J Remote Sens 35:297–309
  • Lindberg F, Jonsson P, Honjo T, Wästberg D 2015: Solar energy on building envelopes - 3D modelling in a 2D environment. Solar Energy. 115, 369–378
  • Ratti CF, Richens P 1999: Urban texture analysis with image processing techniques Proc CAADFutures99, Atlanta, GA

Authors of this document: Lindberg and Grimmond (2015, 2016)

Contributors to the material covered

  • University of Gothenburg: Fredrik Lindberg
  • University of Reading: Sue Grimmond
  • Background work also comes from: UK (Ratti & Richens 1999), Sweden (Lindberg et al. 2015), Canada (Goodwin et al. 2009)

In the repository of UMEP you can find the code and report bugs and other suggestions on future improvments.


Meteorological file in UMEP has a special format. If you have data in another format there is a UMEP plugin that can convert your meteorological data into the UMEP format.

  • Plugin is found at UMEP > Pre-Processor > Meteorological data >Prepare Existing data.

Plugin to visualize data in 3D: called Qgis2Threejs.

  • Available for download from the official repository Plugins -> Manage and Install Plugins.

Fig. 61 3D visualisation with Qgis2Threejs over Convent Garden

TIFF (TIF) and ASC are raster data file formats In the left Hand Side there is a list of layers.

  • The layer that is checked at the top of the list is the layer that is seen, If you want to see another layer you can either:

#*Un-tick the layers above the one you are interested in and/or

#*Move the layer you are interested in to the top of the list by dragging it.

You can save all of you work for different areas as a project – so you can return to it as whole.

  • Project > Save as

You can change the shading etc. on different layers.

  • Right Click on the Layer name Properties > Style > Singlebandpseudo color
  • Choose the color band you would like.
  • Classify
  • Numerous things can be modified from this point.

UMEP repository.