diff --git a/.zenodo.json b/.zenodo.json new file mode 100644 index 00000000..d4fdd22b --- /dev/null +++ b/.zenodo.json @@ -0,0 +1,18 @@ +{ + "title": "PsychroLib: a library of psychrometric functions to calculate thermodynamic properties of air", + "description": "PsychroLib is a software library for estimating dry, moist, saturated properties of air, and standard atmosphere written in Python, C, Fortran, JavaScript, and Microsoft Excel Visual Basic for Applications (VBA). It is aimed at scientist and engineers developing software and working with psychrometric calculations.", + "keywords": ["python", "vba", "excel", "fortran", "c", "javascript", "engineering", "hvac", "ashrae", "temperature", "pressure", "meteorology"], + "upload_type": "software", + "access_right": "open", + "license": "MIT", + "creators": [ + { + "orcid": "0000-0002-7071-7547", + "name": "D. Meyer" + }, + { + "orcid": "0000-0002-0749-6841", + "name": "D. Thevenard" + } + ] +} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..5f2700f2 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,67 @@ +# How to contribute + +Thank you for considering contributing to PsychroLib. In general, you can contribute by reporting an issue or by directly contributing to the source code. For the latter, fork our repository, clone the fork, make your changes, and create a pull request (PR) with a **clear description** of your changes -- if you are unfamiliar about forking/creating PR, please see [this guide](https://guides.github.com/activities/forking/) first. If/when your changes are merged, you will appear as one of our [Contributors](https://github.com/psychrometrics/psychrolib/graphs/contributors). For specific instructions on how to report a bug, test PsychroLib locally or to learn about our coding conventions please see the sections below. + +- [Report a bug](#report-a-bug) +- [Testing](#testing) +- [Coding conventions](#coding-conventions) + + +## Report a bug + +Before creating bug reports, please check if similar issue have already been reported [here](https://github.com/psychrometrics/psychrolib/issues). If none exist please create a new issue and include as many details as possible using the required template. + +## Testing + +PsychroLib is automatically tested at each commit using continuous integration. If are looking to run the tests locally, make sure you can satisfy the required prerequisites and dependencies. + +### Prerequisites + +- A C and Fortran compiler +- Python version 3.6 or greater. +- Node.js 10.x or greater +- Microsoft Excel + + +### Dependencies + +There are a number of dependencies required to run the tests that need to be installed first. From you command prompt, navigate to the `psychrolib` folder and type the following (I assume that pip and python are for version 3.6 or greater): + +``` +pip install numpy m2r cffi pytest +cd tests/js && npm install +cd ../.. +``` + + +### Run + +To run the tests, type the following in your command prompt: + + +#### Python, C, Fortran +``` +python -m pytest -v -s +``` + + +#### JavaScript +``` +cd tests/js && npm test +``` + + +#### VBA/Excel +For VBA/Excel, navigate to `tests/vba` and launch the `test_psychrolib_ip.xlsm` and `test_psychrolib_si.xlsm` files. In Microsoft Excel, after enabling macros, from Visual Basic Editor (VBE) (Alt+F11 on Windows), select `test_psychrolib_` and run (F5 on Windows). + + +## Coding conventions + +The followings are minimal guidelines for new contributors aiming to contribute to the source code. To become acquainted with the conventions it may be easier to first read some of the functions already implemented in the language you are interested to contribute to. + +- Always use the language-specific syntax except when defining function names where camel case (e.g. `GetTRankineFromTFahrenheit`) is used irrespective of the language. +- Include a clear description of the function, its inputs, outputs and types. +- Include references. +- Write clear and comprehensive tests. + +Thank you! \ No newline at end of file diff --git a/README.md b/README.md index aaa70cfe..91a9c32c 100644 --- a/README.md +++ b/README.md @@ -1,98 +1,92 @@ -

PsychroLib Logo

+

PsychroLib Logo

