Sentinel-1 Null data

Hi there, I’m Federico from MobyGIS.

I have downloaded some Sentinel-1 images using the sentinelhub python package.
Downloading SENTINEL1_IW products I noticed that sometimes the value in the VV or VH band are zero (if no speckleFilter is used) ore nan (if a speckleFilter is used). Conversely, if I download the same image from creodias this issue is not present. Do you know if during download from Sentinel Hub there is a filter dropping the values of data to zero if this is below a fixed noise floor?
Thanks in advance for your help.

These are the options used for the download:

product:
type: SENTINEL1_IW
other_args:
processing:
backCoeff: GAMMA0_TERRAIN
orthorectify: True
demInstance: COPERNICUS
speckleFilter:
type: LEE
windowSizeX: 3
windowSizeY: 3

This is the evalscript:

function setup() {
  return {
    input: [{
      bands: [
          "VV",
          "VH",
          "localIncidenceAngle",
          "scatteringArea",
          "shadowMask",
          "dataMask"
      ]
    }],
    output: {
        bands: 6,
        sampleType: SampleType.FLOAT32
    },
  }
}

function evaluatePixel(sample) {
    return [sample.VV, sample.VH, sample.localIncidenceAngle, sample.scatteringArea, sample.shadowMask,
            sample.dataMask];
}

Hi Federico,

when comparing it to data from CreoDIAS, to what exactly you are comparing to?
The “raw” data? In taht case you should not use backCoeff, orthorectify and speckle filter as that one is not present there.

Hi Grega,

thanks for your reply.

Downloading the zip file from CreoDIAS and opening it via SNAP I noticed that there are no missing data. The same if I open the image from Google Earth Engine; in this case I noticed that such pixels have a very low value (around -48dB). For that reason I guess sentinelhub put to zero the pixels having value beneath a selected noise floor during some operations in the processing chain I used. Is it true?

As mentioned above, you are not comparing apples to apples. The data on CreoDIAS are “raw”. The data in GEE are processed with SNAP, but they do not include radiometric terrain correction, nor the speckle filtering. So it is almost completely different product.

That said, the role of the speckle filter is to reduce the noise.

Hi Grega, as mentioned above I’m encountering the problem even if I do not use the speckle filter, but of course I’m using the radiometric terrain correction.
I mentioned the raw data just to assure that the original data has no problems.

Furthermore, using sentinelhub, the issue of zero value pixels in the same area is not systematic but sometimes appears, sometimes not (backCoeff: GAMMA0_TERRAIN, orthorectify: True). That’s why I’m searching from an answer to understand how it can be possible. One image is particularly interesting. I’m observing a lake, and almost all the pixels in the water are zero. The day after, this issue does not appear, some other days only some pixels in the lake are zero. Why in some cases the backscatter is exactly zero?

For sake of clarity i provide you some images. In the left panel you can see one day, in the right the exactly next day (this occurs because of the latitude of the target). The band is the VH, but the same issue sometimes appears also for the VV. In the day 16 (left) a lot of pixel (not only inside the lake) have exactly zero value. Conversely, the day 17, only some pixel (located in wet areas) have zero. Is it the radiometric terrain correction that floors to zero some very low values?

This part of the configuration makes you use the speckle filter…

I can’t really explain these specific observations as it would require us to study individual requests.
And explanation probably has more to do with complexity of sentinel-1 processing steps than with how specifically Sentinel Hub implements them.

I suggest you first establish a 1-1 comparison, i.e. use SNAP to produce exactly the same configuration of the results as with Sentinel Hub, then compare those. If you find significant differences (there is always rounding happening here, so…), please provide specific examples here and we might be able to compare them from IT point of view.

Best,
Grega

OK, thank you. I’ll do this check and I’ll send you a feedback.
Let me just be sure about which product is the same I have downloaded from Creo DIAS (L1 GRD), to do the right request to sentinelhub. Is it the BETA0 or SIGMA0_ELLIPSOID?

If you download data from CreoDIAS, there is no backscatter coefficient applied at all. You need to use SNAP to get that.

I have already downloaded a S1 Level1 GRD image from CreoDIAS and opened using SNAP.
I was asking about which are the correct options to be selected in the sentinelhub request in order to download the same image

Hi @federico.dipaolo,

I had a quick look at the images over your AOI and for the same dates with SNAP: the effect that you mention from one date to another with Sentinel Hub services is also visible in the images obtained directly from Copernicus with the same processing:

There are a certain number of steps applied to the S1 images that you get with Sentinel Hub: these are customisable to a certain degree. For more information see the processing chain documentation and the processing options. This will guide you on the options to select depending on what product you want.

There has already been a thread about how to get similar results with the “raw” images processed in SNAP and the Sentinel Hub products: on the SNAP forum.

Now why the noise on the 17th? Probably many different possible explanations, but you would have to dig deeper.

Hi @maxim.lamare, thank you for your suggestions. I’m still wondering why on the 16th there are so many pixels whose value is exactly zero… I’ll try to find a way to deal with this.