首页 > 解决方案 > 管道周围的高分辨率数据需要下采样,包括环绕边缘

问题描述

我从一个管状管道中获取数据,该管道周围有 360 个样本(方位角每 1 度),我需要下采样到 72 个样本。考虑到我正在比较的测量的物理特性和分辨率,72 个样本中的每一个样本的平均值约为 。360 个样本中的 15 个。

通过切片进行下采样的传统方法不会让我进行适当的下采样,实际上会改变数据。我尝试以 5 片间隔进行平均(以匹配 360/72),但也出现偏移

为了真正比较这些测量值,我需要将高分辨率数据下采样到与其他测量值相同的分辨率。

问题:我需要通过对原始数组的 15 个进行平均来创建该数组的 72 列中的每一列,这意味着我需要能够将平均函数包装在主数组上。我想最终创建:

1- 一个移动的窗口,包括包边,我可以选择窗口的大小 2- 选择计算这个窗口的“步骤”,所以我可以得到我需要匹配的尽可能多的列的最终输出我的测量 3- 新的下采样数组,我将对其执行计算

尝试使用 5 个切片的平均值,但由于缺少边缘平均,生成的图像看起来不像输入,而且每 5 个切片并没有真正与较低分辨率测量值重叠

avesize=5 #360/72 =5
ave_array=[] 
for i in range(0, len(a), avesize):
    slice_from_index = i
    slice_to_index = slice_from_index + avesize
    ave_array.append(np.average(a[slice_from_index:slice_to_index]))

标签: pythonarraysfunctionscipy

解决方案


推荐阅读