def calculate_wattage(resting_heart_rate, maximum_heart_rate, heart_rate, base_power_output): def get_zone_percentile(heart_rate, resting_heart_rate, maximum_heart_rate): HRR = maximum_heart_rate - resting_heart_rate zone = ((heart_rate - resting_heart_rate) / HRR) * 100 return round(zone, 2) def get_hrr_range(zone): if zone <= 65: return (0, 65) elif zone <= 70: print("UT2 Zone") return (65, 70) elif zone <= 80: print("UT1 Zone") return (70, 80) elif zone <= 85: print("AT Zone") return (80, 85) elif zone <= 95: print("TR Zone") return (85, 95) else: print("AN Zone") return (95, 100) def get_power_range(zone): if zone <= 65: return (0, 45) elif zone <= 70: print("UT2 Zone") return (45, 60) elif zone <= 80: print("UT1 Zone") return (60, 70) elif zone <= 85: print("AT Zone") return (70, 80) elif zone <= 95: print("TR Zone") return (80, 105) else: print("AN Zone") return (105, 115) zone_percentage = get_zone_percentile(heart_rate, resting_heart_rate, maximum_heart_rate) print("Zone: " + str(zone_percentage)) min_power, max_power = get_power_range(zone_percentage) print("Min power: " + str(min_power)) print("Max power: " + str(max_power)) min_hrr, max_hrr = get_hrr_range(zone_percentage) print("Min hrr: " + str(min_hrr)) print("Max hrr: " + str(max_hrr)) power_range = max_power - min_power print("Power range: " + str(power_range)) hrr_range = max_hrr - min_hrr print("HRR range: " + str(hrr_range)) print("Zone minus min hrr: " + str(zone_percentage - min_hrr)) # Calculate percentage of hrr range hrr_percentage = ((zone_percentage - min_hrr) / hrr_range) print("hrr %: " + str(hrr_percentage)) power_percentage = (min_power + hrr_percentage * power_range) / 100 print("Power percentage: " + str(power_percentage)) # Add base power output # predicted_power = power_percentage + base_power_output predicted_power = base_power_output / power_percentage return round(predicted_power, 0) # Example usage resting_heart_rate = 58 maximum_heart_rate = 165 heart_rate = 132 base_power_output = 110 watts = calculate_wattage(resting_heart_rate, maximum_heart_rate, heart_rate, base_power_output) print(f"Predicted power: {watts} watts")