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:
- 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).
- 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.
- 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, pr — no 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).
Summary
Review found the HSH (human heat stress) index in
hazards_upstream/R/04_indices/calc_HSH.Ris 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:
tmean >= 25 °Cgate that returns raw temperature below it.Tavg = (tasmax+tasmin)/2into 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.Options
climate-toolkitcurrently uses xclimhumidexfor human heat.Data note (WBGT/UTCI feasibility)
NEX-GDDP-CMIP6 inputs we currently process:
tasmax, tasmin, hurs, rsds, pr— nosfcWind.tasmax+hurs.sfcWindis 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).