kinemotion 0.50.1__py3-none-any.whl → 0.51.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kinemotion might be problematic. Click here for more details.

kinemotion/api.py CHANGED
@@ -1,9 +1,25 @@
1
1
  """Public API for programmatic use of kinemotion analysis.
2
2
 
3
- This module provides a unified interface for both drop jump and CMJ video analysis.
3
+ This module provides a unified interface for both drop jump and counter-movement
4
+ jump (CMJ) video analysis. Users can import analysis functions and configuration
5
+ classes directly from this module.
6
+
7
+ Supported jump analysis types:
8
+ - Drop jump (DJ): Ground contact time, reactive strength index (RSI)
9
+ - Counter-movement jump (CMJ): Jump height, flight time, countermovement depth
10
+
4
11
  The actual implementations have been moved to their respective submodules:
5
12
  - Drop jump: kinemotion.dropjump.api
6
13
  - CMJ: kinemotion.cmj.api
14
+
15
+ Example:
16
+ from kinemotion import process_dropjump_video, process_cmj_video
17
+
18
+ # Analyze drop jump
19
+ dj_result = process_dropjump_video("video.mp4", quality="balanced")
20
+
21
+ # Analyze CMJ
22
+ cmj_result = process_cmj_video("video.mp4", quality="balanced")
7
23
  """
8
24
 
9
25
  # CMJ API
@@ -1,4 +1,21 @@
1
- """Landmark smoothing utilities to reduce jitter in pose tracking."""
1
+ """Landmark smoothing utilities to reduce jitter in pose tracking.
2
+
3
+ This module provides filtering and smoothing techniques to improve the quality of
4
+ MediaPipe pose landmarks by removing noise and jitter while preserving key movement
5
+ features. Techniques include:
6
+
7
+ - Savitzky-Golay filtering: Smooth temporal data while preserving edges
8
+ - Bilateral temporal filtering: Edge-preserving smoothing with adaptive weights
9
+ - Outlier rejection: Remove erratic landmark detections
10
+
11
+ Used extensively in jump analysis to ensure accurate velocity and position calculations
12
+ across video frames.
13
+
14
+ Example:
15
+ from kinemotion.core.smoothing import smooth_landmarks
16
+
17
+ smoothed = smooth_landmarks(raw_landmarks, quality="balanced")
18
+ """
2
19
 
3
20
  from typing import TypeAlias
4
21
 
@@ -47,23 +47,16 @@ class AthleteProfile(Enum):
47
47
 
48
48
  @dataclass
49
49
  class MetricBounds:
50
- """Physiological bounds for a single metric across athlete performance levels.
51
-
52
- Defines nested ranges for validating metrics: absolute limits mark impossible
53
- values (likely data corruption), while performance-level ranges assess whether
54
- results are typical for an athlete's training background.
55
-
56
- Bounds are ordered: absolute_min < practical_min < recreational_min < elite_min
57
- and elite_max < recreational_max < absolute_max (symmetric about typical values).
50
+ """Physiological bounds for a single metric.
58
51
 
59
52
  Attributes:
60
- absolute_min: Absolute minimum (error threshold, marks data corruption)
61
- practical_min: Minimum for untrained/elderly athletes
62
- recreational_min: Minimum for recreational athletes (moderate activity)
53
+ absolute_min: Absolute minimum value (error threshold)
54
+ practical_min: Practical minimum for weakest athletes
55
+ recreational_min: Minimum for recreational athletes
63
56
  recreational_max: Maximum for recreational athletes
64
- elite_min: Minimum for elite athletes (competitive level)
57
+ elite_min: Minimum for elite athletes
65
58
  elite_max: Maximum for elite athletes
66
- absolute_max: Absolute maximum (error threshold, marks data corruption)
59
+ absolute_max: Absolute maximum value (error threshold)
67
60
  unit: Unit of measurement (e.g., "m", "s", "m/s", "degrees")
