<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_normalized_bdew_profile(self):
 """ Calculation of the normalized hourly heat demand """

        self.df['temperature'] = self.temperature.values
        self.df['temperature_geo'] = self.weighted_temperature(
            how='geometric_series')

        sf = self.get_sf_values()

        [a, b, c, d] = self.get_sigmoid_parameters()

        f = self.get_weekday_parameters()
        h = (a / (1 + (b / (self.df['temperature_geo'] - 40)) ** c) + d)
        kw = 1.0 / (sum(h * f) / 24)
        heat_profile_normalized = (kw * h * f * sf)

        return heat_profile_normalized