Flood Monitoring with Satellites

Simonetta Bodojra
Data Reply IT | DataTech
8 min readOct 12, 2023

Introduction

Floods happening near the coast may be extremely destructive natural catastrophes that impact both society and the economy. Earth Observation data provides information on a variety of subjects, including flooded regions, land use, elevation profile, and population density and they has lately proved essential for selecting the best actions before, during, and after flooding disasters. By utilizing artificial intelligence techniques, we may enhance the analytical and decision-making procedures necessary to avoid or minimize loss in flood-related scenarios.

Motivation

According to a report released by the United Nation Office for Disaster Risk Reduction, flooding is one of the most devastating natural hazards on Earth and it causes significant economic and social loss by destroying houses, interrupting essential facilities and harming farmlands.

Due to the complex interplay of various causes, including weather patterns and human activity, it can be difficult to link flood to climate change. In addition to that, there is little historical information on flood, making it challenging to compare past occurrences with present patterns. However, there is substantial evidence that climate change has affected various water-related factors, such as rainfall and snowmelt, that contribute to floods, as IPCC (Intergovernmental Panel on Climate Change) observed in his report on extremes.

Therefore, it is crucial to have effective risk assessment techniques to reduce damage and preserve lives, taking into account not just the likelihood of flooding but also potential property damage and the vulnerability of the places. This process needs some important maps:

  • Vulnerable area maps: they map the population in a given area while also accounting for the use of the land, for example, determining if the area is primarily urbanized or agricultural to identify locations where high population density may worsen flood risks;
  • Flood maps: induntation maps display the locations that were actually inundated, while susceptibility maps indicate a region’s susceptibility to flooding based on its geographic, and meteorological characteristics (such altitude, slope, lithology, land usage, and rainfall).

In order to construct these maps, remote sensing satellite data can be a huge support.

Figure. Different types of flood maps (Bentivoglio et al.,2022)

Project data

In this article we will make use of the openly accessible data from Europeans satellites and from a building footprints dataset.

We will use data from satellite missions run by ESA know as Sentinels. Radar and super-spectral images are used in these missions to monitor the land, oceans, and atmosphere. Each mission is built on a constellation of two satellites, which provides reliable datasets for all Copernicus services while also completing and assessing the coverage criteria for each mission.

Sentinel-1 data

It is an imaging radar mission which delivers continuous, all-weather, day-and-night pictures at C-band with a resolution of roughly 10m every 12 days. It is based on a dual polarization SAR system with phase preservation that can send out a signal with either horizontal (H) or vertical (V) polarization, and it can also receive in both directions.

Sentinel-1 has the available bands VV and VH bands: VV sends vertical waves and receives vertical waves, whereas VH transmits vertical waves and receives horizontal waves.

SAR is effective for monitoring water levels and spotting changes in waterbodies as it is highly sensitive to water.

Figure. Sentinel-1 SAR signals (ASF)

Sentinel-2 data

Sentinel-2 is a multi-spectral imaging mission that supports Copernicus Land Monitoring investigations, which include the observation of interior waterways and coastal areas as well as the monitoring of plant, soil, and water cover. The Multispectral Instrument (MSI) examines 13 spectral bands with a spatial resolution of four bands at 10 meters, six bands at 20 meters, and three bands at 60 meters. These include the blue, green, and red bands that reflect how people perceive the world as well as Near Infrared (NIR), Short-wave Infrared (SWIR), and other wavelengths that may be used to monitor vegetation, geological features, and much more.

Estimating population densities and identifying susceptible regions both benefit greatly from the use of Sentinel-2 pictures as the red band is used to map man-made buildings, the infrared bands are useful for differentiating between different kinds of land use.

Figure. Sentinel-2 false color image (source)

Building dataset

This dataset is the combination of the Google Open Buildings dataset, OSM buildings and manual labelling used during the Climate Change 2023 Summer School held by Climate Change AI.

Pixel-values range from 0 to 100 m2, and they represent the coverage % at a resolution of 10 m of number of squared meters of building. Building density will be used as a proxy of population density, so this will be our target dataset for the first part of the project.

Figure. Buildings dataset: The pixel intensity represents the percentage of building coverage. Values range from [0, 100] to [100]. The greater the pixel’s brightness, the more of it is covered with structures. (Buildings dataset)

Project

The idea is to create two different maps, water bodies and population, using Sentinel 1, 2 that can be combined together by domain-experts to create flood risk maps.

Predicting population density

