Differences between FIS and CSV NDVI data from Sentinel Hub


We try to use sentinel hub-py to obtain NDVI data programmatically from the Feature Info Service (‘the FIS data’), instead of manually exporting data from the EO Browser to a csv file (‘the CSV data’).

Currently, the FIS data and the CSV data are different.

We suspect several things to be responsible for that difference:

  1. Layers. The CSV data is marked ‘C0’, while the FIS data includes C0, C1, C2, C3. Which of these should be used?

  2. Resolution. In the FISRequest, one of the fields is “resolution” which is described as “spatial resolution on which to calculate statistics” (Sentinel Hub Feature Info Service (FIS) — Sentinel Hub 3.2.1 documentation)
    We would like its value to match the value used for the CSV data, however, we cannot find this value/setting in the EO Browser.

  3. Time Intervals. The CSV data includes much less time samples (lines) than the FIS data. What is the reason and can this be changed?

Your help would be appreciated.

  1. The keys in the response JSON object (C0, C1 …) correspond to the bands in the specified layer. Given that you have 4 bands in your response makes me think that your are trying to retrieve stats on a layer that visualises NDVI (R,G,B, datamask) rather than a layer that returns the actual NDVI values. But this is just guessing: can you confirm the Evalscript of your layer? Please note that in EO Browser, although you are visualising the NDVI product with a given colormap, the actual values are being retrieved by the tool in the background.

  2. The resolution of the FIS request called via EO Browser is not fixed. Indeed, depending on the area of interest that you define, the system will compute the resolution so that the AOI contains approximately 1000 pixels. EO Browser is a useful tool for exploring and visualising data, but not ideal for analytical studies where you need control over all the parameters. For this, we recommend the APIs (as you have started doing).

For point number 3, I need to look into this a bit more.

Please also note that the new Statistical API has been launched, fully replacing FIS services and bringing additional features described here. The sentinelhub-py package should be soon updated to use the new service!


I am happy to let you know that, as mentioned in my previous post, support for the new Statistical API has been added to sentinelhub-py in the latest release. If you follow the link you will find an example Jupyter Notebook.