-# PsychroLib - A Library of Psychrometric Functions in C, Fortran, VBA (Excel), JavaScript, and Python -[![Build Status](https://travis-ci.com/psychrometrics/psychrolib.svg?branch=master)](https://travis-ci.com/psychrometrics/psychrolib) +# PsychroLib: a library of psychrometric functions for Python, C, Fortran, JavaScript and VBA/Excel [![Build Status](https://travis-ci.com/psychrometrics/psychrolib.svg?branch=master)](https://travis-ci.com/psychrometrics/psychrolib) + + +### Table of contents +- [Introduction](#introduction) +- [Documentation](#documentation) +- [Installing](#installing) +- [Example usage](#example-usage) +- [Contributing](#contributing) +- [Versioning](#versioning) +- [Copyright and license](#copyright-and-license) +- [Acknowledgements](#acknowledgements) + + +## Introduction Psychrometrics are the study of physical and thermodynamic properties of moist air. These properties include, for example, the air's dew point temperature, its wet bulb temperature, relative humidity, humidity ratio, enthalpy. +The estimation of these properties is critical in several engineering and scientific applications such as heating, ventilation, and air conditioning (HVAC) and meteorology. Although formulae to calculate the psychrometric properties of air are widely available in the literature ([@Stull2011]; [@Wexler1983]; [@Stoecker1982]; [@Dilley1968]; [@Humphreys1920]), their implementation in computer programs or spreadsheets can be challenging and time consuming. + PsychroLib is a library of functions to enable calculating psychrometric properties of moist and dry air. The library is available for Python, C, Fortran, JavaScript, and Microsoft Excel Visual Basic for Applications (VBA). The functions are based of formulae from the 2017 ASHRAE Handbook — Fundamentals, Chapter 1. Functions can be grouped into two categories: -1. Functions for the calculation of dew point temperature, - wet-bulb temperature, partial vapour pressure of water, humidity - ratio or relative humidity, knowing any other of these and dry bulb - temperature and atmospheric pressure; +1. Functions for the calculation of dew point temperature, wet-bulb temperature, partial vapour pressure of water, humidity ratio or relative humidity, knowing any other of these and dry bulb temperature and atmospheric pressure. -2. Functions for the calculation of other moist air properties. All these use the - humidity ratio as input. +2. Functions for the calculation of other moist air properties. All these use the humidity ratio as input. Relationships between these various functions are illustrated in Figure 1. To compute a moist air property such as enthalpy, knowing a humidity parameter such as dew point temperature, one first has to compute the humidity ratio from the dew point temperature, then compute the enthalpy from the humidity ratio. The functions in point (1) above include primary relationships corresponding to formulae from the ASHRAE Handbook, and secondary relationships which use a combination of primary relationships to calculate the result. For example, to compute dew point temperature knowing the partial pressure of water vapor in moist air, the library uses a formula from the ASHRAE Handbook (primary relationship). On the other hand to compute dew point temperature from relative humidity, the library first computes the partial pressure of water vapor, then computes the dew point temperature (secondary relationship). Primary relationships are shown with bold double arrows in Figure 1. -

Psychrometric relationships

+

Psychrometric relationships

Figure 1 - Psychrometric relationships.

