Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

earth and related environmental sciences

OSI - Oil Spill Index

Learn how to use the Oil Spill Index (OSI) to detect oil spills using Sentine-2 data.

Authors
Affiliations
Eurac Research
Eurac Research
ESA EOPF Zarr Logo

🚀 Launch in JupyterHub

Run this notebook interactively with all dependencies pre-installed

Introduction

The OSI (Oil Spill Index) uses visible Sentinel-2 bands to display oil spills over water in the costal/marine environment. The OSI is constructed by summing-up the bands representing the shoulders of absorption features of oil as numerator and the band located nearest to the absorption feature as denominator to discriminate oil spill as below.

OSI = (B03 + B04) / B02

The original idea was created by Sankaran Rajendran and is available in the Sentinel Hub documentation here.

MV Wakashio oil spill

IMO helping to mitigate the impacts of MV Wakashio oil spill in Mauritius

Source: International Maritime Organization 2020 link

This notebook demonstrates the application of the Oil Spill Index (OSI) to the MV Wakashio oil spill incident in Mauritius using Sentinel-2 imagery.

The incident occured in July 2020 when a Japanese ship ran aground on a coral reef and started leaking fuel oil into the surrounding area for several days.

MV Wakashio was 300 meters long and at the time was carrying roughly 4000 tons of very low sulfur fuel oil (VLSFO). High winds and waves made the cleanup process very difficult.

More information on the oil spill can be found here:

Setup

Start importing the necessary libraries

/home/jzvolensky/miniconda3/envs/eopf-zarr/lib/python3.11/site-packages/distributed/node.py:187: UserWarning: Port 8787 is already in use.
Perhaps you already have a cluster running?
Hosting the HTTP server on port 38627 instead
  warnings.warn(
Loading...
/home/jzvolensky/miniconda3/envs/eopf-zarr/lib/python3.11/site-packages/dask/_task_spec.py:759: RuntimeWarning: divide by zero encountered in divide
  return self.func(*new_argspec)

STAC search

sentinel-2-l2a
sentinel-3-slstr-l2-lst
sentinel-3-olci-l2-lfr
sentinel-2-l1c
sentinel-3-slstr-l1-rbt
sentinel-3-olci-l1-efr
sentinel-3-olci-l1-err
sentinel-1-l1-slc
sentinel-1-l1-grd
sentinel-1-l2-ocn
sentinel-3-olci-l2-lrr
items found: 19
Selected items: 4
[<Item id=S02MSIL2A_20200905T062449_0000_B091_T778>, <Item id=S02MSIL2A_20200806T062449_0000_B091_T103>, <Item id=S02MSIL2A_20200801T062451_0000_A091_T114>, <Item id=S02MSIL2A_20200717T062449_0000_B091_T774>]

Create Datacube

In the following section we extract the 20 meter bands as well as the scene classification layer (scl) from the Sentinel-2 data.

These variables are then merged into a single datacube

Loading...

Spatial and temporal filtering

Loading...

Cloud masking

Loading...

Visualize masked data for one date

The following visualization shows the area of interest before the oilspill event.

<Figure size 1000x1000 with 1 Axes>

Compute OSI

The standard way of computing OSI is (B03 + B04) / B02.

However, there are several other variants that can be used to compute the OSI, taking advantage of different spectral bands. These variants may provide additional insights or improve the sensitivity of the index to oil spills:

R: (B05+ B06)/ B07; G: (B03+ B04)/B02; B: (B011+ B012)/ B08

R: B03/ B02; G: (B03+ B04)/B02; B: (B06+ B07)/ B05

Zakzouk, M., Abou El-Magd, I., Ali, E. M., Abdulaziz, A. M., Rehman, A., & Saba, T. (2024). Novel oil spill indices for sentinel-2 imagery: A case study of natural seepage in Qaruh Island, Kuwait. MethodsX, 12, 102520.

In this example we compute all variants and visualize them below

Visualize results

In the following visualizations we can see the different OSI variants computed from the Sentinel-2 imagery for each of the 4 dates.

The more classical approach does show some distinction between oil spill and non-oil spill areas.

Variant two shows a more pronounced separation between the two classes, indicating its potential effectiveness in detecting oil spills, however, it also highlights the land which may not be ideal.

Variant three appears to visibly show oil spill and non oilspill areas while leaving the land areas less pronounced.

Displayed OSI variants for date: 2020-07-17T06:24:49.024000000
<Figure size 2400x600 with 7 Axes>
Displayed OSI variants for date: 2020-08-01T06:24:51.024000000
<Figure size 2400x600 with 7 Axes>
Displayed OSI variants for date: 2020-08-06T06:24:49.024000000
<Figure size 2400x600 with 7 Axes>
Displayed OSI variants for date: 2020-09-05T06:24:49.024000000
<Figure size 2400x600 with 7 Axes>