3.2.3 Polarimetry

In conventional imaging radar the measurement is a scalar which is proportional to the received back-scattered power at a particular combination of linear polarization (HH, HV, VH or VV). Polarimetry is the measurement and interpretation of the polarization of this measurement which allows to measure various optical properties of a material. In polarimetry the basic measurement is a 2x2 complex scattering matrix yielding an eight dimensional measurement space (Sinclair matrix). For reciprocal targets where HV = VH, this space is compressed to five dimensions: three amplitudes (|HH|, |HV|, and |VV|); and two phase measurements, (co-pol: HH-VV, and cross-pol: HH-HV). (see grss-ieee).

Matrix conversions

This applications allows converting classical polarimetric matrices to each other. For instance, it is possible to get the coherency matrix from the Sinclair one, or the Mueller matrix from the coherency one. The figure below (3.7) shows the workflow used in this application.


PIC

Figure 3.7: SAR polarimetry conversion application.


The filters used in this application never handle matrices, but images where each band is related to their elements. As most of the time SAR polarimetry handles symmetric matrices, only the relevant elements are stored, so that the images representing them have a minimal number of bands. For instance, the coherency matrix size is 3x3 in the monostatic case, and 4x4 in the bistatic case : it will thus be stored in a 6-band or a 10-band complex image (the diagonal and the upper elements of the matrix).

The Sinclair matrix is a special case : it is always represented as 3 or 4 one-band complex images (for mono- or bistatic case).

There are 13 available conversions, each one being related to the following parameters:

  1. msinclairtocoherency
  2. msinclairtocovariance
  3. msinclairtocircovariance
  4. mcoherencytomueller
  5. mcovariancetocoherencydegree
  6. mcovariancetocoherency
  7. mlinearcovariancetocircularcovariance
  8. muellertomcovariance
  9. bsinclairtocoherency
  10. bsinclairtocovariance
  11. bsinclairtocircovariance
  12. sinclairtomueller
  13. muellertopoldegandpower

For each option parameter, the list below gives the formula used.

— Monostatic case —

  1. msinclairtocoherency (SinclairToReciprocalCoherencyMatrixFunctor)
    1. 0.5.(Shh+Svv).(Shh+Svv)
    2. 0.5.(Shh+Svv).(ShhSvv)
    3. 0.5.(Shh+Svv).(2Shv)
    4. 0.5.(ShhSvv).(ShhSvv)
    5. 0.5.(ShhSvv).(2Shv)
    6. 0.5.(2Shv).(2Shv)
  2. msinclairtocovariance (SinclairToReciprocalCovarianceMatrixFunctor)
    1. Shh.Shh
    2. √ -
  2.Shh.Shv
    3. Shh.Svv
    4. 2.Shv.Shv
    5. √ -
  2.Shv.Svv
    6. Svv.Svv
  3. msinclairtocircovariance (SinclairToReciprocalCircularCovarianceMatrixFunctor)
    1. Sll.Sll
    2. Sll.Slr
    3. Sll.Srr
    4. Slr.Slr
    5. Slr.Srr
    6. Srr.Srr

    With:

  4. mcoherencytomueller (ReciprocalCoherencyToReciprocalMuellerFunctor)
    1. 0.5(C11 +C22 +C33)
    2. Re(C12)+Im(C22)
    3. Re(C13)
    4. Im(C23)
    5. Re(C12)
    6. 0.5(C11 +C22 C33)
    7. Re(C23)
    8. Im(C13)
    9. Re(C13)
    10. Re(C23)
    11. 0.5.Re(VAL1)
    12. 0.5.Im(VAL0)
    13. Im(C23)
    14. Im(C13)
    15. 0.5.Im(VAL1)
    16. 0.5.Re(VAL0)

    With:

    Where Cij are related to the elements of the reciprocal coherence matrix.

  5. mcovariancetocoherencydegree (ReciprocalCovarianceToCoherencyDegreeFunctor)
    1. abs(Shh.Svv)∕sqrt(Shh.Shh)∕sqrt(Svv.Svv)
    2. abs(Shv.Svv)∕sqrt(Shv.Shv)∕sqrt(Svv.Svv)
    3. abs(Shh.Shv)∕sqrt(Shh.Shh)∕sqrt(Shv.Shv)
  6. mcovariancetocoherency (ReciprocalCovarianceToReciprocalCoherencyFunctor)
    1. 0.5.(C33 +C13 +C13+C11)
    2. 0.5.(C33 C13 +C13+C11)
    3. 0.5.(√-
 2.C12 +√-
 2.C23)
    4. 0.5.(C33 C13 C13+C11)
    5. 0.5.(√2.C12 √2.C23)
    6. 0.5.(2.C22)

    Where Cij are related to the elements of the reciprocal linear covariance matrix.

  7. mlinearcovariancetocircularcovariance (ReciprocalLinearCovarianceToReciprocalCircularCovarianceFunctor)
    1. 0.25.(C33 i.√-
 2.C23 C13 +i.√ -
  2.C23C13+2.C22 i.√-
 2.C12 +i.√ -
  2.C12+C11)
    2. 0.25.(i.√-
 2.C33 +2.C23 i.√ -
  2.C13 +i.√-
 2.C13+2.C12i.√ -
  2.C11)
    3. 0.25.(C33+i.√ -
  2.C23+C13+i.√ -
  2.C23+C13+2.C22i.√ -
  2.C12i.√ -
  2.C12C11)
    4. 0.25.(2.C33 +2.C13 +2.C13+2.C11)
    5. 0.25.(i.√-
 2.C33 +i.√-
 2.C13 +2.C23i.√-
 2.C13+2.C12 i.√ -
  2.C11)
    6. 0.25.(C33 +i.√-
 2.C23 C13 i.√ -
  2.C23C13+2.C22 +i.√-
 2.C12 i.√ -
  2.C12+C11)

    Where Cij are related to the elements of the reciprocal linear covariance matrix.

  8. muellertomcovariance (MuellerToReciprocalCovarianceFunctor)
    1. 0.5.(M11 +M22 +2.M12)
    2. 0.5.√2-.[(M13 +M23)+j.(M14 +M24)]
    3. 0.5.(M33 +M44)j.M34
    4. M11 M22
    5. 0.5.√2-.[(M13 M23)+j.(M14 M24)]
    6. 0.5.(M11 +M22 2.M12)