-## Features -The following psychrometric functions are currently available in PsychroLib across all supported languages: - -|Function Name|Description| -|-------------|-----------| -|`GetTRankineFromTFahrenheit`|Utility function to convert temperature to degree Rankine given temperature in degree Fahrenheit.| -|`GetTKelvinFromTCelsius`|Utility function to convert temperature to Kelvin given temperature in degree Celsius.| -|`GetTWetBulbFromTDewPoint`|Return wet-bulb temperature given dry-bulb temperature, dew-point temperature, and pressure.| -|`GetTWetBulbFromRelHum`|Return wet-bulb temperature given dry-bulb temperature, relative humidity, and pressure.| -|`GetRelHumFromTDewPoint`|Return relative humidity given dry-bulb temperature and dew-point temperature.| -|`GetRelHumFromTWetBulb`|Return relative humidity given dry-bulb temperature, wet bulb temperature and pressure.| -|`GetTDewPointFromRelHum`|Return dew-point temperature given dry-bulb temperature and relative humidity.| -|`GetTDewPointFromTWetBulb`|Return dew-point temperature given dry-bulb temperature, wet-bulb temperature, and pressure.| -|`GetVapPresFromRelHum`|Return partial pressure of water vapor as a function of relative humidity and temperature.| -|`GetRelHumFromVapPres`| Return relative humidity given dry-bulb temperature and vapor pressure.| -|`GetTWetBulbFromHumRatio`|Return wet-bulb temperature given dry-bulb temperature, humidity ratio, and pressure.| -|`GetHumRatioFromTWetBulb`|Return humidity ratio given dry-bulb temperature, wet-bulb temperature, and pressure.| -|`GetHumRatioFromRelHum`|Return humidity ratio given dry-bulb temperature, relative humidity, and pressure.| -|`GetRelHumFromHumRatio`|Return relative humidity given dry-bulb temperature, humidity ratio, and pressure.| -|`GetHumRatioFromTDewPoint`|Return humidity ratio given dew-point temperature and pressure.| -|`GetTDewPointFromHumRatio`|Return dew-point temperature given dry-bulb temperature, humidity ratio, and pressure.| -|`GetHumRatioFromVapPres`|Return humidity ratio given water vapor pressure and atmospheric pressure.| -|`GetVapPresFromHumRatio`|Return vapor pressure given humidity ratio and pressure.| -|`GetDryAirEnthalpy`|Return dry-air enthalpy given dry-bulb temperature.| -|`GetDryAirDensity`|Return dry-air density given dry-bulb temperature and pressure.| -|`GetDryAirVolume`|Return dry-air volume given dry-bulb temperature and pressure.| -|`GetSatVapPres`|Return saturation vapor pressure given dry-bulb temperature.| -|`GetSatHumRatio`|Return humidity ratio of saturated air given dry-bulb temperature and pressure.| -|`GetSatAirEnthalpy`|Return saturated air enthalpy given dry-bulb temperature and pressure.| -|`GetVaporPressureDeficit`|Return vapor pressure deficit given dry-bulb temperature, humidity ratio, and pressure.| -|`GetDegreeOfSaturation`|Return the degree of saturation (i.e humidity ratio of the air / humidity ratio of the air at saturation at the same temperature and pressure) given dry-bulb temperature, humidity ratio, and atmospheric pressure.| -|`GetMoistAirEnthalpy`|Return moist air enthalpy given dry-bulb temperature and humidity ratio.| -|`GetMoistAirVolume`|Return moist air specific volume given dry-bulb temperature, humidity ratio, and pressure.| -|`GetMoistAirDensity`|Return moist air density given humidity ratio, dry bulb temperature, and pressure.| -|`GetStandardAtmPressure`|Return standard atmosphere barometric pressure, given the elevation (altitude).| -|`GetStandardAtmTemperature`|Return standard atmosphere temperature, given the elevation (altitude).| -|`GetSeaLevelPressure`|Return sea level pressure given dry-bulb temperature, altitude above sea level and pressure.| -|`GetStationPressure`|Return station pressure from sea level pressure.| -|`CalcPsychrometricsFromTWetBulb`|Utility function to calculate humidity ratio, dew-point temperature, relative humidity, vapour pressure, moist air enthalpy, moist air volume, and degree of saturation of air given dry-bulb temperature, wet-bulb temperature, and pressure.| -|`CalcPsychrometricsFromTDewPoint`|Utility function to calculate humidity ratio, wet-bulb temperature, relative humidity, vapour pressure, moist air enthalpy, moist air volume, and degree of saturation of air given dry-bulb temperature, dew-point temperature, and pressure.| -|`CalcPsychrometricsFromRelHum`|Utility function to calculate humidity ratio, wet-bulb temperature, dew-point temperature, vapour pressure, moist air enthalpy, moist air volume, and degree of saturation of air given dry-bulb temperature, relative humidity and pressure.| - -## Getting started -PsychroLib is available for Python, C, Fortran, JavaScript, and Microsoft Excel Visual Basic for Applications (VBA). A list of functions available in the library can be found in the [PsychroLib application programming interface (API) documentation](https://psychrometrics.github.io/psychrolib/api-docs.html). The page provides a comprehensive description of all the functions available in PsychroLib. Although it describes the Python version of the library, PsychroLib uses a common API across all the supported language implementations. - -### Installation instructions -If you are using Python, PsychroLib is available though the Python Package Index (PyPI) at https://pypi.org/project/PsychroLib. Assuming you have PyPI installed on your system, type the following in your command prompt: -``` -pip install psychrolib -``` - -For all other languages, clone the repository or download the file directly from the repository, and include PsychroLib to your code according to the language specifications. - -### Example usage -For examples on how to use PsychroLib in Python, C, Fortran, JavaScript, and Microsoft Excel Visual Basic for Applications (VBA) please see [this guide](https://github.com/psychrometrics/psychrolib/blob/master/docs/how-to-use-psychrolib.md). + +## Documentation + +PsychroLib is available for Python, C, Fortran, JavaScript, and Microsoft Excel Visual Basic for Applications (VBA). For an overview of currently available functions, please see the [list of available functions page](docs/available-functions.md). To consult the application programming interface (API), documentation please see the [API documentation page](https://psychrometrics.github.io/psychrolib/api-docs.html) instead -- although the API describes the Python version of the library, the API is common across all the supported language implementations. + + +## Installing + +To install or bundle the library as part of your program see the language-specific instructions below -- there are no external dependencies required. + +### Python + +PsychroLib is available though the Python Package Index (PyPI) and can be installed using `pip` with `pip install psychrolib`. + + +### C, Fortran, JS and VBA + +Clone the repository, or download the file directly from the repository, and include PsychroLib to your code according to the language specifications. + + +## Example usage + +For examples on how to use PsychroLib in Python, C, Fortran, JavaScript, and Microsoft Excel Visual Basic for Applications (VBA) please see [this guide](docs/how-to-use-psychrolib.md). + ## Contributing -If you would like to contribute to the PsychroLib project, clone this repository, make your changes, and create a pull request with a **clear description** of your changes. If your changes are merged, you will appear as one of our [Contributors](https://github.com/psychrometrics/psychrolib/graphs/contributors). + +If you are looking to contribute, please read our [Contributors' guide](CONTRIBUTING.md) for details. + ## Versioning + This project uses [semantic versioning](https://semver.org/). -## Copyright and licence -Copyright -- For the current library implementation - Copyright (c) 2018 D. Thevenard and D. Meyer. -- For equations and coefficients published ASHRAE Handbook — Fundamentals, Chapter 1 - Copyright (c) 2017 ASHRAE Handbook — Fundamentals (https://www.ashrae.org) +## Copyright and license + +Copyright (c) 2018 D. Thevenard and D. Meyer for the current library implementation. + +Copyright (c) 2017 ASHRAE Handbook — Fundamentals (https://www.ashrae.org) for equations and coefficients published ASHRAE Handbook — Fundamentals Chapter 1. -Licence +Licensed under the [MIT License](LICENSE.txt). -- Licensed under the [MIT License](https://github.com/psychrometrics/psychrolib/blob/master/LICENSE.txt). ## Acknowledgements -Many thanks to Tom Worster ([tom--](https://github.com/tom--)) for his suggestions with the original JavaScript library implementation. + +Many thanks to Tom Worster ([@tom--](https://github.com/tom--)) for his suggestions with the original JavaScript library implementation. + + + +[@Dilley1968]: https://dx.doi.org/10.1175/1520-0450(1968)007<0717:otccov>2.0.co;2 "Dilley, A. C. (1968). On the computer calculation of vapor pressure and specific humidity gradients from psychrometric data. Journal of Applied Meteorology, 7(4), 717–719. doi:10.1175/1520-0450(1968)007<0717:otccov>2.0.co;2" + +[@Humphreys1920]: https://archive.org/details/physicsofair00hump/page/n9 "Humphreys, W. J. (1920). Physics of the air. Philadelphia, PA: Pub. for the Franklin Institute of the state of Pennsylvania by J.B. Lippincott Company." + +[@Stoecker1982]: https://books.google.de/books?id=PrZTAAAAMAAJ&dq "Stoecker, W., & Jones, J. (1982). Refrigeration and air conditioning. McGraw-hill international editions. New York, NY: McGraw-Hill." + +[@Stull2011]: https://doi.org/10.1175/JAMC-D-11-0143.1 "Stull, R. (2011). Wet-bulb temperature from relative humidity and air temperature. Journal of Applied Meteorology and Climatology, 50(11), 2267–2269. doi:10.1175/jamc-d11-0143.1" + +[@Wexler1983]: https://books.google.de/books?id=MH8URAAACAAJ "Wexler, A., Hyland, R., Stewart, R., & American Society of Heating, Refrigerating and Air-Conditioning Engineers. (1983). Thermodynamic properties of dry air, moist air and water and si psychrometric charts. Atlanta, GA: ASHRAE." \ No newline at end of file diff --git a/docs/available-functions.md b/docs/available-functions.md new file mode 100644 index 00000000..16150cc9 --- /dev/null +++ b/docs/available-functions.md @@ -0,0 +1,40 @@ +The following psychrometric functions are currently available across all the supported languages: + +|Function Name|Description| +|-------------|-----------| +|`GetTRankineFromTFahrenheit`|Utility function to convert temperature to degree Rankine given temperature in degree Fahrenheit.| +|`GetTKelvinFromTCelsius`|Utility function to convert temperature to Kelvin given temperature in degree Celsius.| +|`GetTWetBulbFromTDewPoint`|Return wet-bulb temperature given dry-bulb temperature, dew-point temperature, and pressure.| +|`GetTWetBulbFromRelHum`|Return wet-bulb temperature given dry-bulb temperature, relative humidity, and pressure.| +|`GetRelHumFromTDewPoint`|Return relative humidity given dry-bulb temperature and dew-point temperature.| +|`GetRelHumFromTWetBulb`|Return relative humidity given dry-bulb temperature, wet bulb temperature and pressure.| +|`GetTDewPointFromRelHum`|Return dew-point temperature given dry-bulb temperature and relative humidity.| +|`GetTDewPointFromTWetBulb`|Return dew-point temperature given dry-bulb temperature, wet-bulb temperature, and pressure.| +|`GetVapPresFromRelHum`|Return partial pressure of water vapor as a function of relative humidity and temperature.| +|`GetRelHumFromVapPres`| Return relative humidity given dry-bulb temperature and vapor pressure.| +|`GetTWetBulbFromHumRatio`|Return wet-bulb temperature given dry-bulb temperature, humidity ratio, and pressure.| +|`GetHumRatioFromTWetBulb`|Return humidity ratio given dry-bulb temperature, wet-bulb temperature, and pressure.| +|`GetHumRatioFromRelHum`|Return humidity ratio given dry-bulb temperature, relative humidity, and pressure.| +|`GetRelHumFromHumRatio`|Return relative humidity given dry-bulb temperature, humidity ratio, and pressure.| +|`GetHumRatioFromTDewPoint`|Return humidity ratio given dew-point temperature and pressure.| +|`GetTDewPointFromHumRatio`|Return dew-point temperature given dry-bulb temperature, humidity ratio, and pressure.| +|`GetHumRatioFromVapPres`|Return humidity ratio given water vapor pressure and atmospheric pressure.| +|`GetVapPresFromHumRatio`|Return vapor pressure given humidity ratio and pressure.| +|`GetDryAirEnthalpy`|Return dry-air enthalpy given dry-bulb temperature.| +|`GetDryAirDensity`|Return dry-air density given dry-bulb temperature and pressure.| +|`GetDryAirVolume`|Return dry-air volume given dry-bulb temperature and pressure.| +|`GetSatVapPres`|Return saturation vapor pressure given dry-bulb temperature.| +|`GetSatHumRatio`|Return humidity ratio of saturated air given dry-bulb temperature and pressure.| +|`GetSatAirEnthalpy`|Return saturated air enthalpy given dry-bulb temperature and pressure.| +|`GetVaporPressureDeficit`|Return vapor pressure deficit given dry-bulb temperature, humidity ratio, and pressure.| +|`GetDegreeOfSaturation`|Return the degree of saturation (i.e humidity ratio of the air / humidity ratio of the air at saturation at the same temperature and pressure) given dry-bulb temperature, humidity ratio, and atmospheric pressure.| +|`GetMoistAirEnthalpy`|Return moist air enthalpy given dry-bulb temperature and humidity ratio.| +|`GetMoistAirVolume`|Return moist air specific volume given dry-bulb temperature, humidity ratio, and pressure.| +|`GetMoistAirDensity`|Return moist air density given humidity ratio, dry bulb temperature, and pressure.| +|`GetStandardAtmPressure`|Return standard atmosphere barometric pressure, given the elevation (altitude).| +|`GetStandardAtmTemperature`|Return standard atmosphere temperature, given the elevation (altitude).| +|`GetSeaLevelPressure`|Return sea level pressure given dry-bulb temperature, altitude above sea level and pressure.| +|`GetStationPressure`|Return station pressure from sea level pressure.| +|`CalcPsychrometricsFromTWetBulb`|Utility function to calculate humidity ratio, dew-point temperature, relative humidity, vapour pressure, moist air enthalpy, moist air volume, and degree of saturation of air given dry-bulb temperature, wet-bulb temperature, and pressure.| +|`CalcPsychrometricsFromTDewPoint`|Utility function to calculate humidity ratio, wet-bulb temperature, relative humidity, vapour pressure, moist air enthalpy, moist air volume, and degree of saturation of air given dry-bulb temperature, dew-point temperature, and pressure.| +|`CalcPsychrometricsFromRelHum`|Utility function to calculate humidity ratio, wet-bulb temperature, dew-point temperature, vapour pressure, moist air enthalpy, moist air volume, and degree of saturation of air given dry-bulb temperature, relative humidity and pressure.| diff --git a/docs/how-to-use-psychrolib.md b/docs/how-to-use-psychrolib.md index ce21063b..6e91abaa 100644 --- a/docs/how-to-use-psychrolib.md +++ b/docs/how-to-use-psychrolib.md @@ -1,6 +1,6 @@ ## How to use PsychroLib -The following are examples on how to use PsychroLib's `GetTDewPointFromRelHum` to calculate the dew-point temperature given dry-bulb temperature and relative humidity. For all languages make sure to choose the unit system to use (`SI` or `IP`) with the `SetUnitSystem` function, or in VBA by uncommenting the appropriate line in the code. +The following are examples on how to use PsychroLib's `GetTDewPointFromRelHum` to calculate the dew-point temperature given dry-bulb temperature and relative humidity. For all languages make sure to choose the unit system to use (`SI` or `IP`) with the `SetUnitSystem` function, or in VBA by uncommenting the appropriate line in the code. Note that as per ASHRAE Handbook, the unit of temperature is degree Celsius for the SI version and degree Fahrenheit for the IP version. ### Python diff --git a/docs/sphinx/_templates/layout.html b/docs/sphinx/_templates/layout.html new file mode 100644 index 00000000..12073a2e --- /dev/null +++ b/docs/sphinx/_templates/layout.html @@ -0,0 +1,19 @@ +{% extends "!layout.html" %} + +{# Add github banner (from: https://github.com/blog/273-github-ribbons). #} +{% block header %} + {{ super() }} + + +{% endblock %} \ No newline at end of file diff --git a/docs/sphinx/_templates/navbar.html b/docs/sphinx/_templates/navbar.html new file mode 100644 index 00000000..ab0870b0 --- /dev/null +++ b/docs/sphinx/_templates/navbar.html @@ -0,0 +1,24 @@ + + \ No newline at end of file diff --git a/docs/sphinx/conf.py b/docs/sphinx/conf.py index 8df34661..816f61d4 100644 --- a/docs/sphinx/conf.py +++ b/docs/sphinx/conf.py @@ -23,9 +23,9 @@ # -- Project information ----------------------------------------------------- -project = 'PsychroLib' -copyright = '2018, D. Thevenard and D. Meyer' -author = 'D. Thevenard and D. Meyer' +project = u'PsychroLib' +copyright = u'2018, D. Thevenard and D. Meyer' +author = u'D. Thevenard and D. Meyer' # -- General configuration --------------------------------------------------- @@ -44,7 +44,7 @@ 'm2r'] # Add any paths that contain templates here, relative to this directory. -#templates_path = ['_templates'] +templates_path = ['_templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: @@ -52,7 +52,7 @@ source_suffix = ['.rst', '.md'] # The master toctree document. -master_doc = 'index' +master_doc = 'api-docs' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/sphinx/ghbtns.html b/docs/sphinx/ghbtns.html deleted file mode 100644 index 832a089a..00000000 --- a/docs/sphinx/ghbtns.html +++ /dev/null @@ -1,5 +0,0 @@ -

