如何从具有相同插值点和相同点之间距离的不同数据集中插入数据点以计算它们的平均值?

问题描述

抱歉问了这么长的问题,也许有一个快速解决方案,但我一直无法弄清楚。我有 3 个不同的数据集,其中包含 x 和 y 数据点,如下所示:

line1_x = [277.75,287.68,308.77,322.23,342.98,363.99,387.59,396.83,401.52,405.78,408.30,408.06,406.94,406.11,403.46,401.14,397.28,394.04,390.62,386.99,384.31,380.41,375.85,372.25,368.35,364.86,363.01,361.84,361.85,363.79,366.25,368.94,371.58,376.11,380.97,387.33,391.61,392.36,373.35,350.68]

line1_y = [806.00,779.43,713.71,731.96,701.13,621.68,525.04,490.21,467.48,455.57,445.59,440.54,436.74,432.71,434.32,438.06,449.00,462.25,476.56,493.43,514.02,538.52,570.87,614.20,664.00,708.06,750.61,786.38,814.16,834.67,853.45,864.71,872.50,882.23,893.28,907.94,922.18,931.05,950.03,1085.45]

line2_x = [443.98,442.71,441.24,437.57,427.09,417.82,418.20,418.14,417.76,414.84,411.93,408.14,404.29,402.48,400.63,398.01,394.43,392.05,391.69,391.06,388.61,384.59,378.93,374.67,372.82,371.07,370.50,370.96,372.11,374.10,377.05,381.65,385.54,388.72,389.27,389.00,389.71,391.49,392.60,385.89,384.39,361.87]

line2_y = [299.48,317.04,338.92,360.55,405.99,451.64,493.67,516.66,530.73,540.62,548.90,553.39,555.65,559.21,564.41,571.17,577.56,585.31,592.54,606.96,626.18,651.76,679.82,710.62,744.39,774.02,802.14,829.54,849.98,865.51,879.94,894.02,903.30,910.80,918.08,926.39,935.80,947.09,955.08,965.04,1076.83,1110.45]

line3_x = [302.52,313.15,340.68,352.96,364.85,378.51,407.05,437.33,453.73,462.99,467.79,470.68,472.10,473.56,473.49,472.72,471.14,468.91,467.76,466.58,463.90,460.31,457.23,453.48,448.68,443.65,438.08,433.63,429.14,424.09,418.62,415.17,414.60,417.55,422.72,429.17,436.35,443.75,450.29,455.66,459.26,461.39,462.30,463.23,469.86,435.97]

line3_y = [794.42,809.18,782.48,761.93,771.51,776.51,689.07,560.78,531.03,524.44,518.59,516.73,514.03,511.97,511.63,518.31,532.60,549.91,563.77,582.81,601.98,617.95,628.03,640.11,658.30,703.00,730.40,754.16,776.00,800.85,824.39,844.47,856.76,866.70,875.72,884.18,892.66,903.61,912.93,922.55,928.60,932.00,952.27,1029.70,1065.12]

这个数据集是一个点序列,所以时间和位置很重要,这就是为什么不能简单地将点添加到较小的数据集中并计算平均值。我一直在尝试对数据进行插值,以便所有插值线具有相同的距离,然后使用它来计算插值线的每个步骤的平均值。数据如下所示:

enter image description here

我使用 interp1d 函数使用 3 个数据集的最小 y 和最大 y 计算插值:

interpolated_y = np.linspace(minimum_y,maximum_y,num=100,endpoint=True)
interpolated_x = interp1d(line1_y,line1_x,fill_value="extrapolate")(interpolated_y)

它们看起来像这样:

enter image description here

这很好,因为所有线的内插点的步骤之间的所有距离都相同,并且内插点的数量完全相同,但是如果我用它来计算内插步骤之间的平均值,我就输了关于起点的信息,即我无法计算起点之间的平均值。

我的问题是:如何对 3 个数据集进行插值,以使每个数据集具有相同数量的插值点,并且每个数据集的点之间距离相同?,并且插值应从起点开始并以正确的方式继续方向。对于数据集较小的情况,应该进行外推。

或者,考虑到这些点是时间序列点,是否有另一种方法来计算它们的平均值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)