iclothing.const

iclothing.const.BODY_NAMES: list = ['Head', 'Neck', 'Chest', 'Back', 'Pelvis', 'LShoulder', 'LArm', 'LHand', 'RShoulder', 'RArm', 'RHand', 'LThigh', 'LLeg', 'LFoot', 'RThigh', 'RLeg', 'RFoot']

List of body names.

iclothing.const.BSA_DICT: dict = {'Back': 0.133, 'Chest': 0.144, 'Head': 0.1, 'LArm': 0.052, 'LFoot': 0.042, 'LHand': 0.0375, 'LLeg': 0.089, 'LShoulder': 0.073, 'LThigh': 0.1625, 'Neck': 0, 'Pelvis': 0.182, 'RArm': 0.052, 'RFoot': 0.042, 'RHand': 0.0375, 'RLeg': 0.089, 'RShoulder': 0.073, 'RThigh': 0.1625}

Dictionary of body surface area (in m2).

iclothing.const.BSA_RATIO_DICT: dict = {'Back': 0.09, 'Chest': 0.098, 'Head': 0.068, 'LArm': 0.035, 'LFoot': 0.029, 'LHand': 0.025, 'LLeg': 0.061, 'LShoulder': 0.05, 'LThigh': 0.11, 'Neck': 0.0, 'Pelvis': 0.124, 'RArm': 0.035, 'RFoot': 0.029, 'RHand': 0.025, 'RLeg': 0.061, 'RShoulder': 0.05, 'RThigh': 0.11}

Dictionary of body surface area ratio.

iclothing.const.BSA_TOTAL: float = 1.471

Total body surface area (in m2).

iclothing.const.LOWER_LIMIT_DICT_GENERIC: dict = {'Back': 0.22, 'Chest': 0.4, 'Head': 0, 'LArm': 0, 'LFoot': 0.18, 'LHand': 0, 'LLeg': 0, 'LShoulder': 0, 'LThigh': 0.28, 'Neck': 0, 'Pelvis': 0.755, 'RArm': 0, 'RFoot': 0.18, 'RHand': 0, 'RLeg': 0, 'RShoulder': 0, 'RThigh': 0.28}

Dictionary of lower limits of local clothing insulation for generic posture (standing and seating).

iclothing.const.LOWER_LIMIT_DICT_STANDING: dict = {'Back': 0.447, 'Chest': 0.4, 'Head': 0, 'LArm': 0, 'LFoot': 0.211, 'LHand': 0, 'LLeg': 0, 'LShoulder': 0, 'LThigh': 0.316, 'Neck': 0, 'Pelvis': 1.153, 'RArm': 0, 'RFoot': 0.211, 'RHand': 0, 'RLeg': 0, 'RShoulder': 0, 'RThigh': 0.316}

Dictionary of lower limits of local clothing insulation for standing posture.

iclothing.const.PWL_DICT_GENERIC: dict = {'Back': <function _get_pwl.<locals>.pwl>, 'Chest': <function _get_pwl.<locals>.pwl>, 'Head': <function _get_pwl.<locals>.pwl>, 'LArm': <function _get_pwl.<locals>.pwl>, 'LFoot': <function _get_pwl.<locals>.pwl>, 'LHand': <function _get_pwl.<locals>.pwl>, 'LLeg': <function _get_pwl.<locals>.pwl>, 'LShoulder': <function _get_pwl.<locals>.pwl>, 'LThigh': <function _get_pwl.<locals>.pwl>, 'Neck': <function _get_pwl.<locals>.pwl>, 'Pelvis': <function _get_pwl.<locals>.pwl>, 'RArm': <function _get_pwl.<locals>.pwl>, 'RFoot': <function _get_pwl.<locals>.pwl>, 'RHand': <function _get_pwl.<locals>.pwl>, 'RLeg': <function _get_pwl.<locals>.pwl>, 'RShoulder': <function _get_pwl.<locals>.pwl>, 'RThigh': <function _get_pwl.<locals>.pwl>}

Dictionary of piecewise functions for generic posture (standing and seating).