- -

\ No newline at end of file diff --git a/docs/sphinx/index.rst b/docs/sphinx/index.rst deleted file mode 100644 index f1e266b1..00000000 --- a/docs/sphinx/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. raw:: html - :file: ghbtns.html - -.. mdinclude:: ../../README.md -.. toctree:: - :hidden: - :maxdepth: 2 - - PsychroLib API<./api-docs> \ No newline at end of file diff --git a/paper/paper.md b/paper/paper.md index d2640da4..20e71094 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -28,12 +28,17 @@ bibliography: paper.bib --- # Summary + +![Relationships of common functions as implemented in PsychroLib. Bold arrows show the relationship between function involving a direct call while light arrow show the relationship between two or more. For a complete list of functions available in PsychroLib, see the README file in the project’s repository.](psychrolib-relationships.pdf){ width=90% } + + The estimation of psychrometric properties of air is critical in several engineering and scientific applications such as heating, ventilation, and air conditioning (HVAC) and meteorology. Although formulae to calculate the psychrometric properties of air are widely available in the literature [@Stull2011; @Wexler1983; @Stoecker1982; @Dilley1968; @Humphreys1920], their implementation in computer programs or spreadsheets can be challenging and time consuming. To our knowledge, only few numerical implementations of such formulae are freely available as standalone software libraries for programming languages and spreadsheets used in science and engineering. -![Relationships of common functions as implemented in PsychroLib. Bold arrows show the relationship between function involving a direct call while light arrow show the relationship between two or more. For a complete list of functions available in PsychroLib, see the README file in the project’s repository.](psychrolib-relationships.pdf) -Here, we present PsychroLib, a common set of psychrometric software libraries, aimed at improving scientific reproducibility, reducing the likelihood of software errors, and saving time to scientists and engineers when developing software and working with psychrometric calculations. PsychroLib is a free and open-source psychrometric library, currently based on formulae from the ASHRAE Handbook Fundamentals [@Ashrae2017_IP; @Ashrae2017_SI] for both imperial (IP) and metric (SI) systems of units. It includes common functions for estimating dry, moist, saturated properties of air, and standard atmosphere, such as converting between dry-, wet-, dew-point temperature, relative humidity, humidity ratio and vapour pressure (Figure 1). +Here, we present PsychroLib, a common set of psychrometric software libraries, aimed at improving scientific reproducibility, reducing the likelihood of software errors, and saving time to scientists and engineers when developing software and working with psychrometric calculations. PsychroLib is a free and open-source psychrometric library, currently based on formulae from the ASHRAE Handbook Fundamentals [@Ashrae2017_IP; @Ashrae2017_SI] for both imperial (IP) and metric (SI) systems of units. It includes common functions for estimating dry, moist, saturated properties of air, and standard atmosphere, such as converting between \mbox{dry-,} wet-, dew-point temperature, relative humidity, humidity ratio and vapour pressure (Figure 1). + PsychroLib is available for Python, C, Fortran, JavaScript, and Microsoft Excel Visual Basic for Applications (VBA). It is developed with a common application programming interface (API) across all the supported languages. All functions have been unit tested with a combination of manual and automated tests against standard ASHRAE reference tables or third-party implementations. PsychroLib is available on GitHub at https://github.com/psychrometrics/psychrolib and released under the MIT licence. We strongly encourage users to provide feedback, bug reports and feature requests, through the GitHub’s issue system at https://github.com/psychrometrics/psychrolib/issues. + # References