68
61
  """
69
62
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.50.1
3
+ Version: 0.51.0
4
4
  Summary: Video-based kinematic analysis for athletic performance
5
5
  Project-URL: Homepage, https://github.com/feniix/kinemotion
6
6
  Project-URL: Repository, https://github.com/feniix/kinemotion
@@ -1,5 +1,5 @@
1
1
  kinemotion/__init__.py,sha256=wPItmyGJUOFM6GPRVhAEvRz0-ErI7e2qiUREYJ9EfPQ,943
2
- kinemotion/api.py,sha256=q33-C6xlZKzXthjii1FKnschFU_WT60EHabRgczy3ic,1039
2
+ kinemotion/api.py,sha256=sxtlgP63SrjmNegRGhoH0jwodIeDQqH2Pr1CGkfRUEE,1596
3
3
  kinemotion/cli.py,sha256=cqYV_7URH0JUDy1VQ_EDLv63FmNO4Ns20m6s1XAjiP4,464
4
4
  kinemotion/cmj/__init__.py,sha256=SkAw9ka8Yd1Qfv9hcvk22m3EfucROzYrSNGNF5kDzho,113
5
5
  kinemotion/cmj/analysis.py,sha256=3l0vYQB9tN4HtEO2MPFHVtrdzSmXgwpCm03qzYLCF0c,22196
@@ -22,9 +22,9 @@ kinemotion/core/metadata.py,sha256=bJAVa4nym__zx1hNowSZduMGKBSGOPxTbBQkjm6N0D0,7
22
22
  kinemotion/core/pipeline_utils.py,sha256=0u7o-UFZX6cOu3NaWpFmEy5ejS0WUKggZ1HSdeZXhoA,14964
23
23
  kinemotion/core/pose.py,sha256=z1OGuwnc-NdK6Aoc9UYCyPBzomw4eInexOWonZbsEoA,9057
24
24
  kinemotion/core/quality.py,sha256=dPGQp08y8DdEUbUdjTThnUOUsALgF0D2sdz50cm6wLI,13098
25
- kinemotion/core/smoothing.py,sha256=FZmv3rumn0mYKU2y3JPKz46EvD8TVmQ6_GsN_Vp3BdU,15650
25
+ kinemotion/core/smoothing.py,sha256=6Ia0Q0eNMvjTc08Q4sYTBrGyoopBwiymdh-i1wuv9Rk,16304
26
26
  kinemotion/core/timing.py,sha256=d1rjZc07Nbi5Jrio9AC-zeS0dNAlbPyNIydLz7X75Pk,7804
27
- kinemotion/core/validation.py,sha256=UOdB0v-xZjYvUogwlSdX4luDHy1E0VCJvmu4VvrVPyc,6817
27
+ kinemotion/core/validation.py,sha256=LmKfSl4Ayw3DgwKD9IrhsPdzp5ia4drLsHA2UuU1SCM,6310
28
28
  kinemotion/core/video_io.py,sha256=vCwpWnlW2y29l48dFXokdehQn42w_IQvayxbVTjpXqQ,7863
29
29
  kinemotion/dropjump/__init__.py,sha256=tC3H3BrCg8Oj-db-Vrtx4PH_llR1Ppkd5jwaOjhQcLg,862
30
30
  kinemotion/dropjump/analysis.py,sha256=p7nnCe7V6vnhQKZVYk--_nhsTvVa_WY-A3zXmyplsew,28211
@@ -35,8 +35,8 @@ kinemotion/dropjump/kinematics.py,sha256=PATlGaClutGKJslL-LRIXHmTsvb-xEB8PUIMScU
35
35
  kinemotion/dropjump/metrics_validator.py,sha256=CrTlGup8q2kyPXtA6HNwm7_yq0AsBaDllG7RVZdXmYA,9342
36
36
  kinemotion/dropjump/validation_bounds.py,sha256=fyl04ZV7nfvHkL5eob6oEpV9Hxce6aiOWQ9pclLp7AQ,5077
37
37
  kinemotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- kinemotion-0.50.1.dist-info/METADATA,sha256=MuAflS2V4-d86s_sLYwqg1y6-rw6MSZQWWgLqnH8Xks,26020
39
- kinemotion-0.50.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
40
- kinemotion-0.50.1.dist-info/entry_points.txt,sha256=zaqnAnjLvcdrk1Qvj5nvXZCZ2gp0prS7it1zTJygcIY,50
41
- kinemotion-0.50.1.dist-info/licenses/LICENSE,sha256=KZajvqsHw0NoOHOi2q0FZ4NBe9HdV6oey-IPYAtHXfg,1088
42
- kinemotion-0.50.1.dist-info/RECORD,,
38
+ kinemotion-0.51.0.dist-info/METADATA,sha256=ogLrmcrusmQ5EbNnRwH-OfenqNJaz21M9OVrTUf3O3g,26020
39
+ kinemotion-0.51.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
40
+ kinemotion-0.51.0.dist-info/entry_points.txt,sha256=zaqnAnjLvcdrk1Qvj5nvXZCZ2gp0prS7it1zTJygcIY,50
41
+ kinemotion-0.51.0.dist-info/licenses/LICENSE,sha256=KZajvqsHw0NoOHOi2q0FZ4NBe9HdV6oey-IPYAtHXfg,1088
42
+ kinemotion-0.51.0.dist-info/RECORD,,