A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

pythermalcomfort

Package to calculate several thermal comfort indices (e.g. PMV, PPD, SET, adaptive) and convert physical variables.
https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort

Category: Consumption
Sub Category: Buildings and Heating

Last synced: about 20 hours ago
JSON representation

Repository metadata

Package to calculate several thermal comfort indices (e.g. PMV, PPD, SET, adaptive) and convert physical variables.

README.rst

          .. image:: https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort/raw/development/docs/images/pythermalcomfort-3-short.png
  :align: center
  :alt: pythermalcomfort logo

================
pythermalcomfort
================

The ``pythermalcomfort`` Python package is a comprehensive toolkit for calculating **thermal comfort indices**, **heat/cold stress metrics**, and **thermophysiological responses** based on international standards and peer-reviewed research.
Designed for researchers, engineers, and building science professionals, it simplifies complex calculations while ensuring accuracy and compliance with industry standards.

Key Features
============

- **Thermal Comfort Calculations**:
  Supports multiple models, including **PMV**, **PPD**, **adaptive comfort**, and **SET**.
- **Heat and Cold Stress Indices**:
  Calculate **UTCI**, **Heat Index**, **Wind Chill Index**, and **Humidex** for assessing environmental stress.
- **Thermophysiological Models**:
  Includes the **two-node (Gagge)** and **multinode (JOS-3)** models to estimate physiological responses like **core temperature**, **skin temperature**, and **skin wettedness**.
- **Standards Compliance**:
  Implements calculations based on **ASHRAE 55**, **ISO 7730**, **EN 16798**, and more.
- **Ease of Use**:
  Intuitive API for seamless integration into your projects.
- **Extensive Documentation**:
  Detailed guides, examples, and tutorials to help you get started quickly.
- **Active Development**:
  Regularly updated with new features, improvements, and bug fixes.
- **Open Source**:
  Licensed under the MIT License for maximum flexibility and transparency.

Why Use pythermalcomfort?
=========================

- **Accurate Assessments**:
  Reliable thermal comfort and stress evaluations for diverse environments.
- **Time-Saving**:
  Automates complex calculations, saving you time and effort.
- **Versatility**:
  Ideal for researchers, engineers, and professionals in **building science**, **HVAC design**, **environmental design**, **thermal physiology**, **sport science**, and **biometeorology**.
- **Enhanced Decision-Making**:
  Empowers you to make data-driven decisions for **HVAC systems**, **building performance**, and **occupant comfort**.

Cite pythermalcomfort
=====================

If you use ``pythermalcomfort`` in your research, please cite it as follows:

.. code-block:: text

   Tartarini, F., Schiavon, S., 2020. pythermalcomfort: A Python package for thermal comfort research. SoftwareX 12, 100578. https://doi.org/10.1016/j.softx.2020.100578

Installation
============

Install ``pythermalcomfort`` via pip:

.. code-block:: bash

   pip install pythermalcomfort

For advanced installation options, refer to the installation Section in the documentation.

Quick Start
===========

Get started with ``pythermalcomfort`` in just a few lines of code:

.. code-block:: python

   from pythermalcomfort.models import pmv_ppd_iso, utci

   # Calculate PMV and PPD using ISO 7730 standard
   result = pmv_ppd_iso(tdb=25, tr=25, vr=0.1, rh=50, met=1.4, clo=0.5, model='7730-2005')
   print(f"PMV: {result.pmv}, PPD: {result.ppd}")

   # Calculate UTCI for heat stress assessment
   utci_value = utci(tdb=30, tr=30, v=0.5, rh=50)
   print(f"UTCI: {utci_value} °C")

For more examples and detailed usage, check out models and indices in the models section of the documentation.

Contribute
==========

We welcome contributions!
Whether you’re reporting a bug, suggesting a feature, or submitting a pull request, your input helps make ``pythermalcomfort`` better for everyone.
Check out our contribution page in the documentation to get started.