The first thing we need to do is carry out an analysis to determine which areas have the largest concentration of susceptible areas and where the majority of the population is situated, using building density as a proxy.

Sentinel-2 rasters contains more than 2M pixels, so as a first step images are generally broken into smaller sub-regions of 32x32 pixels called patches to make this work more computationally feasible. If overlaps are employed, some portions in the original picture will be sampled many times throughout the patching process. As a result, patches are not necessarily independent of one another and may partially overlap. This is especially crucial to consider while building the test set, as it must not be contaminated by training data.

Another common preprocessing step in computer vision is normalization, so rescaling an image’s pixel values to a common scale to lessen the influence of the model’s learning process on the input characteristics. Sentinel-2 imagery is normalised to (0,1).

The model has a simple Encoder-Decoder architecture that pays attention to the resolution of the outputs channels.

import torch
import torch.nn as nn

class SimpleConvNet(nn.Module):
def __init__(self, in_channels, output_min, output_max):
super(SimpleConvNet, self).__init__()
self.output_min = output_min
self.output_max = output_max

# Encoder
self.encoder = nn.Sequential(
nn.Conv2d(in_channels, 64, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.BatchNorm2d(64),
nn.Conv2d(64, 128, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.BatchNorm2d(128)
)

# Decoder
self.decoder = nn.Sequential(
nn.Conv2d(128, 64, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.BatchNorm2d(64),
nn.Conv2d(64, 1, kernel_size=3, padding=1)
)

As it is a simple regression task, to evaluate the performances of the model an MSE loss is used. It is useful to see the results in the Figure below.

Figure. Left: Predicted values, Center: True label, Right: RGB image

Water bodies mapping

During floods episodes, which are generally accompanied by very severe and overcast weather so Sentinel-2 data cannot be used as they will be covered by clouds. SAR, on the other hand, is not restricted by this and can monitor surface water through cloud cover.

To create a target dataset, we will construct a water index combining Sentinel-2 bands, then we will train a CNN to estimate water using Sentinel 1.

Spectral index: NDWI

Since each object’s chemical composition and spectral signature are unique, spectral bands may carry a variety of information. Different Earth features have various spectral signatures, as indicated in the Figure below: dry soil differs from wet soil, much as turbid water does from clear water. We combine these bands to generate the so-called spectral indices in order to increase the contribution of certain specific compounds or characteristics without making any assumptions about the study’s area. They are just a simple modification of spectral bands that offer more details about the region.

Figure. Spectral signatures of different Earth feature within the visible light spectrum (credit)

The Normalized Difference Water Index (NDWI), a spectral index, is an example of the family of water-related indexes since it can detect small changes in the water content of water bodies and it is sensitive to changes in the water content of vegetation. It combines the Green and NIR bands as in the following formula:

The standard water surface reflection is maximized by the visible green wavelengths. The low reflectance of water features is minimized by the near-infrared band while the strong reflectance of terrestrial plant and soil characteristics is maximized. This indicates that the NDWI equation produces positive values for characteristics associated with water and values that are (almost) 0 for soil and terrestrial vegetation.

Water bodies mapping

After having computed NDWI, we can train our model to estimate NDWI, i.e the presence of water, using SAR data.

The model will take as input the two SAR bands, VV and VH, and will output a value for NDWI.

import torch.nn as nn

class SimpleConvNet(nn.Module):
def __init__(self, in_channels, clamp_output=None):
super(SimpleConvNet, self).__init__()
self.clamp_output = True if clamp_output is not None else False

if self.clamp_output:
self.output_min = clamp_output[0]
self.output_max = clamp_output[1]

self.encoder = nn.Sequential(
nn.Conv2d(in_channels, 64, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.BatchNorm2d(64),
nn.Conv2d(64, 128, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.BatchNorm2d(128)
)

self.decoder = nn.Sequential(
nn.Conv2d(128, 64, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.BatchNorm2d(64),
nn.Conv2d(64, 1, kernel_size=3, padding=1)
)

def forward(self, x):
x = self.encoder(x)
x = self.decoder(x)

if self.clamp_output:
x = torch.clamp(x, self.output_min, self.output_max)

return x

This modelling step is useful in the case of flooding, as it usually happen with poor weather conditions, which make the use of spectral instruments impossible.

Figure. Predicted NDWI, RGB Sentinel-1 image, RGB Sentinel-2 image, Real NDWI

Conclusions

In this article we have seen how it is possible to use satellite data to create population density and water bodies maps. A domain expert can know use and combine them to create useful tools and maps for selecting the best actions before, during, and after flooding disasters.

--

--