From 611d0e0b20ec0f323afb38a2ba19e193f3964d10 Mon Sep 17 00:00:00 2001 From: Elizabeth Berrigan Date: Fri, 22 Sep 2023 13:50:22 -0700 Subject: [PATCH] Added check to `get_network_distribution` for root length > 1 --- sleap_roots/networklength.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sleap_roots/networklength.py b/sleap_roots/networklength.py index c089ec3..90c0688 100644 --- a/sleap_roots/networklength.py +++ b/sleap_roots/networklength.py @@ -2,8 +2,8 @@ import numpy as np from shapely import LineString, Polygon -from sleap_roots.lengths import get_root_lengths, get_max_length_pts -from typing import Optional, Tuple, Union +from sleap_roots.lengths import get_max_length_pts +from typing import Tuple, Union def get_bbox(pts: np.ndarray) -> Tuple[float, float, float, float]: @@ -198,10 +198,11 @@ def get_network_distribution( # Calculate length of roots within the lower bounding box network_length = 0 for root in all_roots: - root_poly = LineString(root) - lower_intersection = root_poly.intersection(lower_box) - root_length = lower_intersection.length - network_length += root_length if ~np.isnan(root_length) else 0 + if len(root) > 1: # Ensure that root has more than one point + root_poly = LineString(root) + lower_intersection = root_poly.intersection(lower_box) + root_length = lower_intersection.length + network_length += root_length if ~np.isnan(root_length) else 0 return network_length