pythermalcomfort

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

https://github.com/centerforthebuiltenvironment/pythermalcomfort

Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    3 of 15 committers (20.0%) from academic institutions
  • Institutional organization owner
    Organization centerforthebuiltenvironment has institutional domain (cbe.berkeley.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.1%) to scientific vocabulary

Keywords from Contributors

interactive thermal-comfort pmv-prediction pmv comfort air-temperature network-simulation hacking embedded optim
Last synced: 6 months ago · JSON representation ·

Repository

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

Basic Info
Statistics
  • Stars: 189
  • Watchers: 13
  • Forks: 70
  • Open Issues: 33
  • Releases: 0
Created about 6 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Authors

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 Instructions `_.

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,  # Dry Bulb Temperature in °C
       tr=25,  # Mean Radiant Temperature in °C
       vr=0.1,  # Relative air speed in m/s
       rh=50,  # Relative Humidity in %
       met=1.4,  # Metabolic rate in met
       clo=0.5,  # Clothing insulation in clo
       model="7730-2005"  # Year of the ISO standard
   )
   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
      - | |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

.. |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

Owner

  • Name: CenterForTheBuiltEnvironment
  • Login: CenterForTheBuiltEnvironment
  • Kind: organization
  • Location: Berkeley, CA

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}
}

GitHub Events

Total
  • Issues event: 98
  • Watch event: 45
  • Delete event: 5
  • Issue comment event: 186
  • Push event: 92
  • Pull request review event: 130
  • Pull request review comment event: 195
  • Pull request event: 64
  • Fork event: 16
  • Create event: 6
Last Year
  • Issues event: 98
  • Watch event: 45
  • Delete event: 5
  • Issue comment event: 186
  • Push event: 92
  • Pull request review event: 130
  • Pull request review comment event: 195
  • Pull request event: 64
  • Fork event: 16
  • Create event: 6

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,081
  • Total Committers: 15
  • Avg Commits per committer: 72.067
  • Development Distribution Score (DDS): 0.244
Past Year
  • Commits: 411
  • Committers: 11
  • Avg Commits per committer: 37.364
  • Development Distribution Score (DDS): 0.292
Top Committers
Name Email Commits
federico tartarini f****i@g****m 817
AkihisaNomoto 6****o 133
royce-chen c****i@g****m 47
Twin Gan t****n@g****m 30
Lars Buntemeyer l****r@h****e 16
number9527-12 l****0@g****m 15
Charles Simpson c****n@u****k 5
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
Lorenzo Donadio 4****o 1
benterich 1****h 1
dependabot[bot] 4****] 1
t-kramer t****r@b****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 134
  • Total pull requests: 96
  • Average time to close issues: 3 months
  • Average time to close pull requests: 9 days
  • Total issue authors: 44
  • Total pull request authors: 16
  • Average comments per issue: 2.04
  • Average comments per pull request: 1.77
  • Merged pull requests: 77
  • Bot issues: 0
  • Bot pull requests: 8
Past Year
  • Issues: 63
  • Pull requests: 62
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 9 days
  • Issue authors: 13
  • Pull request authors: 9
  • Average comments per issue: 1.75
  • Average comments per pull request: 2.02
  • Merged pull requests: 45
  • Bot issues: 0
  • Bot pull requests: 8
Top Authors
Issue Authors
  • FedericoTartarini (77)
  • TwinGan (5)
  • AkihisaNomoto (4)
  • number9527-12 (4)
  • adibantwal (4)
  • grjonathan (3)
  • oylinv (2)
  • eddes (2)
  • LeylayqZhang (2)
  • simonmarti1992 (1)
  • stefanoschiavon (1)
  • ibrahimmudassar (1)
  • FazelGanji (1)
  • haze1986 (1)
  • amitche8 (1)
Pull Request Authors
  • FedericoTartarini (43)
  • rcqz (16)
  • TwinGan (9)
  • dependabot[bot] (8)
  • jkittner (7)
  • AkihisaNomoto (5)
  • benterich (4)
  • t-kramer (4)
  • larsbuntemeyer (2)
  • C-H-Simpson (2)
  • grjonathan (1)
  • lorenzodonadio (1)
  • ruijis (1)
  • night-crawler (1)
  • thoyt (1)
Top Labels
Issue Labels
enhancement (22) new model (13) bug (7) wontfix (2) documentation (2) question (1) help wanted (1) python (1)
Pull Request Labels
dependencies (8) python (8) enhancement (5)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 11,834 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 96
  • Total maintainers: 1
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.

  • Versions: 92
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 11,834 Last month
Rankings
Downloads: 3.4%
Forks count: 6.1%
Average: 6.2%
Stargazers count: 6.8%
Dependent packages count: 7.3%
Dependent repos count: 7.6%
Maintainers (1)
Last synced: 6 months ago
proxy.golang.org: github.com/CenterForTheBuiltEnvironment/pythermalcomfort
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago
proxy.golang.org: github.com/centerforthebuiltenvironment/pythermalcomfort
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago

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