Skip to content

Instantly share code, notes, and snippets.

@rosjat
Last active August 7, 2018 07:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rosjat/d53fd6d3cd8a82d37744c2184cc67c97 to your computer and use it in GitHub Desktop.
Save rosjat/d53fd6d3cd8a82d37744c2184cc67c97 to your computer and use it in GitHub Desktop.
bodyfat calculation
from __future__ import division
BODYFAT_K_3P_CP_M = {'k0': 1.10938,
'k1': 0.0008267,
'k2': 0.0000016,
'ka': 0.0002574, }
BODYFAT_K_3P_CP_F = {'k0': 1.0994921,
'k1': 0.0009929,
'k2': 0.0000023,
'ka': 0.0001392, }
BODYFAT_K_3P_L = {'k0': 1.0982,
'k1': -815E-6,
'k2': 8.4E-6,
'ka': 0, }
BODYFAT_K_7P_CP_M = {'k0': 1.112,
'k1': 434.99E-6,
'k2': 0.55E-6,
'ka': 288.26E-6, }
BODYFAT_K_7P_CP_F = {'k0': 1.097,
'k1': 469.71E-6,
'k2': 0.56E-6,
'ka': 128.28E-6, }
BODYFAT_K_4P_NHCA = {'k0': -3.28791,
'k1': 277.84E-3,
'k2': -0.53E-3,
'ka': 124.37E-3, }
BODYFAT_K_9P_P = {'k0': 12.258, }
def bf_3p_m(d_breast, d_belly, d_upper_leg, age):
s = d_breast + d_belly + d_upper_leg
return ((4.95 / (BODYFAT_K_3P_CP_M['k0'] -
(BODYFAT_K_3P_CP_M['k1'] * s) +
(BODYFAT_K_3P_CP_M['k2'] * pow(s, 2)) -
(BODYFAT_K_3P_CP_M['ka'] *age))) -4.5) * 100
def bf_3p_f(d_triceps, d_belly, d_hip, age):
s = d_triceps + d_belly + d_hip
return ((4.95 / (BODYFAT_K_3P_CP_F['k0'] -
(BODYFAT_K_3P_CP_F['k1'] * s) +
(BODYFAT_K_3P_CP_F['k2'] * pow(s, 2)) -
(BODYFAT_K_3P_CP_F['ka'] *age))) -4.5) * 100
def bf_3p_l(d_shoulderblade, d_triceps, d_hip, age):
s = d_triceps + d_shoulderblade + d_hip
return ((4.95 / (BODYFAT_K_3P_L['k0'] -
(BODYFAT_K_3P_L['k1'] * s) +
(BODYFAT_K_3P_L['k2'] * pow(s, 2)) -
(BODYFAT_K_3P_L['ka'] *age))) -4.5) * 100
def bf_7p_m(d_breast, d_shoulderblade, d_armpit, d_triceps,
d_belly, d_hip, d_upper_leg, age):
s = d_triceps + d_belly + d_hip + d_breast + d_shoulderblade + d_armpit + d_upper_leg
return ((4.95 / (BODYFAT_K_7P_CP_M['k0'] -
(BODYFAT_K_7P_CP_M['k1'] * s) +
(BODYFAT_K_7P_CP_M['k2'] * pow(s, 2)) -
(BODYFAT_K_7P_CP_M['ka'] *age))) -4.5) * 100
def bf_7p_f(d_breast, d_shoulderblade, d_armpit, d_triceps,
d_belly, d_hip, d_upper_leg, age):
s = d_triceps + d_belly + d_hip + d_breast + d_shoulderblade + d_armpit + d_upper_leg
return ((4.95 / (BODYFAT_K_7P_CP_F['k0'] -
(BODYFAT_K_7P_CP_F['k1'] * s) +
(BODYFAT_K_7P_CP_F['k2'] * pow(s, 2)) -
(BODYFAT_K_7P_CP_F['ka'] *age))) -4.5) * 100
def bf_4p(d_shoulder, d_breast, d_armpit, d_belly, age):
s = d_shoulder + d_breast + d_armpit + d_belly
return (BODYFAT_K_4P_NHCA['k0'] +
BODYFAT_K_4P_NHCA['k1'] * s +
BODYFAT_K_4P_NHCA['k2'] * pow(s, 2) +
BODYFAT_K_4P_NHCA['ka'] * age)
def bf_9p(d_breast, d_shoulderblade, d_biceps, d_triceps, d_belly,
d_hip, d_upper_leg, d_lower_leg, d_lower_back, weight):
s = (d_breast + d_shoulderblade + d_biceps + d_triceps + d_belly +
d_hip + d_upper_leg + d_lower_leg + d_lower_back)
return BODYFAT_K_9P_P['k0'] * (s / weight)
@rosjat
Copy link
Author

rosjat commented Aug 7, 2018

it might shorten the work for people who simply like to calculate there body fat. The formulas are taken from https://de.wikipedia.org/wiki/Calipometrie

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment