You are looking the documentation of a development version. The release version is available at master.

Probability map

Probability maps are rasters containing each band as a class. Each band represents the probability of each pixel belonging to a given class in a [0; 1000] range. Band names are sorted, for example:

band name

1

12

13

1597

2

25

236

3

4

band number

1

2

3

4

5

6

7

8

9

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 unit tests are involved by probability maps generation.

Tests

unittests/iota2_tests_classifications.py:Iota2TestClassifications:test_reorder_proba_map unittests/iota2_tests_optical_sar_fusion.py:Iota2TestOpticalSARFusion:test_compute_probamap_fusion