FormalPara Overview

In this chapter, you will learn about urban heat islands and how they can be calculated from satellite measurements of thermal radiation from the Earth’s surface.

FormalPara Learning Outcomes
  • Understanding how to derive land surface temperature.

  • Understanding how to generate urban and rural references.

  • Knowing how to calculate the surface urban heat island intensity.

Helps if you know how to

  • Import, filter, and visualize images (Part I).

  • Perform basic image analysis: select bands, compute indices, and create masks (Part II).

  • Use expressions to perform calculations on image bands (Chap. 9).

  • Write a function and map it over an ImageCollection (Chap.12).

  • Mask cloud, cloud shadow, snow/ice, and other undesired pixels (Chap. 15).

  • Conduct basic vector analyses: vectorizing and buffering (Part 5).

  • Write a function and map it over a FeatureCollection (Chap. 23 and 24).

1 Introduction to Theory

Urbanization involves the replacement of natural landscapes with built-up structures such as buildings, roads, and parking lots. This land cover modification also changes the properties of the land surface. These changes can range from how much radiation is reflected and absorbed by the surface to how the heat is dissipated from the surface (e.g., removal of vegetation for urban development reduces evaporative cooling). These changes in surface properties can modify local weather and climate (Kalnay and Cai 2003). The most-studied local climate modification due to urbanization is the urban heat island (UHI) effect (Arnfield 2003; Qian et al. 2022). The UHI is the phenomenon in which a city is warmer than either its surroundings or an equivalent surface that is not urbanized. We have known about the UHI effect for almost 200 years (Howard 1833).

Traditionally, the UHI was defined as the difference in air temperature, measured by weather stations, between a city and some rural reference outside the city (Oke 1982). One issue with this method is that different parts of the city can have different air temperatures, making it difficult to capture the UHI for the entire city. Using satellite observations in the thermal bands allows us to get another measure of temperature: the radiometric skin temperature, often known as the land surface temperature (LST). We can use LST to calculate a surface UHI (SUHI) intensity, including how it varies within cities at the pixel scale (Ngie et al. 2014). It is important to stress here that the UHI values observed by satellites and those calculated using air temperature measurements can be very different (Chakraborty et al. 2017; Hu et al. 2019; Venter et al. 2021).

2 Practicum

2.1 Deriving Land Surface Temperature

2.2 Deriving Land Surface Temperature from MODIS

Land surface temperature can either be extracted from derived products, such as the MODIS Terra and Aqua satellite products (Wan 2006), or estimated directly from satellite measurements in the thermal band. We will explore both options using the city of New Haven, Connecticut, USA, as the region of interest (Fig. 36.1). We will start with the MODIS LST.

Fig. 36.1
A map of New Heaven city, Connecticut, U S A. Also, the map indicates Woodbridge, Orange, East Heaven, and West Heaven. The boundaries are marked by numbers.

Boundary of New Haven, Connecticut

We start by loading the feature collection, which, being a census tract-level aggregation, we dissolve to get the overall boundary using the union operation. The FeatureCollection is added to the map for demonstration:

A screenshot of a multi-line script. It describes the feature collection of New Heaven's census tract from user assets, set up map center, and zoom level.

Next we load in the MODIS MYD11A2 version 6 product, which provides eight-day composites of LST from the Aqua satellite. This corresponds to an equatorial crossing time of roughly 1:30 p.m. during daytime and 1:30 a.m. at night. In contrast, the MODIS sensor onboard the Terra platform (MOD11A2 version 6) has an overpass of roughly 10:30 a.m. and 10:30 p.m local time.

A screenshot of a multi-line script. It specifies that the Modis image collection is loaded from the Earth engine data catalog, and the band of interest is selected.

We want to focus on only summertime SUHI, so we will create a five-year summer composite of LST using a day-of-year filter assembling images from June 1 (day 152) to August 31 (day 243) in each year:

A screenshot of a multi-line script to make a summer filter, use a data filter to filter the data range of interest, and calculate the pixel-wise mean of all images in the collection.

