Snow conditions in southern Africa ski resorts

When I present the potential of Sentinel-2 for snow science, I often tell that the spatial resolution of Sentinel-2 is sufficient to detect snow at the scale of the ski runs. Because a picture is worth a thousand words, here is the Sentinel-2 view of the only two ski resorts in southern Africa on July 11.

Sentinel-2 true color composites on 11 July 2018

The snow on these ski slopes is artificial but this region can get quite a lot of snow!

A mining company doing land art?

On March 9th, 2018, a tailings dam has failed at Cadia, a large open pit gold mine in Australia. Dave Petley for the AGU landslide blog collected aerial and satellite (Planet) images of the dam before and after the event. The Newcrest mining company also published a report on the failure.

Cadia mine embankment slump dimensions (source: Newcrest, Cadia Northern Tailings Facility Presentation and Webcast, 15 March 2018)

Cadia mine embankment slump dimensions (source: Newcrest, Cadia Northern Tailings Facility Presentation and Webcast, 15 March 2018)


The embankment slump is also clearly visible in Sentinel-2 imagery. Here I used a near-infrared compositing because it enhances the contrast between the vegetation (bright in the near-infrared) and the water (dark in the near-infrared).
When I did this animation, I was not expecting to see this progressive color change in the northern tailings -- as if someone was methodically painting the landscape?
Continue reading

NDVI time series in 2018 World Cup stadiums

The figure below shows the evolution of the Normalized Difference Vegetation Index (NDVI) in the pitches of all the 2018 World Cup stadiums.

NDVI in the piches of the 2018 FIFA World Cup stadiums. Data from Copernicus Sentinel-2.

NDVI in the 2018 FIFA World Cup stadiums

I retrieved these data from Sentinel-2 observations using the new time series plotter in the EO Browser. I just drew a polygon in each of the 12 stadiums to get the average NDVI values on every available cloud-free date.

Sentinel-2 NDVI on June 27 in Kaliningrad Stadium (Arena Baltika)

Arena Baltika

Time series of the NDVI in Arena Baltika from Sentinel-2 observations in the EO Browser

Because the NDVI is a proxy of the vegetation health (here the grass on the pitch), these charts allow us to identify which stadiums were built for the 2018 World Cup (Volgograd Arena, Cosmos Arena). On the other hand, the Fisht stadium in Sotchi looks well maintained since 2016. It "served as the venue for the opening and closing ceremonies of the 2014 Winter Olympics (...) was originally built as an enclosed facility; it was re-opened in 2016" (wikipedia). Also it should be noted that the Krestovsky Stadium in Saint Petersburg is a retractable roof stadium. "As of May 2017, the stadium was 518% late and 548% over budget (...) At a cost of $1.1 billion at current exchange rates, it is considered one of the most expensive stadiums ever built." (wikipedia). Hopefully the grass will remain green in the next months, unlike some stadiums in Brazil after the Olympics.
In the meantime, as you can see by yourself, the grass is blue in the Kazan Arena!

Color composite of the Kazan Arena on June 27, three days before the first encounters of the Round of 16 (France vs. Argentina)

Vegetation recovery in Saint Barthélemy after Irma

Last year, in this post, I showed the comparison of two Sentinel-2 images of Saint Barthélemy in the Caribbean before and after the powerful Hurricane Irma.

A new feature in the EO Browser enables to plot the evolution of the mean NDVI within a polygon. I drew a rough polygon of Saint Barthélemy to check the evolution of the vegetation after Irma from Sentinel-2 data.

Time series of the average Normalized Difference Vegetation Index in Saint-Barthélemy extracted from Sentinel-2 observations

Here I used L1C data but it is also possible to use the L2A products from ESA, although these data are not always available. I manually adjusted the cloud fraction to remove the most obvious artifacts in the mean NDVI due to cloud contamination (clouds cause abrupt drops in the NDVI) [1]. This nice tool is sufficient to see that the vegetation quickly recovered after the hurricane, in about 1 month [2]. Catastrophic disturbances like hurricanes are actually known to contribute to maintain tree species diversity in tropical regions [3].
In the cities, according to Le Point, most of the damages have been repaired and the island is almost back to normal. This is good news for the people of St Barth!
Notes and references
[1] Under the hood, it's a "local area cloud detection algorithm based on the Braaten-Cohen-Yang method" Milcinski, G. Multi-year time series of multi-spectral data viewed and analyzed in Sentinel Hub. Medium, Apr 5, 2018.
[2] This is very similar to what has been observed in other tropical areas, e.g. "a sudden drop in NDVI values after Hurricane Maria’s landfall (decreased about 0.2) which returns to near normal vegetation after 1.5 months", Hu, T., & Smith, R. B. (2018). The Impact of Hurricane Maria on the Vegetation of Dominica and Puerto Rico Using Multispectral Remote Sensing. Remote Sensing, 10(6), 827.
[3] Vandermeer, J., de la Cerda, I. G., Boucher, D., Perfecto, I., & Ruiz, J. (2000). Hurricane disturbance and tropical tree species diversity. Science, 290(5492), 788-791.

