You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added inline type hints across the public API and a py.typed marker
(PEP 561), so downstream type-checkers pick up thermofeel's signatures
Exported fahrenheit_to_celsius at the top level, completing the C/K/F
converter set
Fixed silent integer-dtype truncation in calculate_saturation_vapour_pressure_multiphase and approximate_dsrp: an
integer-typed input array no longer truncates the float result
Added the missing citation for calculate_relative_humidity_percent
(Magnus-Tetens; Murray 1967) and documented validity ranges in the UTCI, wet
bulb, simple WBGT, NET, apparent-temperature and humidex docstrings; documented
the array calling convention and that relative humidity is not clamped
calculate_bgt (and therefore the Stull calculate_wbgt) now returns the
mean radiant temperature at exactly zero wind — the analytic calm-air limit
(no convection ⇒ globe at radiative equilibrium) — instead of NaN. Values for
any positive wind are unchanged
Ran a first numerical-robustness pass (ROBUSTNESS.md): audited the log/sqrt/power/division domains and added NaN-propagation and
error-contract tests
The published wheel now ships only the thermofeel package (examples/, scripts/ and tests/ are no longer packaged)
Raised the minimum supported Python to 3.10 (requires-python = ">=3.10"),
refreshed the trove classifiers and added Python 3.14
Repaired the examples/compute-thermal-indices.py example to the 2.x API:
solar geometry now obtained from earthkit-meteo
(solar.cos_solar_zenith_angle_integrated), calculate_utci/calculate_wbgt/ calculate_bgt/calculate_normal_effective_temperature return Kelvin directly,
renamed/removed functions and the obsolete timing decorators dropped
Removed dead, overwritten code in scale_windspeed (kept the computed log-law
coefficient) and corrected the approximate_dsrp threshold comment
Added the thermofeel.excess_heat submodule: Excess Heat Factor (EXHF),
Excess Cold Factor (EXCF), heatwave severity, and the supporting daily mean
temperature, significance and acclimatisation indices, after Nairn & Fawcett
(2014). The factors are also exposed at the top level as calculate_excess_heat_factor / calculate_excess_cold_factor. The functions
implement the per-day formulas; the temporal aggregations are left to upstream
tooling (e.g. earthkit-transforms)
Added calculate_wbgt_liljegren: physically based Wet Bulb Globe Temperature
using the Liljegren et al. (2008) method, validated against Liljegren's
reference implementation (github.com/mdljts/wbgt)
Added calculate_wind_speed_2m_liljegren: the KNMI/Liljegren
stability-dependent 10 m-to-2 m wind-speed profile, used by default in calculate_wbgt_liljegren (selectable via its wind_scaling argument)
Added calculate_heat_force: the KNMI 0–10 heat-force (hittekracht) scale
derived from WBGT (KNMI Technical Report TR-26-04)
Removed the broken, unexported experimental_wbgt module, now superseded by calculate_wbgt_liljegren
Fixed the calculate_bgt argument order in the scalar test suite