From 3dd30f4e556a632f63b65a62717e2030521d82ea Mon Sep 17 00:00:00 2001 From: sronilsson Date: Thu, 7 Nov 2024 12:23:30 -0500 Subject: [PATCH] timeseries features --- docs/_static/img/spatial_density.webp | Bin 0 -> 23476 bytes simba/mixins/timeseries_features_mixin.py | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 docs/_static/img/spatial_density.webp diff --git a/docs/_static/img/spatial_density.webp b/docs/_static/img/spatial_density.webp new file mode 100644 index 0000000000000000000000000000000000000000..0019dc0663b04a7d3de2e59ab01e9f0180774549 GIT binary patch literal 23476 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 literal 0 HcmV?d00001 diff --git a/simba/mixins/timeseries_features_mixin.py b/simba/mixins/timeseries_features_mixin.py index abca32448..78a01e92d 100644 --- a/simba/mixins/timeseries_features_mixin.py +++ b/simba/mixins/timeseries_features_mixin.py @@ -2154,6 +2154,10 @@ def spatial_density(x: np.ndarray, areas where points are closely packed, which can suggest slower movement, lingering, or frequent changes in direction. Lower density values suggest more spread-out points, often associated with faster, more linear movement. + .. image:: _static/img/spatial_density.webp + :width: 400 + :align: center + :param np.ndarray x: A 2D array of shape (N, 2), where N is the number of points and each point has two spatial coordinates. :param float radius: The radius within which to count neighboring points around each point. Defines the area of interest around each trajectory point. :return: A single float value representing the average spatial density of the trajectory.