微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对不同曲线的均匀空间轨迹数据进行插值

如何解决对不同曲线的均匀空间轨迹数据进行插值

我正在使用以下代码(改编自 Resample or normalize trajectory data so points are evenly spaced)来插入 2D X 和 Y 位置数据(没有时间索引),以便点均匀分布。根据我的理解,该问题的答案假设 x 值遵循某个曲线或模式(例如指数曲线),但并非我所有的轨迹都如此。

我相信我需要分别插入 X 和 Y。但是,这段代码似乎没有产生均匀间隔的输出,我不知道如何解决这个问题。数组在插值之前已经是 1000 个点,并且在“形状”上有所不同。因此我不知道如何定义 x & x_new:

# Interpolation for X values 
from scipy.interpolate import interp1d
y = df['X']
x = np.linspace(y.min(),y.max(),1000)
# define interpolation function:
f = interp1d(x,y)
# create new df with desired x vals,generate y with interp function:
x_new = np.linspace(y.min(),1000)
y_new = f(x_new)
X_interp = pd.DataFrame(np.array([y_new]).T,columns=["x_interp"])


# Interpolation for Y values 
from scipy.interpolate import interp1d
y = df['Y']
x = np.linspace(y.min(),1000)
y_new = f(x_new)
Y_interp = pd.DataFrame(np.array([y_new]).T,columns=["y_interp"])

但它不会以任何方式改变数据。

例如,当绘制为散点图时,其中一条轨迹的二维数据(没有时间索引的 X 和 Y 位置)如下所示:

# Note the interpolation doesnt change the data so it looks the same whether I plot using:
plt.scatter(X_interp['x_interp'],Y_interp['y_interp']) 
# or the original data
plt.scatter(df['X'],df['Y']))

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。