We now convert this image into LST in degrees Celsius and mask out all the water pixels (the high specific heat capacity of water would affect LST, and we are focused on land pixels). For the water mask, we use the Global Surface Water dataset (Pekel et al. 2016); to convert the pixel values, we use the scaling factor for the band from the data provider and then subtract by 273.15 to convert from Kelvin to degrees Celsius. The scaling factor can be found in the Earth Engine data summary page (Fig. 36.2).

Fig. 36.2
A screenshot of the M Y D 11 A 2.006 aqua land surface temperature and emissivity 8-day global 1 kilometer. Details on dataset availability, description, citations, bands, and D O I S are included. The Bands option is chosen.

Scaling factor in the data summary

Finally, we clip the image using the city boundary and add the layer to the map.

A screenshot of a multi-line script. It describes multiplying each pixel by the scaling factor to obtain the L S T values and creating a water mask.

Code Checkpoint A15a. The book’s repository contains a script that shows what your code should look like at this point.

2.2.1 Section 1.2: Deriving Land Surface Temperature from Landsat

Working with MODIS LST is relatively simple because the data are already processed by the NASA team. You can also derive LST from Landsat, which has a much finer native resolution (between ~60 m and ~120 m depending on satellite) than the ~ 1 km MODIS pixels. However, you need to derive LST yourself from the measurements in the thermal bands, which also usually involves some estimate of surface emissivity (Li et al. 2013). The surface emissivity (ε) of a material is the effectiveness with which it can emit thermal radiation compared to a black body at the same temperature and can range from 0 (for a perfect reflector) to 1 (for a perfect absorber and emitter). Since the thermal radiation captured by satellites is a function of both LST and ε, you need to accurately prescribe or estimate ε to get to the correct LST. Let’s consider one such simple method using Landsat 8 data.

We will start by loading in the Landsat data, cloud screening, and then filtering to a time and region of interest. Continuing in the same script, add the following code:

A screenshot of a multi-line script. It includes the function to filter out cloudy pixels, add cloud score band to image, generate image mask from cloud score band and set threshold, et cetera.

After creating a median composite as a simple way to further reduce the influence of clouds, we mask out the water pixels and select the brightness temperature band.

A screenshot of a multi-line script. It consists of the following steps. Generate a median composite and pick a thermal band with brightness temperature.

Brightness temperature (Fig. 36.4) is the temperature equivalent of the infrared radiation escaping the top of the atmosphere, assuming the Earth to be a black body. It is not the same as the LST, which requires accounting for atmospheric absorption and re-emission, as well as the emissivity of the land surface. One way to derive pixel-level emissivity is as a function of the vegetation fraction of the pixel (Malakar et al. 2018). For this, we start by calculating the Normalized Difference Vegetation Index (NDVI) from the Landsat surface reflectance data (see Fig. 36.5).

A screenshot of a multi-line script to calculate normalized difference vegetation index from Landsat surface reflectance.

To map NDVI for each pixel to the actual fraction of the pixel with vegetation (fractional vegetation cover), we next use a relationship based on the range of NDVI values for each pixel.

A screenshot of a multi-line script to calculate fractional vegetation and identify the minimum and maximum of N D V I as well as combine the reactors for efficiency.
A screenshot of a multi-line script to calculate fractional vegetation and identify the minimum and maximum of N D V I as well as combine the reactors for efficiency.

Now we use an empirical model of emissivity based on this fractional vegetation cover (Sekertekin and Bonafoni 2020).

A screenshot of a multi-line script for emissivity calculations.

As seen in Fig. 36.6, emissivity is lower over the built-up structures compared to over vegetation, which is expected. Note that different models of estimating emissivity would lead to some differences in LST values as well as the SUHI intensity (Sekertekin and Bonafoni 2020; Chakraborty et al. 2021a).

Then we combine this emissivity with the brightness temperature to calculate the LST for each pixel using a simple single-channel algorithm, which is a linearized approximation of the radiation transfer equation (Ermida et al. 2020).

A screenshot of a multi-line script for the calculation of L S T from emissivity and brightness temperature.

The Landsat-derived values correspond to those of the MODIS Terra daytime overpass. Overall, you do see similar patterns in Figs. 36.3 and 36.7, but Landsat picks up a lot more heterogeneity than MODIS due to its finer resolution.

Fig. 36.3
A map of New Heaven City, Connecticut. The map is covered by color-coded pixels that indicate the higher L S T and lower L S T values.