— Bistatic case —

  1. bsinclairtocoherency (SinclairToCoherencyMatrixFunctor)
    1. (Shh+Svv).(Shh+Svv)
    2. (Shh+Svv).(ShhSvv)
    3. (Shh+Svv).(Shv+Svh)
    4. (Shh+Svv).(j(ShvSvh))
    5. (ShhSvv).(ShhSvv)
    6. (ShhSvv).(Shv+Svh)
    7. (ShhSvv).(j(ShvSvh))
    8. (Shv+Svh).(Shv+Svh)
    9. (Shv+Svh).(j(ShvSvh))
    10. j(ShvSvh).(j(ShvSvh))
  2. bsinclairtocovariance (SinclairToCovarianceMatrixFunctor)
    1. Shh.Shh
    2. Shh.Shv
    3. Shh.Svh
    4. Shh.Svv
    5. Shv.Shv
    6. Shv.Svh
    7. Shv.Svv
    8. Svh.Svh
    9. Svh.Svv
    10. Svv.Svv
  3. bsinclairtocircovariance (SinclairToCircularCovarianceMatrixFunctor)
    1. Sll.Sll
    2. Sll.Slr
    3. Sll.Srl
    4. Sll.Srr
    5. Slr.Slr
    6. Slr.Srl
    7. Slr.Srr
    8. Srl.Srl
    9. Srl.Srr
    10. Srr.Srr

    With:

    — Both cases —

  4. sinclairtomueller (SinclairToMueller)
    1. 0.5Re(T xx.T xx+T xy.T xy+T yx.T yx+T yy.T yy)
    2. 0.5Re(T xx.T xxT xy.T xy+T yx.T yxT yy.T yy)
    3. Re(T xx.T xy+T yx.T yy)
    4. Im(T xx.T xy+T yx.T yy)
    5. 0.5Re(T xx.T xx+T xy.T xyT yx.T yxT yy.T yy)
    6. 0.5Re(T xx.T xxT xy.T xyT yx.T yx+T yy.T yy)
    7. Re(T xx.T xyT yx.T yy)
    8. Im(T xx.T xyT yx.T yy)
    9. Re(T xx.T yx+T xy.T yy)
    10. Im(T xx.T yxT xy.T yy)
    11. Re(T xx.T yy+T xy.T yx)
    12. Im(T xx.T yyT xy.T yx)
    13. Re(T xx.T yx+T xy.T yy)
    14. Im(T xx.T yxT xy.T yy)
    15. Re(T xx.T yy+T xy.T yx)
    16. Im(T xx.T yyT xy.T yx)

    With :

  5. muellertopoldegandpower (MuellerToPolarisationDegreeAndPowerFunctor)
    1. Pmin
    2. Pmax
    3. DegPmin
    4. DegPmax

