
Security News
GitHub Actions Supply Chain Attack Puts Thousands of Projects at Risk
A compromised GitHub Action exposed secrets in CI/CD logs, putting thousands of projects at risk and forcing developers to urgently secure their workflows.
Joint system thermoregulation model (JOS-3) is a numerical model to simulate human thermal physiology such as skin temperature, core temperature, sweating rate, and so on at 17 local body parts as well as the whole body.
This model was developed at Shin-ichi Tanabe Laboratory, Waseda University and was derived from 65 Multi-Node model and JOS-2 model.
Please cite us if you use this package and describe which version you used: Y. Takahashi, A. Nomoto, S. Yoda, R. Hisayama, M. Ogata, Y. Ozeki, S. Tanabe, Thermoregulation Model JOS-3 with New Open Source Code, Energy & Buildings (2020), doi: https://doi.org/10.1016/j.enbuild.2020.110575
Please also check pythermalcomfort : F. Tartarini, S. Schiavon, pythermalcomfort: A Python package for thermal comfort research, SoftwareX (2020), doi: https://doi.org/10.1016/j.softx.2020.100578.
sig_ava_hand = 0.265 * (err_bcr + 0.43) + 0.953 * (err_msk + 0.1905) + 0.9126
sig_ava_foot = 0.265 * (err_bcr - 0.97) + 0.953 * (err_msk - 0.0095) + 0.9126
to;
sig_ava_hand = 0.265 * (err_msk + 0.43) + 0.953 * (err_bcr + 0.1905) + 0.9126
sig_ava_foot = 0.265 * (err_msk - 0.997) + 0.953 * (err_bcr + 0.0095) + 0.9126
https://pythermalcomfort.readthedocs.io/
You can install the model with:
pip install jos3
If you have not installed numpy in your environment, please do so with:
pip install numpy
import jos3
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
As a first step, you need to build a model and set a body built that you want to simulate.
model = jos3.JOS3(height=1.7,
weight=60,
fat=20,
age=30,
sex="male",
bmr_equation="japanese",
bsa_equation="fujimoto",
ex_output="all"
)
Next, you need to set thermal environmental conditions that you want to simulate.
If you want to simulate non-uniform thermal environment, use numpy.ndarray (or list-like data) and input the data separately to local bodies. You can also input a clothing insulation value for each body part individually as well as for the whole body.
If you want to simulate transient thermal environment, alternate between entering environmental information and executing the simulate() method. After the simulate() method is executed, the environment input values are inherited, so you only need to enter the input parameters that you want to change.
Input parameters of environmental conditions are set as the Setter format.
If you set the different conditions in each body parts, set them as a list-type object.
List-type input must be 17 lengths and means the input of "Head", "Neck", "Chest", "Back", "Pelvis", "Left-Shoulder", "Left-Arm", "Left-Hand", "Right-Shoulder", "Right-Arm", "Right-Hand", "Left-Thigh", "Left-Leg", "Left-Foot", "Right-Thigh", "Right-Leg" and "Right-Foot".
# Set the first condition
model.Ta = 28 # Air temperature [oC]
model.Tr = 30 # Mean radiant temperature [oC]
model.RH = 40 # Relative humidity [%]
model.Va = 0.2 # Air velocity [m/s]
model.PAR = 1.2 # Physical activity ratio [-], assuming a sitting position
model.posture = 'sitting' # Posture [-], assuming a sitting position
model.Icl = np.array([ # Clothing insulation [clo]
0.00, # Head
0.00, # Neck
1.14, # Chest
0.84, # Back
1.04, # Pelvis
0.84, # Left-Shoulder
0.42, # Left-Arm
0.00, # Left-Hand
0.84, # Right-Shoulder
0.42, # Right-Arm
0.00, # Right-Hand
0.58, # Left-Thigh
0.62, # Left-Leg
0.82, # Left-Foot
0.58, # Right-Thigh
0.62, # Right-Leg
0.82, # Right-Foot
])
# Execute JOS-3 model
model.simulate(times=30, # Number of loops of a simulation
dtime=60, # Time delta [sec]. The default is 60.
) # Exposure time = 30 [loops] * 60 [sec] = 30 [min]
# Set the next condition (You only need to change the parameters that you want to change)
model.To = 20 # Change operative temperature
model.Va = np.array([ # Air velocity [m/s], assuming to use a desk fan
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
])
# Execute JOS-3 model
model.simulate(times=60, # Number of loops of a simulation
dtime=60, # Time delta [sec]. The default is 60.
) # Additional exposure time = 60 [loops] * 60 [sec] = 60 [min]
# Set the next condition (You only need to change the parameters that you want to change)
model.Ta = 30 # Change air temperature [oC]
model.Tr = 35 # Change mean radiant temperature [oC]
# Execute JOS-3 model
model.simulate(times=30, # Number of loops of a simulation
dtime=60, # Time delta [sec]. The default is 60.
) # Additional exposure time = 30 [loops] * 60 [sec] = 30 [min]
As explained above, output parameters can be added arbitrarily by setting ex_output in list format when creating JOS objects. The output parameters are suffixed with "Head," "Neck," "Chest," etc. for each body part.
# Show the results
df = pd.DataFrame(model.dict_results()) # Make pandas.DataFrame
df.TskMean.plot() # Plot time series of mean skin temperature.
plt.show('example.png') # Show the plot
# Exporte the results as csv
model.to_csv('example.csv')
# Show the documentaion of the output parameters
print(jos3.show_outparam_docs())
JOS3 has some useful getters to check the current parameters.
# Check basal metabolic rate [W/m2] using Getters
model.BMR
jos3 is under MIT license.
FAQs
Joint-thermoregulation system, JOS-3
We found that jos3 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A compromised GitHub Action exposed secrets in CI/CD logs, putting thousands of projects at risk and forcing developers to urgently secure their workflows.
Research
Security News
A malicious Maven package typosquatting a popular library is secretly stealing OAuth credentials on the 15th of each month, putting Java developers at risk.
Security News
Socket and Seal Security collaborate to fix a critical npm overrides bug, resolving a three-year security issue in the JavaScript ecosystem's most popular package manager.