Urban Heat Islands

Urban Heat Islands


The German Weather Service (DWD) defines urban heat islands as follows:

“The urban heat island is a typical feature of the urban climate. It is characterised by the difference in air temperature between the hotter city and its cooler surrounding countryside and reaches its maximum during night-time under cloudless and calm weather conditions. This difference can be as much as 10 Kelvin in large cities. The air temperature in cities depends strongly in part on building geometry, the thermal properties of the building fabric, radiation properties of the urban surfaces and anthropogenic thermal release, e.g. domestic heating, traffic and industry.”



Urban heat islands have been recognized and described a long time ago:

“The generally higher temperatures inside towns have been noted for a long time, indeed Luke Roward (Roward, 1818), a pioneer of urban climatology though more famous for his work on cloud classification, first measured temperature differences in London as early as 1809. And yet, in spite of the numerous studies in urban temperatures, it still remains to quantify, even relatively, the heat exchange mechanisms leading to the excess heat of towns. There are obviously four contributory factors: changes in the thermal characteristics (albedo, heat conductivity and thermal capacity) of the surface following the substitution of buildings and roads for farms and fields; changes in the airflow patterns with a reduced diffusion of heat from streets and courtyards; changes in evaporation rates and heat losses and, the heat added by humans and human activities. These seem to be of differing importance in different cities so that the character of temporal variations also varies. In many cities of western Europe, heat islands are strongest in summer whilst in central and northern Europe there is, apparently, little difference between summer and winter intensities. In several Japanese cities, maximum heat island intensities occur in winter.”

(T. J. Chandler, Urban climatology - Inventory and prospect, Urban climates: proceedings of the WMO Symposium on Urban Climates and Building Climatology, WMO, 1970)

Why analyse urban heat islands?

UHIs have several impacts on environment and population, for example:

  • Increased Energy Consumption
  • Elevated Emissions of Air Pollutants and Greenhouse Gases
  • Compromised Human Health and Comfort
  • Impaired Water Quality

