You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中基于非规则XY坐标生成间距为10米的等间隔矢量点

如何将非规则XY点重采样为两两间距10米的等间隔点?

我手头有一组非规则间隔的XY矢量点(x和y都是一维数组,单位为米),现在想把这些点重采样成两两之间直线距离恰好为10米的等间隔点。

我之前试着只对X方向做规则重采样,代码如下:

import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt

f_bot = interpolate.interp1d(x, y)
xnew_bot = np.arange(np.min(x),np.max(x),10) # 10 m spaced
ynew_bot = f_bot(xnew_bot)
plt.plot(x, y, 'o', xnew_bot, ynew_bot,'-')
plt.show()

但问题来了:用scipy.interpolate.interp1d对Y值插值后,新生成的点之间的实际直线距离根本不是10米。我试过两种验证方式:

  1. 用QGIS测量新生成点(橙色点)的间距;
  2. 运行下面的代码计算间距:
dist_total = np.hstack([0,np.cumsum(np.hypot(np.diff(xnew_bot),np.diff(ynew_bot)))])
diff_dist = np.diff(dist_total) # calculate distance difference between each points

结果很明显:虽然X方向相邻点的间距刚好是10米,但Y方向相邻点的间距是不规则的,导致两点间的实际直线距离还是非均匀的。

想请教各位,有没有合适的函数或者方法,能确保生成的XY点两两之间的直线距离都严格是10米?我只需要实现这个间距效果,目前还没找到可行的方案,麻烦大家帮忙支个招!

附上我的XY数据示例:

xy
-1091590.00158697
-1091580.00158702
-1091580.00158708
-1091570.00158713
-1091560.00158719
-1091550.00158724
......
-1079450.00164674
-1079440.00164677
-1079430.00164680
-1079420.00164683

内容的提问来源于stack exchange,提问作者jb16006

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 10:23:10