# Probability map

Probability maps are rasters containing as bands as class. Each band reprensents the probability of belonging to a given class in [0; 1000] range. Bands are ordered from the lower to the greater integer label.

## Parameters involved

Parameter Key |
Parameter section |
Parameter Type |
Default value |
Parameter purpose |
---|---|---|---|---|

enable_probability_map |
arg_classification |
Boolean |
False |
enable the probability map generation |

## Parameters compatibility

The probability maps can only be generated if the shark classifier is used during the run.

Warning

if `enable_probability_map`

is `True`

then `classifier`

must be `'sharkrf'`

## Additionnal outputs

Each classifications will generate it own probability map called `PROBAMAP_TT_model_MM_seed_SS.tif`

in `classif`

output iota2 directory where TT is the tile’s name MM the model’s name
and SS the seed number. Once all generated, they are merged under the
`ProbabilityMap_seed_SS.tif`

name into the `final`

directory.

## Internal choices

In some case, there is many classifier decisions to a given pixel. This section detail internal choices in order to provide a probability map without NoData labels.

### Post-classification fusion

By enabling the `dempster_shafer_SAR_Opt_fusion`

parameter flag, iota2 will
class each pixels invoking the model built thanks to SAR data and the one built
by using optical data. Then, the dempster-shafer is used to attribute the final decision.

Here is the rules to attribute the vector of probability to each pixels

- Consider :
\(p\): the pixel of interest

\(ProbaMapSAR\): the probability map provided by the SAR model

\(ProbaMapOpt\): the probability map provided by the optical model

\(ProbaMapOut\): the output probability map

\(DS\): the dempster-shafer choice

\(DS(p)\) in \({0, 1, 2, 3}\)

0 : no decision

1 : choice is both

2 : choice is SAR

3 : choice is Optical

- Then :
\(ProbaMapOut(p) = 0\) if \(DS(p) = 0\)

\(ProbaMapOut(p) = ProbaMapSAR(p)\) if \(DS(p) = 2\)

\(ProbaMapOut(p) = ProbaMapOpt(p)\) if \(DS(p) = 3\)

\(ProbaMapOut(p) = ProbaMapOpt(p)\) if \(DS(p) = 1\) and \(max(ProbaMapOpt(p)) > max(ProbaMapSAR(p))\)

\(ProbaMapOut(p) = ProbaMapSAR(p)\) if \(DS(p) = 1\) and \(max(ProbaMapSAR(p)) > max(ProbaMapOpt(p))\)

### Too huge regions

Using both parameters `classifMode`

to `'separate'`

and `mode_outside_RegionSplit`

to an integer value,
many models will be built to a given region. Then each models will votes to each pixels inside the region and
some fusion rules are involved. Here is the probability maps fusion rule :

the probability of a given class is the mean of all probability provided by each classifier.

## Developers corner

Some unittests are involved by probability maps generation

### Tests

UnitTests.ClassificationsTests.test_reorder_proba_map

UnitTests.OpticalSARFusionTests.test_compute_probamap_fusion