suboptimumg.track.gps#

suboptimumg.track.gps.resample_xy_uniform(x_m, y_m, distance_step, smoothing=0.0)[source]#

Fit a B-spline through Cartesian XY coordinates and resample at a uniform arc-length spacing.

The spline is fit in XY space (not lat/lon) so the resulting points are genuinely equally spaced in meters.

Parameters:
  • x_m (NDArray[float64]) – East coordinates in meters (clean, no NaNs)

  • y_m (NDArray[float64]) – North coordinates in meters (clean, no NaNs)

  • distance_step (float) – Desired spacing between output points in meters

  • smoothing (float) – Spline smoothing factor (0 = interpolating spline)

Returns:

  • NDArray[float64] – x_uniform - Uniformly-spaced East coordinates in meters

  • NDArray[float64] – y_uniform - Uniformly-spaced North coordinates in meters

  • NDArray[float64] – cumulative_dist - Arc-length distances at each output point (meters)

  • Any – tck - Scipy B-spline representation for later evaluation

Return type:

Tuple[ndarray[tuple[Any, …], dtype[float64]], ndarray[tuple[Any, …], dtype[float64]], ndarray[tuple[Any, …], dtype[float64]], Any]