NaN appears at the edge of the scene after applying Border Noise Removal (Sentinel-1 GRD)


After I preprocessed Sentinel-1 GRD products taken near Cyprus on 11 October 2023 with the absolute orbit number 050712 and data-take identifier 061C48, some NaN appeared at the border of the scene:

(Preprocessed of S1A_IW_GRDH_1SDV_20231011T040024_20231011T040049_050712_061C48_86E2; pixels in yellow show NaN)

The original GRD product doesn’t seem to have problem at the edge (at least I couldn’t tell); therefore, it shall be the preprocessing step that generates these NaN. I used the steps for preprocessing the data as follows:

  1. Remove GRD Border Noise (Remove-GRD-Border-Noise)
  2. Thermal noise removal (ThermalNoiseRemoval)
  3. Calibration
  4. Multilook
  5. Subset
  6. Conversion to dB (LinearToFromdB)

These NaN exist after applying Remove-GRD-Border-Noise, but the same steps were applied to other scenes without problems. I am wondering why this happened to this scene specifically?


I assume that this is a side effect of the “Remove GRD Border Noise”.

This step correspond to the process described in this document

This method has known limitations (refer to section 4.7)

This approach is effective over land where the data acquired has a level of signal always higher than
the instrument noise floor.
Over water body areas the level signal might be extremely low hence reaching the noise floor such
that the denoising will theoretically clip most of the valid pixels to zero. This impacts most
predominantly the cross-polarisation and it is mitigated by the usage of the co-polarisation in this
technical note.
However, even for the co-polarisation over very low wind speed condition there might be no signal
coming back to the radar thus also reaching the noise floor. In this situation, the masking approach
based on only the denoising might not be sufficient, as most of the pixels will be masked.

This “Remove GRD Border Noise” is however not required for products processed with IPF > 2.90, then since 2018-03-13

The document cited above is confusing due to a style issue on the header of the section “5. Masking approach for IPF version lower than 2.90”. It will be updated.

I sugest you to remove this step from your processing for GRD products processed after 2018-03-13.


@mengdahl for information

1 Like

The document was corrected to make it more explicit (Remove GRD Border Noise is not required for product processed with IPF 2.90 and higher)

I think the Remove Border Noise operator should be updated to handle this situation. Is there a performance hit if the operator does “nothing” if the processor version is 2.9 or higher? @jun_lu @diana_harosa

Hello @ghajduch and @mengdahl ,

Thanks for the information. As some threads discussing steps for Sentinel-1 data included “Remove-GRD-Border-Noise”, it is good to know that it is actually not required for the recent products.

1 Like

A JIRA ticket ([SNAP-3577] - JIRA) has been created to track the problem. We will look into it and thank you for reporting the issue.

1 Like

The Remove GRD Border Noise operator has been updated to handle cases where the IPF version >= 2.90. The code has been checked in to GitHub. The fix will be available with the next release.


The last version of the Sentinel-1 Technical note on the masking of no values pixels on GRD product was published in oct 2023.
I provide here the direct link for completness