Three snow seasons in the Pyrenees through the eyes of Sentinel-2 and Landsat-8

On June 23 we will celebrate the third anniversary of Sentinel-2A in orbit. With three years of data we can start looking at the inter-annual variability of biophysical variables, like.. (random example), the snow cover.


This is what I attempted to do for the Theia workshop. I downloaded all available snow cover products from Theia over the Central Pyrenees (tile 31TCH) and I generated additional snow maps from the Theia Landsat-8 level-2A products using let-it-snow processor. Landsat-8 images enable to increase the frequency of observations when only Sentinel-2A was operational between 2015 to 2017.


I resampled the Landsat-8 snow maps to the same reference grid as Sentinel-2 at 20 m resolution using the nearest neighbor method. I cropped all snow maps to the intersection of the Sentinel-2 tile (green polygon) and Landsat-8 tile (red polygon).

When there was a snow map from Sentinel-2 (S2) and Landsat-8 (L8) on the same day, I merged them into a composite using a simple pixel-based rule:
Continue reading

Visualizing the vegetation dynamics in Africa

The Global Imagery Browse Services (GIBS) is a great new API provided by the NASA to access its vast collection of Earth Observation products. For example the following URL allows you to download a jpeg picture of the Terra MODIS NDVI on 2018 Jan 01 over Africa:,-37.6,53.1,39.0&epsg=4326&layers=MODIS_Terra_NDVI_8Day&worldfile=false&format=image/jpeg&width=820&height=872

By looping on the "TIME" parameter (in a bash script using wget) I could get all the available products from 2016-07-30 until yesterday, and make this animation (using ffmpeg).

Continue reading

The odds to find snow in St. Moritz

Did you know that the St. Moritz Casino is the highest in Switzerland? If you like gambling, I have a little game for you: what are the odds to find snow near St. Moritz?

Fortunately, I just finished the processing of 218 Sentinel-2 dates from 2015-Dec-04 to 2018-Apr-10 of tile 32TNS with our let-it-snow processor. I did this off-line production for a colleague because, as of today, Theia only distributes the snow products after July 2017 in this region of Switzerland (see the available products here).
A quick way to check the output is to compute a snow cover probability map: that is, for each pixel, the number of times that snow was observed divided by the number of times that the snow could be observed.
To compute this map we just need to know that the Theia snow products (LIS_SEB.TIF raster files) are coded as follows:
0: No-snow
100: Snow
205: Cloud including cloud shadow
254: No data
Here is a piece of script to do this:

# initialize snow.tif with zeros
# store in Byte because we have less than 255 dates
f0=$(find . -name LIS_SEB.TIF | head -1) --overwrite -A $f0 --type=Byte --calc=A*0 --outfile=snow.tif
# accumulate snow pixels in snow.tif
for f in $(find . -name LIS_SEB.TIF)
# snow is coded with 100 --overwrite -A $f -B snow.tif --type=Byte --calc="B+(A==100)" --outfile=snow.tif

# now do the same for clear.tif
# init --overwrite -A $f0 --type=Byte --calc=A*0 --outfile=clear.tif
# accumulate clear pixels in clear.tif
for f in $(find . -name LIS_SEB.TIF)
# only snow and no snow are coded with values lower than 101 --overwrite -A $f -B clear.tif --type=Byte --calc="B+(A<101)" --outfile=clear.tif

# Finally compute the snow probability in % (100.0* makes the calculation in float) -A snow.tif -B clear.tif --type=Byte --calc="(100.0*A)/B" --outfile=snowProba.tif

This is the output:

The images are scaled from 0 (black) to 100 (white). The units are number of days for snow and clear, percentage for snowProba.


From which you can map the odds to find snow near St. Moritz (click on the image to animate)!