refactor: move trainer/models/utils/config to tools/
This commit is contained in:
25
tools/utils.py
Normal file
25
tools/utils.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# sites/ai_mouse/ai_mouse/_utils.py
|
||||
"""Shared utility functions used by both _generator.py and _trainer.py."""
|
||||
from __future__ import annotations
|
||||
|
||||
import numpy as np
|
||||
|
||||
|
||||
def resample_arc(xy: np.ndarray, n_points: int) -> np.ndarray:
|
||||
"""Resample a 2-D polyline to exactly n_points via arc-length interpolation.
|
||||
|
||||
Args:
|
||||
xy: (M, 2) array of (x, y) coordinates.
|
||||
n_points: desired number of output points.
|
||||
|
||||
Returns:
|
||||
(n_points, 2) array uniformly spaced along cumulative arc length.
|
||||
"""
|
||||
arc = np.concatenate(
|
||||
[[0], np.cumsum(np.linalg.norm(np.diff(xy, axis=0), axis=1))]
|
||||
)
|
||||
s_new = np.linspace(0, arc[-1], n_points)
|
||||
return np.stack(
|
||||
[np.interp(s_new, arc, xy[:, 0]), np.interp(s_new, arc, xy[:, 1])],
|
||||
axis=1,
|
||||
)
|
||||
Reference in New Issue
Block a user