Skip to content

HSH (human heat stress): incomplete NWS Heat Index — missing corrections + wrong input temp #14

Description

@peetmate

Summary

Review found the HSH (human heat stress) index in hazards_upstream/R/04_indices/calc_HSH.R is an incomplete implementation of the NWS (Rothfusz) Heat Index. The regression core is correct, but it omits the standard correction branches and uses the wrong input temperature — so current Atlas HSH values are biased, materially so in Africa's arid and very-humid zones.

Findings

Correct: all 9 Celsius Rothfusz coefficients (c1..c9) verified against the published NWS regression — exact match.

Issues:

  1. Missing all three NWS correction steps:
    • Steadman simple-formula fallback (used when HI < 80 °F) — replaced by a non-standard tmean >= 25 °C gate that returns raw temperature below it.
    • Low-RH adjustment (RH < 13%, 80–112 °F) — index reads high under hot-dry conditions (Sahara/Sahel/Horn).
    • High-RH adjustment (RH > 85%, 80–87 °F) — index reads low under warm-very-humid conditions (Congo basin, Gulf of Guinea coast).
  2. Wrong input temperature: feeds daily mean Tavg = (tasmax+tasmin)/2 into the Heat Index. HI is a daytime apparent-temperature metric defined on dry-bulb air temp — should use Tmax. Current code understates the dangerous daytime peak.
  3. Non-standard gate: 25 °C (~77 °F) instead of the NWS 80 °F switch.

Options

  • (a) Fix the NWS Heat Index in place: switch Tavg→Tmax, add the Steadman fallback + low/high-RH corrections (cleanest done in °F then converted). Keeps the familiar metric, makes it correct.
  • (b) Switch to a state-of-the-art human-heat metric: WBGT (ISO 7243) or UTCI. CDH climate-toolkit currently uses xclim humidex for human heat.
  • (c) Converge on CDH/xclim human-heat output as part of the hazards merge.

Data note (WBGT/UTCI feasibility)

NEX-GDDP-CMIP6 inputs we currently process: tasmax, tasmin, hurs, rsds, prno sfcWind.

  • Simplified (shade) WBGT is computable now from tasmax+hurs.
  • Full outdoor WBGT and UTCI need wind (natural wet-bulb + globe/mean-radiant temp); sfcWind is a standard NEX-GDDP-CMIP6 variable but is not currently downloaded — addable via the download config.

Ask

@bjyberg — could you review which direction the Atlas should take for human heat stress (fix NWS HI vs humidex vs WBGT/UTCI), given CDH's human-heat method work? Tagging for method sign-off before we change Atlas values.

Filed from a methods review of hazards_upstream/R/04_indices (Adaptation Atlas hazards producer).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions