Creating time series plots in a few steps

By Jeroen Dries 31 May 2018

How is the Earth’s vegetation evolving? To find out, you extract all observation data of your area of interest over time from the EO data archive (a time series), as the basis for your analysis. Extracting this time series data can be a tedious task, which has to be done correctly if you want a solid basis for further analysis.

Read on to see how the PROBA-V Mission Exploitation Platform (MEP) can help you, so you can focus on  your core business.

Multi sensor time series access

Multi-sensor time series analysis is a key research area that we support with PROBA-V MEP. Using our data client library, you can now access PROBA-V, Copernicus Global Land, and Sentinel-2 data products. 

In the next examples, we’ll use a nature reserve in Belgium as a test area. When we visualize this in our notebook, it looks like this:


Now we want to retrieve a time series for our area of interest, referenced in the code as ‘test_area’. Using the Python ‘dataclient’ library, this is rather straightforward: 


This library returns the average value for all pixels inside a test area as a series object from the widely used Pandas library, which will be familiar to a lot of data scientists. You can use this for further analysis, or simply plot a graph to analyse the seasonal vegetation cycle:


When computing these averages, we fully take into account missing values provided by the Sentinel and PROBA-V cloud (shadow) masks. Especially for Sentinel-2, these masks are not always perfect due to undetected clouds or shadow, which results in a lot of remaining noise in the output. Removing this noise by applying pre- or postprocessing is a hot topic in remote sensing research.

Histogram access

Only retrieving the average time series may constrain you too much in your exploration options, so we also provide the option to retrieve pixel counts for each unique value in the input image (or histograms), which works especially well for data products that are natively represented by a limited range.

The figure belows shows some statistics that can be derived from the histogram data returned by the data client. The notebook linked at the bottom of this blog post contains the full code to create this figure.


Time lapses

When you still can’t find a suitable explanation for how your plot looks, you may need to dive into the actual imagery. Off course you can use your PROBA-V MEP virtual machine to fire up QGis and open a bunch of Geotiffs, but you can try using our data client library to just download the images for your area of interest:


This call will download all the images corresponding to the bounding box of your area of interest into a directory, as geotiffsIn this case, the geotiff will contain the 4 Sentinel 2 bands that have 10m resolution, for every observation of the area of interest.

Now that all images are available as geotiffs, we can use the matplotlib library to create a time lapse animation, which can be shown directly in the  notebook, or exported. The end result looks like this:

This time lapse shows how Sentinel-2 images on the MEP are quite well-aligned geometrically. We achieve this by doing our own geometric correction. This is a prerequisite to make our Sentinel-2 products suitable for time series analysis.

And there’s more …

These examples do not yet cover the full possibilities of the data client. For instance, we also have some dedicated calls to retrieve a large number of time series as fast and efficiently as possible.

Click here to view the full Python notebook , or try it yourself in the PROBA-V MEP notebook environment.

Give it a try, and if you have questions on the usage of our library, or suggestions for additions, contact us! 

Like this article? Share it on
Jeroen Dries
An article by
Jeroen Dries
Senior R&D Professional / IT Architect
More info about Jeroen Dries

Related posts

New CropSAR service provides Cloud-Free Time Series at Pixel Level
  • Time series ,
  • Sentinel-2 ,
  • Sentinel-1 ,
  • CropSAR

New CropSAR service provides Cloud-Free Time Series at Pixel Level

By Kristof Van Tricht 16.10.2023
In 2019 we released CropSAR, a service that combines both optical data from Sentinel-2 and radar data from Sentinel-1 to be able to look through the..
Lees meer
Looking through the clouds to improve crop monitoring!
  • Time series ,
  • Agriculture ,
  • Sentinel-2 ,
  • EO Data ,
  • deep learning ,
  • AI ,
  • Sentinel-1

Looking through the clouds to improve crop monitoring!

By Kristof Van Tricht 03.06.2019

For the past decades now, remote sensing has been increasingly contributing to many agricultural monitoring services by providing worldwide systematic..

Lees meer
A Sentinel shake for early crop mapping
  • Agriculture ,
  • Multitemporal image analysis ,
  • Sentinel ,
  • food security ,
  • deep learning ,
  • radar ,
  • optical

A Sentinel shake for early crop mapping

By Kristof Van Tricht 17.07.2018

The growing world population and its related ever-growing food demand requires a close monitoring of the agricultural landscape and timely estimates of..

Lees meer