Source code for landusemix.indices

"""
This module contains a class that calculates land use mix indices.
"""
import math

[docs] class LandUseMixIndices: """ A class that calculates land use mix indices. Attributes: land_use_areas (dict): A dictionary containing land use areas. Methods: entropy_index: Calculates the entropy index. herfindahl_hirschman_index: Calculates the Herfindahl-Hirschman index. """ def __init__(self, land_use_areas): """ Initializes a LandUseMixIndices object. Args: land_use_areas (dict): A dictionary containing land use areas. """ self.land_use_areas = land_use_areas
[docs] def entropy_index(self): """ Calculates the entropy index. Returns: float: The entropy index value. """ total_area = sum(self.land_use_areas.values()) k = len(self.land_use_areas) if k == 1: return 0 entropy = -sum((area / total_area) * math.log(area / total_area) for area in self.land_use_areas.values()) / math.log(k) return round(entropy, 2)
[docs] def herfindahl_hirschman_index(self): """ Calculates the Herfindahl-Hirschman index. Returns: float: The Herfindahl-Hirschman index value. """ total_area = sum(self.land_use_areas.values()) hhi = sum((100 * (area / total_area)) ** 2 for area in self.land_use_areas.values()) return round(hhi, 2)