Regarding Cloud Coverage: python vs EO Browser

Hi everyone,

I hope you are having a superb February start.

I have written few days ago about not getting the right Cloud Coverage specified in my Requests.
I have been guided to try EO Browser to see if there are images with better CC %. Previous topic: Setting CC Cloud Coverage to 0 does return same results as cc=10 or cc=30

I did so with 100% CC and I usually get 1 result for my polygon(sometimes more results scaling from 0% to 100%).

Now there is another issue I want to highlight – when searching for less cloud: let’s say 20%, 30%, 50% CC EO Browser returns a series of results/tiles, from which some have 2% CC or less, which is great - though the problem is that those tiles do not cover my searched area/my polygon(please see the attached images) !!!

Now why would I get any results at all if those tiles are not covering my polygon? Should not be there a message or an error/notification thrown in EO Browser/python request letting you know that is the case?

I’m interested how to fix this in all SentinelHub python requests (mostly: WMS and FIS requests). As for example if there is no CC under 30%: should not return any other results with more %CC - and yes, I have specified this in code: maxcc = 10 for WMS Request, as well in the setup of Layers in the Admin Dashboard.

Would love to hear your thoughts on this.

Thank you and wishing you a prosperous February!


thanks for the wishes, hope you are doing great, too.

EO Browser searches for results (tiles) for the whole area that is displayed on the screen, it’s not limited by the area of interest. The area of interest (polygon) feature is meant for statistical analysis of indices (for example NDVI), single band products and custom evalscripts which return one value (for example modified script for NDVI).
EO Browser’s features are described in a tutorial, which can be shown with a click on the i icon in the top right in EO Browser, and on this page.

The maxcc parameter (in a raw WMS request and in sentinelhub-py) accepts the values between 0 and 1 (including 0 and 1). Meaning 0 is 0% and 1 is 100%. Everything above 1 is treated as 1 and everything below 0 is treated as 0. Docs for maxcc URL parameter / docs for maxcc parameter in sentinelhub-py.

If you are regularly changing the max cloud coverage limit, I suggest to set the max cloud coverage for a layer in the Dashboard to 100% and leave it that way. Then set the maxcc parameter to get the results for the wanted max cloud coverage for every request individually. The reason is described below.

The max cloud coverage in the dashboard determines which data from all of the available data is available for that layer. The maxcc parameter determines which data from your layer is returned for the request.
If max cloud coverage in the dashboard is set to 30%, the layer will have all the data that has cloud coverage of 30% or less (but it won’t have the data with higher cloud coverage).
The consequence is that if the maxcc parameter is set higher than 30%, the returned data will have cloud cover of 30% or less because that’s the data that the layer contains (no data in the layer exceeds the limit set by maxcc, so there’s nothing to filter).
If the maxcc parameter is set to lower than 30%, then the returned data will have cloud coverage of what is set for maxcc or less, because it will filter out the data in the layer that exceeds the maxcc limit.

You can also try to create the request in Request builder - although it doesn’t have the input to set the max cloud coverage when OGC API is selected, it takes care of other things in the request and you can add the maxcc after copying the request.

Hope this explains the behaviour of EO Browser and helps you debug a bit more.

1 Like

Thank you so much Ziga - I believe you’ve touch exactly on the issues I was concerned about.

Will keep you posted if further questions, though this should do it.

Take care,