Five-year summer composite of daytime MODIS Aqua LST over New Haven, Connecticut. Red pixels show higher LST values and blue pixels have lower values

Fig. 36.4
A map of New Heaven City, Connecticut highlights the summer median composite of Landsat brightness temperature. The map is covered by color-coded pixels that differentiate the higher, and lower L S T values.

Five-year summer median composite of Landsat brightness temperature over New Haven, Connecticut. Red pixels show higher values, and blue pixels have lower values

Fig. 36.5
A map of New Haven, Connectivity highlights the summer median composite Landsat of N D V I. The map is covered by color-coded pixels that differentiate the higher and lower N D V I value.

Five-year summer median composite of Landsat-derived NDVI over New Haven, Connecticut. White pixels show higher NDVI values, and blue pixels have lower values

Fig. 36.6
A map of New Haven, Connecticut depicts the surface emissivity on vegetation fraction. The map is covered by color-coded pixels that differentiate the higher and lower values.

Surface emissivity over New Haven, Connecticut, based on vegetation fraction. Green pixels show higher values, and white pixels have lower values

Fig. 36.7
A map of New Haven depicts the summer median composite of Landsat L S T. The map is covered by color-coded pixels that differentiate the higher and lower L S T values.

Five-year summer median composite of Landsat-derived LST over New Haven, Connecticut. Red pixels show higher LST values, and blue pixels have lower values

Code Checkpoint A15b. The book’s repository contains a script that shows what your code should look like at this point.

2.2.2 Section 1.3: Deriving Land Surface Temperature Using the Earth Engine Landsat LST Toolbox

In the previous section, we explored an LST retrieval algorithm to give an example of the standard steps to get to LST from the satellite measurements in the thermal bands. In this section, we will use an Earth Engine module developed for this purpose to calculate LST (Fig. 36.8).

Fig. 36.8
A map of New Haven city depicts the summer median composite of Landsat L S T by statistical mono-window algorithm. The color-coded pixels in the map denote the higher and lower L S T values.

Five-year summer median composite of Landsat-derived LST over New Haven, Connecticut, using the Statistical Mono-Window algorithm. Red pixels show higher LST values, and blue pixels have lower values

A screenshot of a multi-line script. It specifies a link to the module that computes the Landsat L S T and selects the region of interest, data range, and Landsat satellite.

As an aside, the Landsat Collection 2 products have recently incorporated LST bands, which can be processed similar to the MODIS data, but with the bands’ own specific offsets and scaling factors.

Code Checkpoint A15c. The book’s repository contains a script that shows what your code should look like at this point.

2.2.3 Section 2: Defining Urban and Rural References

Now that we have estimates of LST using various products and algorithms, we can calculate the rural LST and subtract from the urban LST to get the SUHI intensity. There are many ways to estimate the rural reference temperature (Li et al. 2022), and we will explore a few of them in this section.

The simplest and probably the most commonly used method to get the rural reference when calculating the SUHI is to generate a buffered area around the urban boundary. The exact width of the buffer varies across studies, with buffers of 2–30 km in width being used in previous studies (Clinton and Gong 2013; Venter et al. 2021; Yao et al. 2019). In Earth Engine, generating such a buffer is simple:

A screenshot of a multi-line script. It outlines the function to generate rural reference by subtracting the original urban cluster from the buffered cluster.

In the script above, a buffered polygon with a 2 km width is generated around the urban boundary, and the original urban boundary is subtracted from the buffered polygon. The result is shown in Fig. 36.9.

Fig. 36.9
A map of New Haven city. The urban boundary, which is 2 kilometers long, represents the rural reference and is differentiated by a color code.

A 2 km buffer around the original city boundary to serve as the rural reference

The use of a constant buffer assumes that all urban areas, regardless of size, have a similar influence around the city. This may not be true for large cities. In fact, there is some evidence that there is a footprint of the SUHI that is dependent on the size of the city (Yang et al. 2019; Zhou et al. 2015). As such, another way to define the buffered region is to normalize its area by the area of the urban cluster it surrounds (Chakraborty et al. 2021b, Peng et al. 2012). One way to do so in Earth Engine is by using an iterative method. This method (see code block below) uses functions to first calculate buffers of different widths around a geometry and then select the buffered region that is closest in size to the original geometry.

