Area Monitoring — Mowing Marker

Sentinel Hub Blog
Published in
6 min readSep 1, 2020


Is it possible to detect grass being mowed from 792 km away?

This post is one of the series of blogs related to our work in Area Monitoring. We have decided to openly share our knowledge on this subject as we believe that discussion and comparison of approaches are required among all the groups involved in it. We would welcome any kind of feedback, ideas and lessons learned. For those willing to do it publicly, we are happy to host them at this place.

The content:

The mowing marker identifies all observations where mowing events lead to a drop in the vegetation index values (NDVI). The mowing event itself cannot be detected via satellite imagery, but its consequences are observable. The marker identifies mowing events by identifying drops in the NDVI profile of features-of-interest (FOIs) claiming to be permanent meadows or growing grass, clover or grass/clover mixtures.

A true colour image of a FOI before (left), soon after (centre) and some time after (right) a mowing event.


The algorithm used by the mowing marker is not a machine learning (ML) model like in the case of the bare-soil marker. Instead, it is based on an algorithm that searches for variations in NDVI to identify candidate mowing events. The algorithm doesn’t depend on the neighbouring data and solely uses the NDVI time-series of the target FOI.

The detection is performed in the following steps:

  1. Perform cloudy observation filtering using the s2cloudless cloud detector.
  2. Perform other outlier-like filtering using observation outlier detector.
  3. Search for pairs of local maxima and minima from the remaining valid observations.
  4. Keep only pairs where:
    NDVI drops below threshold value and,
    NDVI recovers above threshold value.
  5. Extract information like duration, number of observations, etc. and construct the marker.

The figure below shows an example of a successfully detected mowing event in the time interval during the period from April 15th to Oct 15th.

The thresholds for NDVI drops and recovery are different, which is achieved by applying different scaling factors to the estimated value of fluctuation in the time-series (blue band on the image). The rate of fluctuation in the NDVI time-series is estimated via the differences between the consecutive values in the time-series and averaged over a large sample of FOIs beforehand. A fluctuation estimate in the form of a single number is obtained and used for all the FOIs in the area so that the sensitivity of the detector does not depend on the number of valid observations in the time-series of the FOI.

Known issues

Single observation events can also trigger the mowing detector and it turns out that non-mowing events represent a large fraction of such cases. Even though actual mowing events can trigger the detection this way, it is often due to one of the following reasons:

  • undetected cloudy observation,
  • undetected outlier observation(cloud shadow / haze / snow),
  • NDVI fluctuations which pass the threshold.

The following plot shows an example with a single observation marker which is triggered at an observation under a cloud shadow.

An NDVI time-series of a FOI with three valid mowing events and one invalid mowing event (third from the left), triggered by an outlier observation (cloud & cloud shadow).
A true colour image of two valid FOI observations (left, right) and an outlier FOI observation (center) due to clouds and cloud shadows.

While such events can be studied by looking for marker events of short duration with single observations, we are also working on improving the detection and filtering of such outlier-like observations with a dedicated observation outlier detector.


To estimate the performance of the mowing marker reliably, all mowing events in all Sentinel-2 observations of 2000 FOIs were labelled with the help of domain experts. Experts had to select the dates where the results of the mowing event are visible. Some mowing events might be more difficult to visually observe by the human labeller because, for example, the drop in the NDVI profile is small and therefore the impact of the event is not as pronounced.

Additionally, a FOI can be narrow or consists of a small number of Sentinel-2 pixels, which further complicates the visual assessment of the event. As a result, such events might not be labelled at all. The ideal test set would consist of FOIs for which it is known when they were mown via reliable external sources. In this scenario the manual/visual labelling efforts would not have to be relied on.

An example of a narrow (left) and a small-area (right) FOI, where labelling is difficult to perform and the results of such labelling are unreliable.

FOI-level performance

The manually labelled FOIs were divided into two groups: those with at least one labelled mowing event and those without any. In the case of FOIs with at least one labelled mowing events, the mowing marker identifies at least one mowing event in 95% of cases. Out of all labelled FOIs 190 of them are without any labelled mowing event. The mowing marker identifies at least one mowing event in 77% of such FOIs. The last number is rather high, but after visually checking the results, majority of FOIs from this group exhibited obvious mowing events from the NDVI time-series which are less obvious just by looking at true colour visualisations.

Potential improvements

This implementation of the mowing marker only uses Sentinel-2 imagery, but it would be beneficial to also include data from Sentinel-1, since they are not affected by cloudy observations. Additionally, S1 data is more sensitive to the actual event of mowing, because it detects the changes in the height of the vegetation. This would solve problems with the false detection of mowing events due to observation outliers, since the S1 data would in such cases indicate no change in the height of the vegetation. We are already planning on these future steps in order to further improve our markers.

Sentinel 1A 12-day VH coherence before (left) and after (right) a mowing event. Taken from

Check the Area Monitoring documentation for more information.

Our research in this field is kindly supported, in grants and knowhow, by our cooperation in Horizon 2020 (Perceptive Sentinel, NIVA, Dione) and ESA projects (Sen4CAP). We’re grateful for GZC support in labelling the training dataset.


Oct 7th 2020

  • Updated the algorithm from V2 to V3 and the other parts of the blog post accordingly
  • Added a section for potential improvements