(Heat Island Impacts, https://www.epa.gov/heat-islands/heat-island-impacts ; 'Heat island' effect could double climate change costs for world's cities, https://phys.org/news/2017-05-island-effect-climate-world-cities.html )

State of the art:

Recently, the dependency of UHI on a city’s layout could be shown:

“The arrangement of a city's streets and buildings plays a crucial role in the local urban heat island effect, which causes cities to be hotter than their surroundings, researchers have found. The new finding could provide city planners and officials with new ways to influence those effects.
Some cities, such as New York and Chicago, are laid out on a precise grid, like the atoms in a crystal, while others such as Boston or London are arranged more chaotically, like the disordered atoms in a liquid or glass. The researchers found that the "crystalline" cities had a far greater buildup of heat compared to their surroundings than did the "glass- like" ones.
The study […] found these differences in city patterns, which they call "texture," was the most important determinant of a city's heat island effect.”

(Urban heat island effects depend on a city's layout, https://phys.org/news/2018-02-urban-island-effects-city-layout.html

Learning objectives of this session:

  • Interpret EO-derived temperature maps
  • Identify local heat islands
  • See how different land cover affects temperature
  • Understand how urban-scale weather/climate information may be usefully employed at urban management

How to analyse urban heat islands?

Detecting UHIs is done by using the land surface temperature (LST). Be aware that this is equal to the air temperature that people will experience in that place. However, it a good and easy-to-access indicator.

Data from Sentinel-3 will be used, which has thermal bands included and thus provides LST. Another alternative would be Landsat-8 which has a higher resolution - Sentinel-3: 300m, Landsat-8: 100m (resampled to 30m). At the moment, there are two satellites, Sentinel-3A and Sentinel-3B, which have the same resolution.

And now... Hands on!

During this hands-on session following steps will be done:

  • Download the image from Copernicus Open Access Hub
  • Pre-process it in SNAP and QGIS
  • Segment it in eCognition
  • Analyse it in QGIS

Download Satellite Image

Access the data via the Copernicus Open Access Hub. Go to https://scihub.copernicus.eu/


Sentinel-1 to Sentinel-3 data can be found in the Open Hub.

Download Satellite Image

Log in or register to Copernicus Open Access Hub


Download Satellite Image

Mark the region around Salzburg by switching to Navigation mode. To look for an appropriate image, use the Filter. You can access it by clicking the filter symbol next to the search bar.


To get rid of influence of clouds, it is better to get maximum land surface temperature over a season, but this would be out of scope of this tutorial. So, only use one image with little cloud coverage.
Filter settings:
Sensing period: 12.04.2020 to 12.04.2020
Mission: Sentinel-3
Product type: SL_2_LST__

Download Satellite Image

Select the file beginning with S3A_SL_2_LST____20200412T091345. The name indicates that image is from Sentinel 3A. The Sensing date is 12 th of April 2020 at 9:13 am. Download the file and unzip it.


You can have a quicklook on the image by clicking on the eye

Pre-process Image

For pre-processing the Sentinel-3 product use the Sentinel Application Platform (SNAP) and QGIS

Download Sentinel Application Platform SNAP, if not already installed:

(Use only the Sentinel Toolboxes)

Same for QGIS:


Pre-process Image - SNAP

In SNAP, navigate to the downloaded folder and open the xfdumanifest.xml file.


Expand the product in the Product Explorer (S3A…> Bands > LST). Visualize LST by double clicking it.

Pre-process Image - SNAP

First, select the area around Salzburg to further investigate it.


In the menu bar got to Raster>Subset. In the Specify Product Subset window, select Geo Coordinates in the Spatial Subset tab and enter following values:
North latitude bound: 48.5
West longitude bound: 12.5
South latitude bound: 46.5
East longitude bound: 14.0

In the Band Subset tab only choose LST, x_in, y_in, latitude_in, and longitude_in. Click OK, then click No in the pop-up window (no flag dataset subset).

Pre-process Image - SNAP

Visualize the LST Band in the subset. You now can see the region around Salzburg. For further processing, reproject the Sentinel-3 product.



In the menu bar go to Raster>Geometric Operations>Reprojection.

In the Reprojection window check if the subset is selected as the Source Product.

Name the Reprojection S3A_LST_20200412T091345_reproj.
In the Reprojection Parameters tab select UTM/WGS 84 (Automatic).

Pre-process Image - SNAP

If you visualise the projection you’ll see distortions at the egdes. To get rid of them, do another subset.


North latitude bound: 48.1
West longitude bound: 12.7
South latitude bound: 47.3
East longitude bound: 13.7

Choose only LST, x_in, y_in, latitude_in, and longitude_in.

Pre-process Image - SNAP

Apply a colour map.


In the Colour Mapping tab choose:
Editor: basic
Colour ramp: derived from 5_colours

Finally, click on Range from data.

Pre-process Image - SNAP

Now, export the LST Band to GeoTIFF.



Therefore, mark LST Band in Product Explorer. Then, in the menu bar go to File>Export>GeoTIFF.
File name: S3A_LST_20200412T091245.tif
Choose only the LST Band by clicking on Subset….

Pre-process Image - QGIS

Open a new Project, choose a base map and open the raster file which is exported from SNAP.


In the menu bar select:
Layer>Add layer>Add raster layer
Open the S3A_LST_20200412T091345.tif that is exported from SNAP.

Pre-process Image - QGIS

You can change the colour ramp by right clicking the raster layer Properties>Symbology.


Select the Render type Paletted/Unique values, and an appropriate colour ramp for temperature.

Warmer and colder parts are shown. Cold areas often are caused by mountains (where high elevation leads to lower temperatures), but as well the impact of lakes can be seen.

Pre-process Image - QGIS

Again, clip the file to a specific region. Therefore, the outline of Salzburg an its surrounding is needed. Looking on the red spots, the location of Salzburg can be already seen.


Layer>Add layer> Add vector layer

Choose Salzburg(S_SL_HA)_Area.shp which is available from the Download section of this Tutorial.

Select the coordinate system Inverse of Austria Lambert + MGI to WGS 84 (3) + Popular Visualisation Pseudo-Mercator in the popup window.

Finally, change the style to outline (Right click the shape Properties>Symbology).

Pre-process Image - QGIS

To clip the raster file to this area select Raster>Extraction>Clip Raster by Mask Layer in the menu bar.



Make sure to select the right layers as Input and as Mask.
Keep resolution of input raster.

Pre-process Image - QGIS

After clipping it should look like this:


Some more things have to be changed…

Pre-process Image - QGIS

Copy the style from raster layer (Right click>Styles>Copy style) to clipped layer (Right click>Styles>Paste style).


Uncheck the original raster layer

Pre-process Image - QGIS

Now, do some classification with eCognition.

Export a GeoTIFFs by selecting the clipped raster file.

Right click>Export>Save as…

In the popup window specify:
Output mode: Raw data
Name: S3A_LST_20200412T091345_clipped.tiff

Don´t forget to SAVE your QGIS project!

Analysis - eCognition

Start the eCognition software, and open the S3A_LST_20200412T091345_clipped image.


Analysis - eCognition

Now, do a segmentation. Therefore, in the Process Tree right click and open Append new.



Algorithm: Multiresolution
Domain: pixel level
Image Layer weights:

Layer 1: 1

Scale parameter: 10
Shape: 0.1
Compactness: 0.4


Analysis - eCognition

Finally, export the result in a vector layer, including the mean temperature for each segment.


In the Process Tree right click and open Append new

Algorithm: export vector layer
Class filter: unclassified
Export path: choose a path and a name
Attribute: select mean for the temperature layer
Shape type: Polygons


Analysis - QGIS

Again, add the vector file to a QGIS layer (Layer>Add layer>Add vector layer).


Analysis - QGIS

Right click the raster file>Attribute Table. Toggle editing mode, order by mean layer ascending, and delete the first six entries by clicking on the trash bin.


Analysis - QGIS

Finally, specify the symbology (Right click>Properties>Symbology).


In the Process Tree click right and open Append new

Symbol: make the colour transparent
Precision: 1
Mode: Natural breaks (Jenks)
Classes: 5
Adjust Values

Analysis - QGIS

By making the Symbol transparent one can see the underlying map.


Analysis - QGIS

Finally, specify the symbology (Right click>Properties>Symbology).


Adding the outline of the city of Salzburg - it matches very well with the UHI. Except from the southern part of the city… Why?

Knowing Salzburg, or looking at the natural colour satellite image, there are way more green areas in the south.


More detailed Analyses

The analysis shows the impact of different land cover on land surface temperature. However, urban planners are interested as well in heat islands within the city. In the following pages, you can see a more detailed analysis that was done with Landsat-8 data and the Google Earth Engine.

Summer mean surface temperature 2013-2017
Summer max surface temperature 2013-2017

More detailed Analyses

Like in the large scale the impact of green structures within the city can be seen.


Normalized difference vegetation index (NDVI) 2013-2017

More detailed Analyses

The temperature transect clearly shows the correlation between NDVI and heat islands.



Thank you for following this session!