A screenshot of a multi-line script for defining a testable sequence of buffer widths and functions to produce uniform buffers that are comparable to the size of urban clusters.
A screenshot of a multi-line script. It specifies the map function over urban feature collection.

Note how mapping the buff function over a sequence of pre-defined values, as done here, does not require loops, which are best avoided when using Earth Engine. The same is true of mapping the bufferOptimize function: here it is mapped over a FeatureCollection with a single feature, but it would work even if regionInt contained multiple features. In this way, nested map functions in Earth Engine have the utility of nested loops in other languages.

Check the printed value on the Console. According to the result, within an uncertainty of 30 m, a buffer of 1170 m in width creates a polygon that is roughly equal to the area of the city. This function is best to run via export when working with large feature collections.

The final way to define a rural reference does not use a buffer at all, but relies on land cover classes to select pixels that are urban versus non-urban (the Simplified Urban Extent algorithm; Chakraborty et al. 2020; Chakraborty and Lee 2019). For this, we will rely on the NLCD 2016 land cover data (Wickham et al. 2021) and create masks for urban and non-urban pixels (Fig. 36.10).

Fig. 36.10
A map of New Haven city. The map is covered by color-coded pixels that differentiate the urban and rural references. Urban covers the maximum area.

Urban (red) and rural (blue) pixels in New Haven, Connecticut

A screenshot of a multi-line script. It specifies the selection of N L C D land cover data, the selection of urban pixels in the image, and background reference pixels in the image.

We can then subsequently use these as masks to select urban versus rural LST pixels. You will find more about this in the next section.

Code Checkpoint A15d. The book’s repository contains a script that shows what your code should look like at this point.

2.2.4 Section 3: Calculating the Surface Urban Heat Island Intensity

Since the SUHI is the temperature difference between the urban area and the rural reference, we will calculate summary temperature values for the urban boundary and the different versions of rural reference using the Landsat and MODIS LST.

A screenshot of a multi-line script. It specifies function defining to reduce regions and summarizes pixel values to get mean L S T for different cases, et cetera.
A screenshot of a multi-line script for reducing L S T rural pixel.

As you know from the code above, we extract urban temperature from MODIS ('MODIS_LST_urb) and from Landsat and MODIS ('MODIS_LST_urb_pix' and 'Landsat_LST_urb_pix’) after considering only the urban pixels within the boundary.

Corresponding values are also extracted from the rural reference (including using only rural reference pixels within the urban boundary). For the buffered regions (both using constant width and variable width), we define and call another function.

A screenshot of a multi-line script to define a function in reducing region and summarize pixel values to get mean L S T for different cases.
A screenshot of a multi-line script to define a function in reducing region and summarize pixel values to get mean L S T for different cases.

We can print the newly created feature collections to go through these values for the different cases. Even though absolute MODIS and Landsat urban LSTs are different (29 for Landsat and 34 for MODIS), the SUHI is similar (3.6 C for MODIS and 4.8 C from Landsat). As one might expect, when only urban pixels are considered within the boundary, the average LST is higher (and lower for rural LST).

The SUHI variability within the city (Fig. 36.11) can then be displayed by subtracting the rural LST from the total LST:

Fig. 36.11
A map of New Haven city depicts the spatial variability in S U H I. The color-coded pixels in the map differentiate the higher and lower values.

Spatial variability in SUHI for the period of interest for New Haven, Connecticut. Red pixels show higher values and blue pixels show lower values

A screenshot of a multi-line script to display S U H I variability within the city.

Code Checkpoint A15e. The book’s repository contains a script that shows what your code should look like at this point.

3 Synthesis

Now that you know the different ways to calculate the SUHI and estimate LST using Earth Engine, load in your own city’s feature collection and compare the different methods.

Question 1. What are the SUHI values during summer and winter from the two products?

Question 2. How does a pixel-based urban–rural delineation method compare to a buffer-based method for SUHI estimation?

4 Conclusion

You should now have a good understanding of satellite measurements in the thermal bands, how they can be used to estimate LST, and how we can calculate the SUHI using these measurements.