Examples :

  1. otbcli_SARPolarMatrixConvert -inhh imageryC_HH.tif  
                                 -inhv imageryC_HV.tif  
                                 -invv imageryC_VV.tif  
                                 -conv msinclairtocoherency  
                                 -outc coherency.tif

  2. otbcli_SARPolarMatrixConvert -inhh imageryC_HH.tif  
                                 -inhv imageryC_HV.tif  
                                 -invv imageryC_VV.tif  
                 -conv msinclairtocovariance  
                                 -outc covariance.tif

  3. otbcli_SARPolarMatrixConvert -inhh imageryC_HH.tif  
                                 -inhv imageryC_HV.tif  
                                 -invv imageryC_VV.tif  
                         -conv msinclairtocircovariance  
                                 -outc circ_covariance.tif

  4. otbcli_SARPolarMatrixConvert -inc coherency.tif  
                 -conv mcoherencytomueller  
                                 -outf mueller.tif

  5. otbcli_SARPolarMatrixConvert -inc covariance.tif  
                 -conv mcovariancetocoherencydegree  
                                 -outc coherency_degree.tif

  6. otbcli_SARPolarMatrixConvert -inc covariance.tif  
         -conv mcovariancetocoherency  
                                 -outc coherency.tif

  7. otbcli_SARPolarMatrixConvert -inc covariance.tif  
         -conv mlinearcovariancetocircularcovariance  
                                 -outc circ_covariance.tif

  8. otbcli_SARPolarMatrixConvert -inf mueller.tif  
         -conv muellertomcovariance  
                                 -outc covariance.tif

  9. otbcli_SARPolarMatrixConvert -inhh imageryC_HH.tif  
                                 -inhv imageryC_HV.tif  
                                 -invh imageryC_VH.tif  
                                 -invv imageryC_VV.tif  
         -conv bsinclairtocoherency  
                                 -outc bcoherency.tif

  10. otbcli_SARPolarMatrixConvert -inhh imageryC_HH.tif  
                                 -inhv imageryC_HV.tif  
                                 -invh imageryC_VH.tif  
                                 -invv imageryC_VV.tif  
         -conv bsinclairtocovariance  
                                 -outc bcovariance.tif

  11. otbcli_SARPolarMatrixConvert -inhh imageryC_HH.tif  
                                 -inhv imageryC_HV.tif  
                                 -invh imageryC_VH.tif  
                                 -invv imageryC_VV.tif  
                 -conv bsinclairtocircovariance  
                                 -outc circ_bcovariance.tif

  12. otbcli_SARPolarMatrixConvert -inhh imageryC_HH.tif  
                                 -inhv imageryC_HV.tif  
                                 -invh imageryC_VH.tif  
                                 -invv imageryC_VV.tif  
         -conv sinclairtomueller  
                                 -outf mueller.tif

  13. otbcli_SARPolarMatrixConvert -inf mueller.tif  
                 -conv muellertopoldegandpower  
                                 -outf degreepower.tif

Polarimetric decompositions

From one-band complex images (HH, HV, VH, VV), returns the selected decomposition. The H-alpha-A decomposition is currently the only one available; it is implemented for the monostatic case (transmitter and receiver are co-located). User must provide three one-band complex images HH, HV or VH, and VV (HV = VH in monostatic case). The H-alpha-A decomposition consists in averaging 3x3 complex coherency matrices (incoherent analysis) : The user must provide the size of the averaging window, thanks to the parameter inco.kernelsize. The applications returns a float vector image, made of three channels : H(entropy), Alpha, A(Anisotropy).

Here are the formula used (refer to the previous section about how the coherence matrix is obtained from the Sinclair one):

  1. entropy = i=02p[i].logp[i]
  log3
  2. α = i=02p[i]i
  3. anisotropy = SortedEigenValues[1]− SortedEigenValues[2]
SortedEigenValues[1]+SortedEigenValues[2]

Where:

Example :

We first extract a ROI from the original image (not required). Here imagery_HH.tif represents the element HH of the Sinclair matrix (and so forth).

Next we apply the H-alpha-A decomposition:

otbcli_SARDecompositions -inhh imagery_HH_extract.tif  
                         -inhv imagery_HV_extract.tif  
                         -invv imagery_VV_extract.tif  
 -decomp haa -inco.kernelsize 5  
                         -out haa_extract.tif

The result has three bands : entropy (0..1) - alpha (0..90) - anisotropy (0..1). It is splitted into 3 mono-band images thanks to following command :

otbcli_SplitImage -in haa_extract.tif -out haa_extract_splitted.tif

Each image is then colored thanks to a color look-up table ’hot’. Notice how minimum and maximum values are provided for each polarimetric variable.

The results are shown in the figures below (3.8 , 3.9 and 3.10).


PIC

Figure 3.8: Entropy image.



PIC

Figure 3.9: Alpha image.



PIC

Figure 3.10: Anisotropy image.


Polarimetric synthetis

This application gives, for each pixel, the power that would have been received by a SAR system with a basis different from the classical (H,V) one (polarimetric synthetis). The new basis are indicated through two Jones vectors, defined by the user thanks to orientation (psi) and ellipticity (khi) parameters. These parameters are namely psii, khii, psir and khir. The suffixes (i) and (r) refer to the transmitting antenna and the receiving antenna respectively. Orientations and ellipticity are given in degrees, and are between -90/90 degrees and -45/45 degrees respectively.

