calculateHeatIndex

private fun calculateHeatIndex(): Float?

Calcula el índice de calor (Heat Index) si la temperatura ambiente es igual o superior a 27°C. Este umbral se basa en el punto donde el índice de calor comienza a ser significativo.

El cálculo utiliza la fórmula de regresión múltiple de Rothfusz, que es el estándar empleado por la NOAA (National Oceanic and Atmospheric Administration) de EE. UU. Esta fórmula toma la temperatura en Fahrenheit y la humedad relativa en porcentaje.

Pasos del cálculo:

  1. Verifica si ambientTemperature está disponible y es >= HEAT_INDEX_ACTIVATION_TEMP_CELSIUS (27.0°C).

  2. Si la condición se cumple, obtiene la humedad relativa actual del mes usando HumidityDataManager.

  3. Convierte la temperatura ambiente de Celsius a Fahrenheit (tempF).

  4. Calcula el índice de calor base en Fahrenheit (heatIndexF) usando calculateRothfuszHeatIndex(tempF, humidity).

  5. Aplica ajustes al heatIndexF para condiciones específicas de humedad y temperatura (por ejemplo, baja humedad y alta temperatura, o alta humedad y temperatura moderada-alta) usando applyHeatIndexAdjustments. Estos ajustes mejoran la precisión del índice en los extremos.

  6. Asegura que el índice de calor ajustado no sea menor que la temperatura ambiente actual en Fahrenheit.

  7. Convierte el heatIndexF final de nuevo a Celsius.

  8. Registra los valores de temperatura, humedad e índice de calor calculado.

  9. Retorna el índice de calor en Celsius como Float.

Si la temperatura ambiente es inferior a 27°C o no está disponible, la función retorna null, indicando que el índice de calor no es aplicable o no se puede calcular.

Return

El índice de calor calculado en grados Celsius, o null si no es aplicable.