iclothing.const.PWL_DICT_STANDING: dict = {'Back': <function _get_pwl.<locals>.pwl>, 'Chest': <function _get_pwl.<locals>.pwl>, 'Head': <function _get_pwl.<locals>.pwl>, 'LArm': <function _get_pwl.<locals>.pwl>, 'LFoot': <function _get_pwl.<locals>.pwl>, 'LHand': <function _get_pwl.<locals>.pwl>, 'LLeg': <function _get_pwl.<locals>.pwl>, 'LShoulder': <function _get_pwl.<locals>.pwl>, 'LThigh': <function _get_pwl.<locals>.pwl>, 'Neck': <function _get_pwl.<locals>.pwl>, 'Pelvis': <function _get_pwl.<locals>.pwl>, 'RArm': <function _get_pwl.<locals>.pwl>, 'RFoot': <function _get_pwl.<locals>.pwl>, 'RHand': <function _get_pwl.<locals>.pwl>, 'RLeg': <function _get_pwl.<locals>.pwl>, 'RShoulder': <function _get_pwl.<locals>.pwl>, 'RThigh': <function _get_pwl.<locals>.pwl>}

Dictionary of piecewise functions for standing posture.

iclothing.const.WIND_CORR_DICT: dict = {'Back': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'Chest': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'Head': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'LArm': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'LFoot': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'LHand': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'LLeg': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'LShoulder': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'LThigh': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'Neck': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'Pelvis': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'RArm': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'RFoot': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'RHand': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'RLeg': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'RShoulder': <function _get_wind_corr_func.<locals>.wind_corr_func>, 'RThigh': <function _get_wind_corr_func.<locals>.wind_corr_func>}

Dictionary of wind correction functions.

iclothing.core

iclothing.core.get_icl_dict(icl: list | ndarray | float, posture: Literal['generic', 'standing'] = 'generic', met: float | None = None, va: float = 0.1) dict

Get local clothing insulation for each body part.

The calculation models are based on the following papers: Lin, J., Jiang, Y., Xie, Y. et al. A novel method for local clothing insulation prediction to support sustainable building and urban design. Int J Biometeorol (2025). https://doi.org/10.1007/s00484-025-02934-3

Parameters:
  • icl – A number or a list of overall clothing insulation (in clo).

  • posture – Posture of human object. The value should be ‘generic’ or ‘standing’. Generic posture is based on data from both sitting and standing postures, while standing posture is based on data from standing posture only. Default is ‘generic’.

  • met – A number of Metabolic rate of human object (in met). If input, it will be used to calculated relative air velocity (in m/s). Default is None.

  • va – A number of absolute air velocity (in m/s). If no met input, relative air velocity equals absolute air velocity. Default is 0.1 m/s, which represents static indoors.

Returns:

A dictionary of local clothing insulation for each body part.

Examples

>>> icl = 0.3
>>> icli = get_icl_dict(icl=icl, posture="generic")
>>> icli
{'Head': 0.13, 'Neck': 0.0, 'Chest': 0.59, 'Back': 0.648, 'Pelvis': 1.114, 'LShoulder': 0.207, 'LArm': 0.0,
'LHand': 0.0, 'RShoulder': 0.207, 'RArm': 0.0, 'RHand': 0.0, 'LThigh': 0.618, 'LLeg': 0.054, 'LFoot': 0.425,
'RThigh': 0.618, 'RLeg': 0.054, 'RFoot': 0.425}
iclothing.core.get_vr(met: float, va: float = 0.1) float

Calculate relative air velocity.

Relative air velocity is the sum of absolute air velocity and the walking speed, following the equation:

\[v_r = v_a + v_w\]

For low metabolic rate (met < 1) which indicates behaviors without body movement, the walking speed is equal to 0:

\[v_w = 0\]

For less-defined activities (e.g. conveyor belt work) (1 <= met < 1.2), the walking speed could be calculated using:

\[v_w= 0.3 \times (met-1)\]

For walking (met >= 2), the walking speed could be estimated using:

\[v_w = 0.5 \times met - 0.1\]

For other activities (1.2 <= met < 2), the walking speed could be calculated by interpolation of walking speeds for less-defined activities and walking:

\[v_w = 0.25 \times (met^2 + met - 2.4)\]
Parameters:
  • met – A number of metabolic rate (in met = 58.15 W/m2).

  • va – A number of absolute air velocity (in m/s).

Returns:

A number of relative air velocity (in m/s).