Source code for satsense.performance.jaccard_similarity

"""
Jaccard similarity module.

Contains functions to calculate the Jaccard similarity index between 2 binary
masks or multipolygonal shapes.
"""

from sklearn.metrics import jaccard_similarity_score as jss


# JI between 2 binary masks
[docs]def jaccard_index_binary_masks(truth_mask, predicted_mask): return jss(truth_mask, predicted_mask, normalize=True)
# JI between 2 multipolygons
[docs]def jaccard_index_multipolygons(truth_multi, predicted_multi): if not (truth_multi.is_valid): raise ('The truth multipolygon is not valid!') if not (predicted_multi.is_valid): raise ('The predicted multipolygon is not valid!') # intersection intersec = truth_multi.intersection(predicted_multi).area # union union = truth_multi.union(predicted_multi).area # Jaccard index is intersection over union return intersec / union