Four polarization architectures can be processed :

  1. HH_HV_VH_VV : full polarization, general bistatic case.
  2. HH_HV_VV or HH_VH_VV : full polarization, monostatic case (transmitter and receiver are co-located).
  3. HH_HV : dual polarization.
  4. VH_VV : dual polarization.

The application takes a complex vector image as input, where each band correspond to a particular emission/reception polarization scheme. User must comply with the band order given above, since the bands are used to build the Sinclair matrix.

In order to determine the architecture, the application first relies on the number of bands of the input image.

  1. Architecture HH_HV_VH_VV is the only one with four bands, there is no possible confusion.
  2. Concerning HH_HV_VV and HH_VH_VV architectures, both correspond to a three channels image. But they are processed in the same way, as the Sinclair matrix is symmetric in the monostatic case.
  3. Finally, the two last architectures (dual-polarization), can’t be distinguished only by the number of bands of the input image. User must then use the parameters emissionh and emissionv to indicate the architecture of the system : emissionh=1 and emissionv=0 for HH_HV, emissionh=0 and emissionv=1 for VH_VV.

Note : if the architecture is HH_HV, khii and psii are automatically set to 0/0 degrees; if the architecture is VH_VV, khii and psii are automatically set to 0/90 degrees.

It is also possible to force the calculation to co-polar or cross-polar modes. In the co-polar case, values for psir and khir will be ignored and forced to psii and khii; same as the cross-polar mode, where khir and psir will be forced to psii + 90 degrees and -khii.

Finally, the result of the polarimetric synthesis is expressed in the power domain, through a one-band scalar image.

The final formula is thus : P = BT .[S].A2 , where A ans B are two Jones vectors and S is a Sinclair matrix.

The two figures below (3.11 and 3.12) show the two images obtained with the basis LL and LR (L for left circular polarization and R for right polarization), from a Radarsat-2 image taken over Vancouver, Canada. Once the four two-band images imagery_HH imagery_HV imagery_VH imagery_VV were merged into a single four complex band image imageryC_HH_HV_VH_VV.tif, the following commands were used to produce the LL and LR images :

otbcli_SARPolarSynth -in imageryC_HH_HV_VH_VV.tif  
     -psii 0 -khii 45 -mode co  
                     -out test-LL.tif

otbcli_SARPolarSynth -in imageryC_HH_HV_VH_VV.tif  
                     -psii 0 -khii 45 -mode cross  
                     -out test-LR.tif

The produced images were then rescaled to intensities ranging from 0 to 255 in order to be displayed.


PIC

Figure 3.11: Image LL (sensor : RADARSAT-2).



PIC

Figure 3.12: Image LR (sensor : RADARSAT-2).


Polarimetric data visualization

Finally, let’s talk about polarimetric data visualization. There is a strong link between polarimetric data visualization and the way they can be decomposed into significant physical processes. Indeed, by setting the results (or combinations) of such decompositions to RGB channels that help in interpreting SAR polarimetric images.

There is no specific dedicated application yet, but it is possible to use a combination of different applications as a replacement. Let’s do it with a RADARSAT-2 acquisition over the famous place of the Golden Gate Bridge, San Francisco, California.

We first make an extract from the original image (not mandatory).

Then we compute the amplitude of each band using the BandMath application:

Note that BandMath application interprets the image ’imagery_XX_extract.tif’ as an image made of two bands, where the first one is related to the real part of the signal, and where the second one is related to the imaginary part (that’s why the modulus is obtained by the expressions im1b12 +im1b22).

Then, we rescale the produced images to intensities ranging from 0 to 255:

Figures below (3.13 , 3.14 and 3.15) show the images obtained :


PIC

Figure 3.13: Band HH in amplitude (sensor : RADARSAT2).



PIC

Figure 3.14: Band HV in amplitude (sensor : RADARSAT2).



PIC

Figure 3.15: Band VV in amplitude (sensor : RADARSAT2).


Now the most interesting step. In order to get a friendly coloration of these data, we are going to use the Pauli decomposition, defined as follows :

We use the BandMath application again:

Note that sqrt(2) factors have been omitted purposely, since their effects will be canceled by the rescaling step. Then, we rescale the produced images to intensities ranging from 0 to 255 :

And finally, we merge the three bands into a single RGB image.

otbcli_ConcatenateImages -il Channel1_res.tif Channel2_res.tif Channel3_res.tif  
-out visuPauli.png

The result is shown in the figure below (3.16).


PIC

Figure 3.16: RGB image obtained from Pauli decomposition (sensor : RADARSAT2).