### Local Development Setup Commands Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/README.md Commands to set up the development environment, install dependencies, run tests, check formatting, and build the project. ```bash npm ci npm test npm run check:format npm run build ``` -------------------------------- ### Install Dependencies Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Installs all necessary project dependencies. ```bash npm ci ``` -------------------------------- ### Install Project Dependencies Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Install all necessary dependencies for the project before running tests or other development commands. ```bash npm install ``` -------------------------------- ### Install Dependencies and Run Tests Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Install project dependencies using npm and run all tests using Jest. This step is crucial before committing changes. ```bash npm install npm run test ``` -------------------------------- ### Install jsthermalcomfort with npm Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/installation.md Use npm to install the jsthermalcomfort package locally. ```bash npm install jsthermalcomfort ``` -------------------------------- ### Example Usage of adaptive_en Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Demonstrates how to use the adaptive_en function to calculate thermal comfort results. It shows how to access specific comfort categories from the returned object. ```javascript const results = adaptive_en([25,25], [25,25], [20,9], [0.1,0.1]); console.log(results); console.log(results.acceptability_cat_i); ``` -------------------------------- ### Common Commands for jsthermalcomfort Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/overview.md Lists common npm commands for managing the jsthermalcomfort project, including dependency installation, testing, documentation generation, and linting. ```bash npm install npm test npm run docs npm run lint ``` -------------------------------- ### Use Fans Heatwave Prediction Example Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Demonstrates how to use the use_fans_heatwaves function to predict thermal comfort results. The function takes environmental and personal parameters and returns an object with various thermal comfort metrics. ```javascript const results = use_fans_heatwaves(25, 25, 0.1, 50, 1.2, 0.5); console.log(results); ``` -------------------------------- ### Quick Start: Calculate PMV and PPD Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/overview.md Demonstrates a basic usage of the pmv_ppd function to calculate the Predicted Mean Vote (PMV) and Predicted Percentage of Dissatisfied (PPD) indices. Ensure the 'jsthermalcomfort' library is imported. ```javascript import { pmv_ppd } from 'jsthermalcomfort'; // Calculate PMV and PPD const results = pmv_ppd(25, 25, 0.1, 50, 1.2, 0.5); console.log(`PMV: ${results.pmv}, PPD: ${results.ppd}%`); ``` -------------------------------- ### Calculate Adaptive ASHRAE Comfort (Imperial) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates thermal comfort acceptability using the adaptive ASHRAE model with imperial units. This example demonstrates using the 'IP' system argument. ```javascript import { adaptive_ashrae_array } from "jsthermalcomfort/models"; // For users who want to use the IP system const results = adaptive_ashrae_array([77], [77], [68], [0.3], 'IP'); console.log(results); // {tmp_cmf: [75.2], tmp_cmf_80_low: [68.9], tmp_cmf_80_up: [81.5], // tmp_cmf_90_low: [70.7], tmp_cmf_90_up: [79.7], acceptability_80: [true], // acceptability_90: [true]} ``` -------------------------------- ### JOS3 Simple Simulation Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/examples/calc_jos3.html Demonstrates a basic simulation using the JOS3 model, setting initial environmental conditions and running a simulation. It also shows how to access BMR and body name list properties. ```javascript import { JOS3 } from "https://cdn.jsdelivr.net/npm/jsthermalcomfort/lib/esm/models/JOS3.js"; import { local_clo_typical_ensembles } from "https://cdn.jsdelivr.net/npm/jsthermalcomfort/lib/esm/jos3_functions/utilities.js"; let model = new JOS3(1.7, 60, undefined, 30); // Set the first phase model. model.to = 28; // Operative temperature [°C] model.rh = 40; // Relative humidity [%] model.v = 0.2; // Air velocity [m/s] model.par = 1.2; // Physical activity ratio [-] model.simulate(60); // Exposure time = 60 [min] // Set the next condition (You only need to change the parameters that you want to change) model.to = 20; // Change only operative temperature model.simulate(60); // Additional exposure time = 60 [min] let t_skin_mean_trace = { x: model.cycle_time, y: model.t_skin_mean, mode: "lines", }; // Plot time series of mean skin temperature. let layout = { xaxis: { title: "Time [min]", }, yaxis: { title: "Mean skin temperature [°C]", }, }; Plotly.newPlot("graph1", [t_skin_mean_trace], layout); // Print the BMR value using the getter document.getElementById("example1 bmr").innerHTML = model.bmr; document.getElementById("example1 Body name list").innerHTML = model.body_names; ``` -------------------------------- ### Run Tests Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Executes the project's test suite. ```bash npm test ``` -------------------------------- ### Implement and Document New Thermal Comfort Model Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Create a new JavaScript file for your model in `src/models/` and document it using JSDoc. Ensure the JSDoc includes `@public`, `@memberof models`, and clear `@param` and `@returns` descriptions. ```javascript /** * @public * @memberof models * @name my_new_model * @description Calculates a new thermal comfort index. * * @param {number} tdb Dry bulb air temperature [°C] * @param {number} rh Relative humidity [%] * @returns {number} The calculated index value. */ export function my_new_model(tdb, rh) { // your implementation here } ``` -------------------------------- ### Bump Version and Publish Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Commands to bump the package version and push commits and tags to trigger the publish workflow. ```bash npm version patch npm version minor npm version major npm version 1.2.3 git push && git push --tags ``` -------------------------------- ### Get MET Value for Typical Tasks Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Import and use the `met_typical_tasks` object to retrieve the MET (Metabolic Equivalent of Task) value for various activities. This is useful for estimating the metabolic rate of individuals during different tasks. ```javascript import { met_typical_tasks } from "jsthermalcomfort/utilities"; //The path to utilities console.log(met_typical_tasks['Seated_Cquiet']); // output 1.0 ``` -------------------------------- ### Update Project Documentation Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Generate or update project documentation. This command should be run after making code changes that affect the documentation. ```bash npm run docs ``` -------------------------------- ### Adaptive ASHRAE Comfort with Low Temperature Input Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Demonstrates the adaptive ASHRAE model with a low indoor temperature input, resulting in NaN values. The model requires a running mean temperature above 10°C. ```javascript import { adaptive_ashrae_array } from "jsthermalcomfort/models"; const results = adaptive_ashrae_array([25], [25], [9], [0.1]); console.log(results); // {tmp_cmf: [NaN], tmp_cmf_80_low: [NaN], ...} // The adaptive thermal comfort model can only be used // if the running mean temperature is higher than 10°C ``` -------------------------------- ### Format Code with Prettier Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Run Prettier to automatically format your code according to project standards. ```bash npm run format ``` -------------------------------- ### Run Subset of Tests Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Execute a specific subset of tests by providing a path to the test file and a test pattern or name. This is useful for faster feedback during development. ```bash npm run test -- '' -t '' ``` -------------------------------- ### Run Project Tests Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Execute all project tests using Jest to ensure code quality and functionality. ```bash npm run test ``` -------------------------------- ### Initialize JOS3 Model Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Initializes the JOS3 thermal physiology model. Optional parameters can be set for body characteristics and environmental conditions. ```javascript const X = new JOS3(); X.tdb = 20; X.tr = 20; X.v = 0.1; X.rh = 50; X.pr = 1.37; X.wc = 0.5; console.log(X.t_skin_mean); // 33.0 ``` -------------------------------- ### Clone the jsthermalcomfort Repository Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Clone your forked repository locally to begin development. Ensure you fetch and pull updates from the main branch. ```bash git clone git@github.com:FedericoTartarini/jsthermalcomfort.git ``` -------------------------------- ### Update Documentation Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Generate updated documentation files after making changes to the code or Markdown files. Commit these documentation changes separately. ```bash npm run docs git add . git commit -m "Your detailed description of your changes." ``` -------------------------------- ### Push Branch to GitHub Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Push your local development branch to your forked GitHub repository. ```bash git push origin name-of-your-bugfix-or-feature ``` -------------------------------- ### Import and Access Garment Clo Values Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Demonstrates how to import the clo_individual_garments utility and access the clo value for a specific garment like 'Metal_chair'. This is useful for retrieving predefined thermal comfort data. ```javascript import { clo_individual_garments } from "jsthermalcomfort/utilities"; //The path to utilities console.log(clo_individual_garments['Metal_chair']); // output 0.0 ``` -------------------------------- ### Calculate Adaptive EN Comfort (SI Units) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates adaptive thermal comfort using the EN model with SI units. Logs the results and specific acceptability category. ```javascript const results = adaptive_en(25, 25, 20, 0.1); console.log(results); console.log(results.acceptability_cat_i); ``` -------------------------------- ### Calculate Thermal Comfort Results Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Demonstrates how to use the `two_nodes_array` function to calculate various thermal comfort metrics for multiple nodes. The output includes skin temperature, heat loss, core temperature, and more. ```javascript const results = two_nodes_array([25,30], [25,35], [0.3,0.5], [50,60], [1.2,1.5], [0.5, 0.3], [0,0], [1.8258,1.8258], [101325,101325], ["standing","standing"], [90,90]) console.log(results); ``` -------------------------------- ### Register New Thermal Comfort Model Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Export your newly created model function in `src/models/index.js` to make it available in the library. ```javascript import { my_new_model } from "./my_new_model.js"; export default { // ... existing models my_new_model, }; ``` -------------------------------- ### Adaptive EN Comfort with Out-of-Range Input Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Demonstrates the adaptive EN model's behavior when the running mean temperature is outside the standard applicability limits (10-30°C). ```javascript const results = adaptive_en(25, 25, 9, 0.1); console.log(results); ``` -------------------------------- ### Calculate Adaptive EN Comfort (IP Units) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates adaptive thermal comfort using the EN model with IP units. This is useful for systems operating in Fahrenheit and feet per second. ```javascript const results = adaptive_en(77, 77, 68, 0.3, 'IP'); console.log(results); ``` -------------------------------- ### Import jsthermalcomfort in website (ESM) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/installation.md Include the jsthermalcomfort library in your website by importing it within a script tag marked as type="module". ```html ``` -------------------------------- ### p_sat Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates the saturation vapor pressure of water at a given dry bulb temperature in Pascals. ```APIDOC ## p_sat ### Description Calculates the saturation vapor pressure of water at a given dry bulb temperature in Pascals. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Method Not applicable (JavaScript function) ### Endpoint Not applicable (JavaScript function) ### Parameters #### Parameters - **tdb** (number) - Required - Air temperature, [°C] ### Returns - **number**: vapour pressure of water, [Pa] ``` -------------------------------- ### Calculate Adaptive EN Comfort (Array Version) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates adaptive thermal comfort using the EN model with array inputs for multiple data points. Supports both SI and IP units. ```javascript adaptive_en_array(tdb, tr, t_running_mean, v, units, limit_inputs) ``` -------------------------------- ### Commit Code Changes Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Stage all changes and commit them with a descriptive message detailing your modifications. ```bash git add . git commit -m "Your detailed description of your changes." ``` -------------------------------- ### Create a New Development Branch Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Create a new branch for your bug fix or feature development. Follow the specified naming conventions for new branches. ```bash git checkout -b name-of-your-bugfix-or-feature ``` -------------------------------- ### Adaptive Thermal Heat Balance (athb_array) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates the PMV value using the Adaptive Thermal Heat Balance Framework. This version supports arrays for all input parameters. ```APIDOC ## athb_array ### Description Calculates the PMV value using the Adaptive Thermal Heat Balance Framework [27]. The adaptive thermal heat balance (ATHB) framework introduced a method to account for the three adaptive principals, namely physiological, behavioral, and psychological adaptation, individually within existing heat balance models. The objective is a predictive model of thermal sensation applicable during the design stage or in international standards without knowing characteristics of future occupants. This is a version that supports arrays. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Parameters - **tdb** (Array): Dry bulb air temperature, in [°C]. - **tr** (Array): Mean radiant temperature, in [°C]. - **vr** (Array): Relative air speed, in [m/s]. Note: vr is the relative air speed caused by body movement and not the air speed measured by the air speed sensor. The relative air speed is the sum of the average air speed measured by the sensor plus the activity-generated air speed (Vag). Where Vag is the activity-generated air speed caused by motion of individual body parts. vr can be calculated using the function jsthermalcomfort.utilities.v_relative. - **rh** (Array): Relative humidity, [%]. - **met** (Array): Metabolic rate, [met]. - **t_running_mean** (Array): Running mean outdoor temperature, in [°C]. ### Returns - **Array**: An array of Predicted Mean Vote values calculated with the Adaptive Thermal Heat Balance framework. ### Request Example ```javascript const tdb = [25, 26]; const tr = [25, 26]; const vr = [0.1, 0.1]; const rh = [50, 50]; const met = [1.1, 1.1]; const t_running_mean = [20, 20]; const athb_results = athb_array(tdb, tr, vr, rh, met, t_running_mean); console.log(athb_results); // Output: [0.2, 0.2] ``` ### Response #### Success Response (200) - **Array**: An array of Predicted Mean Vote values calculated with the Adaptive Thermal Heat Balance framework. #### Response Example ```json [ 0.2, 0.2 ] ``` ``` -------------------------------- ### Calculate Cooling Effect (IP Units) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates the Cooling Effect using Imperial Units (IP). The 'units' parameter must be set to 'IP'. ```javascript // For users who want to use the IP system const CE_IP = cooling_effect(77, 77, 1.64, 50, 1, 0.6, "IP"); console.log(CE_IP); // Output: {ce: 3.74} ``` -------------------------------- ### Update Documentation Display Name for New Model Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs_theme/contributing.md Add a human-readable title for your new model to the `displayNameMap` in `docs_theme/index.js` for display in the generated documentation. ```javascript const displayNameMap = { // ... existing mappings my_new_model: "My New Premium Model (MNPM)", }; ``` -------------------------------- ### at(rh, v, q, kwargs) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates the Apparent Temperature (AT) based on relative humidity, wind speed, and net radiation. The `kwargs` parameter allows for optional settings like rounding the output. ```APIDOC ## at(rh, v, q, kwargs) ### Description Calculates the Apparent Temperature (AT) based on relative humidity, wind speed, and net radiation. The `kwargs` parameter allows for optional settings like rounding the output. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body * **rh** (number) - Required - Relative humidity, in [%]. * **v** (number) - Required - Wind speed 10m above ground level, in [m/s]. * **q** (number | undefined) - Optional - Net radiation absorbed per unit area of body surface [W/m2]. * **kwargs** (object) - Optional - Other parameters. Defaults to `{round:true}`. * **kwargs.round** (boolean) - Optional - If True rounds output value, if False it does not round it. Defaults to `true`. ### Request Example ```javascript const result = at(25, 30, 0.1); console.log(result); // {at: 24.1} ``` ### Response #### Success Response (200) * **at** (number) : Apparent Temperature, [°C] #### Response Example ```json { "at": 24.1 } ``` ``` -------------------------------- ### Calculate Adaptive Predicted Mean Vote (aPMV) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates the Adaptive Predicted Mean Vote (aPMV) for a single set of thermal comfort parameters. Ensure all input values are within the standard applicability limits of the model, or set `limit_inputs` to false. ```javascript const tdb = 24, const tr = 30, const vr = 0.22, const rh = 50, const met = 1.4, const clo = 0.5, const a_coefficient = 0.293, const wme = undefined, const result = a_pmv(tdb, tr, vr, rh, met, clo, a_coefficient, wme); console.log(result) //output { a_pmv: 0.48 } ``` -------------------------------- ### Calculate Adaptive ASHRAE Comfort (SI Units) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates adaptive thermal comfort using SI units. Ensure inputs are within the standard applicability limits for valid results. ```javascript import { adaptive_ashrae } from "jsthermalcomfort/models"; const results = adaptive_ashrae(25, 25, 20, 0.1); console.log(results); // {tmp_cmf: 24.0, tmp_cmf_80_low: 20.5, tmp_cmf_80_up: 27.5, // tmp_cmf_90_low: 21.5, tmp_cmf_90_up: 26.5, acceptability_80: true, // acceptability_90: true} console.log(results.acceptability_80); // true ``` -------------------------------- ### Calculate Adaptive ASHRAE Comfort (IP Units) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates adaptive thermal comfort using Imperial Units (IP). This is useful for regions that prefer imperial measurements. ```javascript import { adaptive_ashrae } from "jsthermalcomfort/models"; // For users who want to use the IP system const results = adaptive_ashrae(77, 77, 68, 0.3, 'IP'); console.log(results); // {tmp_cmf: 75.2, tmp_cmf_80_low: 68.9, tmp_cmf_80_up: 81.5, // tmp_cmf_90_low: 70.7, tmp_cmf_90_up: 79.7, acceptability_80: true, // acceptability_90: true} ``` -------------------------------- ### t_wb Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates the wet-bulb temperature using the Stull equation. ```APIDOC ## t_wb ### Description Calculates the wet-bulb temperature using the Stull equation. ### Parameters #### Path Parameters - **tdb** (number) - air temperature, [°C] - **rh** (number) - relative humidity, [%] ### Returns - **number** - wet-bulb temperature, [°C] ``` -------------------------------- ### JOS3 Detailed Simulation Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/examples/calc_jos3.html Performs a detailed simulation with JOS3, allowing for specific body parameters, environmental conditions, and clothing insulation for different body parts. It demonstrates running multiple simulations with changing conditions and plotting various skin temperatures. ```javascript import { JOS3 } from "https://cdn.jsdelivr.net/npm/jsthermalcomfort/lib/esm/models/JOS3.js"; import { local_clo_typical_ensembles } from "https://cdn.jsdelivr.net/npm/jsthermalcomfort/lib/esm/jos3_functions/utilities.js"; // Build a model and set a body built // Create an instance of the JOS3 class with optional body parameters such as body height, weight, age, sex, etc. // Define a JOS3 object model = new JOS3( 1.7, 60, 20, 30, "male", undefined, "japanese", "fujimoto", "all", ); // Set environmental conditions model.tdb = 28; // Air temperature [°C] model.tr = 30; // Mean radiant temperature [°C] model.rh = 40; // Relative humidity [%] model.v = [ 0.2, // head 0.4, // neck 0.4, // chest 0.1, // back 0.1, // pelvis 0.4, // left shoulder 0.4, // left arm 0.4, // left hand 0.4, // right shoulder 0.4, // right arm 0.4, // right hand 0.1, // left thigh 0.1, // left leg 0.1, // left foot 0.1, // right thigh 0.1, // right leg 0.1, // right foot ]; model.clo = local_clo_typical_ensembles[ "briefs, socks, undershirt, work jacket, work pants, safety shoes" ]["local_body_part"]; model.par = 1.2; // Physical activity ratio [-] model.posture = "sitting"; // Posture // Run JOS-3 model model.simulate( 30, // Number of loops of a simulation 60, // Time delta [sec] ); // Exposure time = 30 [loops] * 60 [sec] = 30 [min] // Set the next condition model.to = 20; // Change operative temperature model.v = { head: 0.2, neck: 0.4, chest: 0.4, back: 0.1, pelvis: 0.1, left_shoulder: 0.4, left_arm: 0.4, left_hand: 0.4, right_shoulder: 0.4, right_arm: 0.4, right_hand: 0.4, left_thigh: 0.1, left_leg: 0.1, left_foot: 0.1, right_thigh: 0.1, right_leg: 0.1, right_foot: 0.1, }; // Run JOS-3 model again model.simulate( 60, // Number of loops of a simulation 60, // Time delta [sec] ); // Additional exposure time = 60 [loops] * 60 [sec] = 60 [min] // Set the next condition model.tdb = 30; // Change air temperature [°C] model.tr = 35; // Change mean radiant temperature [°C] // Run JOS-3 model once more model.simulate( 30, // Number of loops of a simulation 60, // Time delta [sec] ); // Additional exposure time = 30 [loops] * 60 [sec] = 30 [min] // Show the results let t_skin_head_trace = { x: model.cycle_time, y: model.t_skin_head, mode: "lines", }; let t_skin_chest_trace = { x: model.cycle_time, y: model.t_skin_chest, mode: "lines", }; let t_skin_left_hand_trace = { x: model.cycle_time, y: model.t_skin_left_hand, mode: "lines", }; layout = { xaxis: { title: "Time [min]", }, yaxis: { title: "Mean skin temperature [°C]", }, }; Plotly.newPlot( "graph2", [ t_skin_mean_trace, t_skin_head_trace, t_skin_chest_trace, t_skin_left_hand_trace, ], layout, ); ``` -------------------------------- ### Calculate Cooling Effect (SI Units) Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Calculates the Cooling Effect using SI units. Ensure all input parameters are provided in the correct format. ```javascript const CE = cooling_effect(25, 25, 0.3, 50, 1.2, 0.5); console.log(CE); // Output: {ce: 1.64} ``` -------------------------------- ### p_sat_torr_array Source: https://github.com/federicotartarini/jsthermalcomfort/blob/main/docs/index.html Estimates the saturation vapor pressure in torr for an array of dry bulb air temperatures. ```APIDOC ## p_sat_torr_array ### Description Estimates the saturation vapor pressure in torr for an array of dry bulb air temperatures. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Method Not applicable (JavaScript function) ### Endpoint Not applicable (JavaScript function) ### Parameters #### Parameters - **tdb** (Array) - Required - Dry bulb air temperature [C] ### Returns - **Array**: saturation vapour pressure [torr] ```