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

问题描述

我正在使用以下代码(改编自 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 (将#修改为@)