# SARPolarMatrixConvert¶

This applications allows converting classical polarimetric matrices to each other.

## Description¶

This application allows converting classical polarimetric matrices to each other. For instance, it is possible to get the coherency matrix from the Sinclar one, or the Mueller matrix from the coherency one. 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/hermitian 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). The available conversions are listed below:

— Monostatic case — 1 msinclairtocoherency –> Sinclair matrix to coherency matrix (input: 3 x 1 complex channel (HH, HV or VH, VV) | output: 6 complex channels) 2 msinclairtocovariance –> Sinclair matrix to covariance matrix (input: 3 x 1 complex channel (HH, HV or VH, VV) | output: 6 complex channels) 3 msinclairtocircovariance –> Sinclair matrix to circular covariance matrix (input: 3 x 1 complex channel (HH, HV or VH, VV) | output: 6 complex channels) 4 mcoherencytomueller –> Coherency matrix to Mueller matrix (input: 6 complex channels | 16 real channels) 5 mcovariancetocoherencydegree –> Covariance matrix to coherency degree (input: 6 complex channels | 3 complex channels) 6 mcovariancetocoherency –> Covariance matrix to coherency matrix (input: 6 complex channels | 6 complex channels) 7 mlinearcovariancetocircularcovariance –> Covariance matrix to circular covariance matrix (input: 6 complex channels | output: 6 complex channels)

— Bistatic case — 8 bsinclairtocoherency –> Sinclair matrix to coherency matrix (input: 4 x 1 complex channel (HH, HV, VH, VV) | 10 complex channels) 9 bsinclairtocovariance –> Sinclair matrix to covariance matrix (input: 4 x 1 complex channel (HH, HV, VH, VV) | output: 10 complex channels) 10 bsinclairtocircovariance –> Sinclair matrix to circular covariance matrix (input: 4 x 1 complex channel (HH, HV, VH, VV) | output: 10 complex channels)

— Both cases — 11 sinclairtomueller –> Sinclair matrix to Mueller matrix (input: 4 x 1 complex channel (HH, HV, VH, VV) | output: 16 real channels) 12 muellertomcovariance –> Mueller matrix to covariance matrix (input: 16 real channels | output: 6 complex channels) 13 muellertopoldegandpower –> Mueller matrix to polarization degree and power (input: 16 real channels | output: 4 real channels)

This application has several output images and supports “multi-writing”. Instead of computing and writing each image independently, the streamed image blocks are written in a synchronous way for each output. The output images will be computed strip by strip, using the available RAM to compute the strip size, and a user defined streaming mode can be specified using the streaming extended filenames (type, mode and value). Note that multi-writing can be disabled using the multi-write extended filename option: &multiwrite=false, in this case the output images will be written one by one. Note that multi-writing is not supported for MPI writers.

## Parameters¶

**Input multi-band complex image** `-inc image`

Input: multi-band complex image

**Input multi-band real image** `-inf image`

Input: multi-band real image

**Input one-band complex image (HH)** `-inhh image`

Input: one-band complex image (HH)

**Input one-band complex image (HV)** `-inhv image`

Input: one-band complex image (HV)

**Input one-band complex image (VH)** `-invh image`

Input: one-band complex image (VH)

**Input one-band complex image (VV)** `-invv image`

Input: one-band complex image (VV)

**Output Complex Image** `-outc image [dtype]`

Output Complex image.

**Output Real Image** `-outf image [dtype]`

Output Real image.

**Conversion** `-conv [msinclairtocoherency|msinclairtocovariance|msinclairtocircovariance|mcoherencytomueller|mcovariancetocoherencydegree|mcovariancetocoherency|mlinearcovariancetocircularcovariance|muellertomcovariance|bsinclairtocoherency|bsinclairtocovariance|bsinclairtocircovariance|sinclairtomueller|muellertopoldegandpower]`

*Default value: msinclairtocoherency*

**1 Monostatic: Sinclair matrix to coherency matrix (complex output)**

1 Monostatic: Sinclair matrix to coherency matrix (complex output)**2 Monostatic: Sinclair matrix to covariance matrix (complex output)**

2 Monostatic: Sinclair matrix to covariance matrix (complex output)**3 Monostatic: Sinclair matrix to circular covariance matrix (complex output)**

3 Monostatic: Sinclair matrix to circular covariance matrix (complex output)**4 Monostatic: Coherency matrix to Mueller matrix**

4 Monostatic: Coherency matrix to Mueller matrix**5 Monostatic: Covariance matrix to coherency degree**

5 Monostatic: Covariance matrix to coherency degree**6 Monostatic: Covariance matrix to coherency matrix (complex output)**

6 Monostatic: Covariance matrix to coherency matrix (complex output)**7 Monostatic: Covariance matrix to circular covariance matrix (complex output)**

7 Monostatic: Covariance matrix to circular covariance matrix (complex output)**8 Bi/mono: Mueller matrix to monostatic covariance matrix**

8 Bi/mono: Mueller matrix to monostatic covariance matrix**9 Bistatic: Sinclair matrix to coherency matrix (complex output)**

9 Bistatic: Sinclair matrix to coherency matrix (complex output)**10 Bistatic: Sinclair matrix to covariance matrix (complex output)**

10 Bistatic: Sinclair matrix to covariance matrix (complex output)**11 Bistatic: Sinclair matrix to circular covariance matrix (complex output)**

11 Bistatic: Sinclair matrix to circular covariance matrix (complex output)**12 Bi/mono: Sinclair matrix to Mueller matrix**

12 Bi/mono: Sinclair matrix to Mueller matrix**13 Bi/mono: Mueller matrix to polarisation degree and power**

13 Bi/mono: Mueller matrix to polarisation degree and power

**Available RAM (MB)** `-ram int`

*Default value: 256*

Available memory for processing (in MB).

## Examples¶

From the command-line:

```
otbcli_SARPolarMatrixConvert -inhh HH.tif -invh VH.tif -invv VV.tif -conv msinclairtocoherency -outc mcoherency.tif
```

From Python:

```
import otbApplication
app = otbApplication.Registry.CreateApplication("SARPolarMatrixConvert")
app.SetParameterString("inhh", "HH.tif")
app.SetParameterString("invh", "VH.tif")
app.SetParameterString("invv", "VV.tif")
app.SetParameterString("conv","msinclairtocoherency")
app.SetParameterString("outc", "mcoherency.tif")
app.ExecuteAndWriteOutput()
```