Documentation
=============

For detailed documentation, tutorials, and examples, visit our documentation.

License
=======

``pythermalcomfort`` is released under the MIT License.


=====
Stats
=====

.. start-badges

.. list-table::
    :stub-columns: 1

    * - Documentation
      - |docs|
    * - License
      - |license|
    * - Downloads
      - |downloads|
    * - Tests
      - | |appveyor|
        | |codecov|
        | |tests|
    * - Package
      - | |version| |wheel|
        | |supported-ver|
        | |package-health|

.. |tests| image:: https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort/actions/workflows/build-test-publish.yml/badge.svg
    :target: https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort/actions/workflows/build-test-publish.yml
    :alt: Tests to ensure pythermalcomfort works on different Python versions and OS

.. |package-health| image:: https://snyk.io/advisor/python/pythermalcomfort/badge.svg
    :target: https://snyk.io/advisor/python/pythermalcomfort
    :alt: pythermalcomfort

.. |license| image:: https://img.shields.io/pypi/l/pythermalcomfort?color=brightgreen
    :target: https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort/blob/master/LICENSE
    :alt: pythermalcomfort license

.. |docs| image:: https://readthedocs.org/projects/pythermalcomfort/badge/?style=flat
    :target: https://readthedocs.org/projects/pythermalcomfort
    :alt: Documentation Status

.. |downloads| image:: https://img.shields.io/pypi/dm/pythermalcomfort?color=brightgreen
    :alt: PyPI - Downloads

.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/CenterForTheBuiltEnvironment/pythermalcomfort?branch=master&svg=true
    :alt: AppVeyor Build Status
    :target: https://ci.appveyor.com/project/CenterForTheBuiltEnvironment/pythermalcomfort

.. |codecov| image:: https://codecov.io/github/CenterForTheBuiltEnvironment/pythermalcomfort/coverage.svg?branch=master
    :alt: Coverage Status
    :target: https://codecov.io/github/CenterForTheBuiltEnvironment/pythermalcomfort

.. |version| image:: https://img.shields.io/pypi/v/pythermalcomfort.svg
    :alt: PyPI Package latest release
    :target: https://pypi.org/project/pythermalcomfort

.. |wheel| image:: https://img.shields.io/pypi/wheel/pythermalcomfort.svg
    :alt: PyPI Wheel
    :target: https://pypi.org/project/pythermalcomfort

.. |supported-ver| image:: https://img.shields.io/pypi/pyversions/pythermalcomfort.svg
    :alt: Supported versions
    :target: https://pypi.org/project/pythermalcomfort

.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/pythermalcomfort.svg
    :alt: Supported implementations
    :target: https://pypi.org/project/pythermalcomfort

.. end-badges

        

Citation (CITATION.bib)

