Refined Lee polarimetric speckle filter

Hello everyone,

I am trying to understand the Refined Lee polarimetric speckle filter for dual-pol data and wondering the following~

(1) According to this literature - Mullissa_2018, there is a factor of 2 for the cross-pol channel (VH for Sentinel-1) in the dual-pol Pauli scattering vector k as
I don’t, however, see this factor and its multiple (either 2 or 4) are multiplied in the code (function computeCovarianceMatrixC2) when computing the covariance matrix C2. Is there a reason behind this implementation?

(2) Following previous point, span calculated from the C2 matrix is divided by 2 in the code (function createC2SpanImage). Shouldn’t the trace of a matrix be just the sum of the diagonal terms?

Any inputs are appreciated!

This could be simply a matter of chosen convention, anyway I think @jun_lu should know best what the choices were.

Follow up on question (1):

I think I just mixed up all the terms and confused myself :sweat_smile:

If I understand correctly, the Pauli scattering vector is for computing the coherency matrix T and the lexicographic scattering vector for covariance matrix C.

So no factor 2 or 4 for computing C2 should be correct~ (Correct me if I am wrong!

But I still don’t think the span should be divided y 2. Any thoughts @jun_lu?