Sentinel 1 Coherence with diapOTB processing chains - Settings and Validation

Dear all,

I want to use OTB to calculate the the coherence of two Sentinel 1 SLC scenes. For that, I am executing the diapOTB_S1IW.py chain with the according settings made in the corresponding json (ex_config_diapOTB_S1IW.json). I am wondering about the validity of the results and if there are some hidden settings I could use to influence the calculation.

Configuration setup

My system: Ubuntu 20.04
Version of the OTB: 7.4
I installed the OTB with: the binaries

Description of my issue

My problem is that the result (stored in /filt/filfPhaCoh.tif in the output_dir) looks significantly different from what I get from ESA SNAP. I georeferenced the unreferenced filfPhaCoh.tif so I can compare it to SNAP results. It seems that coherence is overestimated and contains less detail. There might also be a striping effect. By some digging I discovered that the parameters Filtered_Interferogram_mlran and Filtered_Interferogram_mlazi, when set to 10x3 instead of 3x3 (default) improve the coherence (visually by comparison) but still it looks overestimated. The mentioned striping is also very strong in the 3x3 window.


Image: Left: Coherence calculated by the diapOTB_S1IW chain, with Filtered_Interferogram_* window 10x3 | Right: Coherence calculated by the ESA SNAP software (following official tutorial), with a 10x3 coherence window.

So, to sum up: The calculated coherence looks faulty to me. I know it is in the workflow only as a byproduct but how come it is so different from the SNAP result? Also, I could not find more parameters with which to influence the calculation. Are there more ways to hack into the process?

Let me know if you have any ideas or follow-up questions :slight_smile:
Thanks in advance,
Jonathan

I think OTB uses a little different approach to calculate coherence - there are many details.
If you are looking for a SNAP matchable results and if you have an Nvidia GPU, try this - Bitbucket Currently input parameters are kinda mess, but we will make it more user friendly with version 1.0.

Thanks @svenKautlenbach!

I think OTB uses a little different approach to calculate coherence

Do you happen to know any details about this approach? Or can someone from OTB clarify how the coherence is computed in your implementation?

I also noticed that OTB coherence exceeds the usual range of [0…1]. For what I thought defines coherence universally see https://earth.esa.int/workshops/ers97/program-details/speeches/rocca-et-al/ at #coherence:
Screenshot from 2021-11-30 14-24-19

If you are looking for a SNAP matchable results and if you have an Nvidia GPU

Unfortunately, GPU processing is not an option for me.