Skip to content

Commit

Permalink
Return empty array if nan_intervals not found. SLERP_NaN() returns sa…
Browse files Browse the repository at this point in the history
…me array if no NaNs are found.
  • Loading branch information
Mayitzin committed Sep 6, 2023
1 parent 2c6af29 commit c7cb329
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
4 changes: 4 additions & 0 deletions ahrs/common/quaternion.py
Original file line number Diff line number Diff line change
Expand Up @@ -3011,6 +3011,10 @@ def slerp_nan(self, inplace: bool = True) -> np.ndarray:
self.remove_jumps()
interpolated_quaternions = np.copy(self.array)
nan_intervals = get_nan_intervals(self.array)
if len(nan_intervals) == 0:
if inplace:
return None
return interpolated_quaternions
for interval in nan_intervals:
interpolated_quaternions[interval[0]:interval[1]+1] = slerp(
self.array[interval[0]-1],
Expand Down
2 changes: 2 additions & 0 deletions ahrs/utils/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,6 @@ def get_nan_intervals(data: np.ndarray) -> list:
isnan_list = np.any(np.isnan(data), axis=1) if data.ndim > 1 else np.isnan(data)
nan_indices = np.where(isnan_list == True)[0]
intervals = np.split(nan_indices, np.where(np.diff(nan_indices) > 1)[0] + 1)
if len(intervals) == 0:
return []
return [(interval[0], interval[-1]) for interval in intervals]

0 comments on commit c7cb329

Please sign in to comment.