@article{Tartarini2020a,
author = {Tartarini, Federico and Schiavon, Stefano},
doi = {10.1016/j.softx.2020.100578},
issn = {23527110},
journal = {SoftwareX},
month = {jul},
pages = {100578},
publisher = {Elsevier B.V.},
title = {{pythermalcomfort: A Python package for thermal comfort research}},
url = {https://doi.org/10.1016/j.softx.2020.100578 https://linkinghub.elsevier.com/retrieve/pii/S2352711020302910},
volume = {12},
year = {2020}
}

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 944
Total Committers: 12
Avg Commits per committer: 78.667
Development Distribution Score (DDS): 0.224

Commits in past year: 274
Committers in past year: 8
Avg Commits per committer in past year: 34.25
Development Distribution Score (DDS) in past year: 0.245

Name Email Commits
FedericoTartarini f****i@g****m 733
AkihisaNomoto 6****o 133
Twin Gan t****n@g****m 30
Lars Buntemeyer l****r@h****e 16
number9527-12 l****0@g****m 15
Jiayi Wang j****8@u****u 5
grjonathan j****m@r****a 4
Jonas Kittner j****r@r****e 3
Tyler Hoyt t****t@g****m 2
royce-chen c****i@g****m 1
benterich 1****h 1
Lorenzo Donadio 4****o 1

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 131
Total pull requests: 54
Average time to close issues: 3 months
Average time to close pull requests: 9 days
Total issue authors: 42
Total pull request authors: 14
Average comments per issue: 2.35
Average comments per pull request: 1.67
Merged pull request: 42
Bot issues: 0
Bot pull requests: 0

Past year issues: 66
Past year pull requests: 21
Past year average time to close issues: about 2 months
Past year average time to close pull requests: 23 days
Past year issue authors: 12
Past year pull request authors: 8
Past year average comments per issue: 2.24
Past year average comments per pull request: 2.43
Past year merged pull request: 10
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort

Top Issue Authors

  • FedericoTartarini (70)
  • TwinGan (5)
  • adibantwal (4)
  • AkihisaNomoto (4)
  • number9527-12 (4)
  • grjonathan (3)
  • oylinv (2)
  • eddes (2)
  • t-kramer (2)
  • benterich (2)
  • LeylayqZhang (2)
  • ibrahimmudassar (1)
  • FazelGanji (1)
  • haze1986 (1)
  • amitche8 (1)

Top Pull Request Authors

  • FedericoTartarini (23)
  • AkihisaNomoto (6)
  • jkittner (5)
  • TwinGan (5)
  • rcqz (3)
  • benterich (2)
  • larsbuntemeyer (2)
  • t-kramer (2)
  • grjonathan (1)
  • thoyt (1)
  • lorenzodonadio (1)
  • ruijis (1)
  • night-crawler (1)
  • C-H-Simpson (1)

Top Issue Labels

  • enhancement (25)
  • new model (23)
  • bug (7)
  • wontfix (2)
  • documentation (2)
  • question (1)
  • help wanted (1)

Top Pull Request Labels

  • enhancement (3)

Package metadata

pypi.org: pythermalcomfort

pythermalcomfort is a comprehensive toolkit for calculating thermal comfort indices, heat/cold stress metrics, and thermophysiological responses. It supports multiple models, including PMV, PPD, adaptive comfort, SET, UTCI, Heat Index, Wind Chill Index, and Humidex. The package also includes thermophysiological models like the two-node (Gagge) and multinode (JOS-3) models to estimate physiological responses such as core temperature, skin temperature, and skin wettedness.

  • Homepage: https://github.com/CenterForTheBuiltEnvironment/pythermalcomfort
  • Documentation: https://pythermalcomfort.readthedocs.io/
  • Licenses: MIT
  • Latest release: 3.0.1 (published 14 days ago)
  • Last Synced: 2025-04-27T13:03:33.591Z (about 20 hours ago)
  • Versions: 83
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 14,447 Last month
  • Rankings:
    • Downloads: 3.394%
    • Forks count: 6.058%
    • Average: 6.235%
    • Stargazers count: 6.762%
    • Dependent packages count: 7.31%
    • Dependent repos count: 7.649%
  • Maintainers (1)
proxy.golang.org: github.com/CenterForTheBuiltEnvironment/pythermalcomfort

proxy.golang.org: github.com/centerforthebuiltenvironment/pythermalcomfort


Dependencies

ci/requirements.txt pypi
  • pip >=19.1.1
  • setuptools >=18.0.1
  • virtualenv >=16.6.0
docs/requirements.txt pypi
  • docutils <0.18
  • sphinx >=1.3
  • sphinx-rtd-theme *
setup.py pypi
  • jos3 *
  • numba *
  • numpy *
  • scipy *
.github/workflows/build-test-publish.yml actions
  • actions/checkout v3 composite
  • actions/checkout v2 composite
  • actions/setup-python v4 composite
  • actions/setup-python v2 composite

Score: 17.326184930960416