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'.

Additional outputs

Each classification will generate its 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 cases, there are many classifier decisions for a given pixel. This section details 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 pixel 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 are the rules to attribute the vector of probability to each pixel.

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 model will vote to each pixel 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 in 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