Skip to content

2.2.0

Latest

Choose a tag to compare

@tlmquintino tlmquintino released this 20 Jun 09:26
f9c4728
  • 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