Интерполяция / субсэмплинг трехмерных данных в питоне без VTK

То, что я хочу сделать, довольно просто, но я до сих пор не нашел простой подход:

У меня есть 3D прямолинейная сетка со значениями с плавающей запятой (следовательно, 3 координатные оси -1D массива - для центров ячеек сетки и 3D массив массива с соответствующей формой со значением для каждого центра ячейки), и я хочу интерполировать (или Вы можете назвать это подвыборкой) весь этот массив в массив с дискретизацией (например, размерный коэффициент 5) с линейной интерполяцией. Все подходы, которые я видел до сих пор, включают в себя 2D и затем 1D интерполяцию или трюки VTK, которые Id, скорее всего, не использует (переносимость).

Может ли кто-нибудь предложить подход, который был бы эквивалентен одновременному получению ячеек 5x5x5 в трехмерном массиве, усреднении и возвращении массива в 5 раз меньше в каждом направлении?

Заранее благодарю за любые предложения

РЕДАКТИРОВАТЬ: Вот как выглядят данные: «d» - это трехмерный массив, представляющий трехмерную сетку ячеек. Каждая ячейка имеет скалярное значение с плавающей запятой (в моем случае давление), а 'x', 'y' и 'z' - это три одномерных массива, содержащие пространственные координаты ячеек каждой ячейки (см. Формы и как массив 'x'). выглядит как)

In [42]: x.shape
Out[42]: (181L,)

In [43]: y.shape
Out[43]: (181L,)

In [44]: z.shape
Out[44]: (421L,)

In [45]: d.shape
Out[45]: (181L, 181L, 421L)

In [46]: x
Out[46]: 
array([-0.410607  , -0.3927568 , -0.37780656, -0.36527296, -0.35475321,
       -0.34591168, -0.33846866, -0.33219107, -0.32688467, -0.3223876 ,
        ...
        0.34591168,  0.35475321,  0.36527296,  0.37780656,  0.3927568 ,
        0.410607  ])

То, что я хочу сделать, это создать трехмерный массив с, скажем, формой 90x90x210 (примерно, с уменьшением в 2 раза), сначала предварительно сэмплировав координаты от осей на массивах с вышеуказанными размерами, а затем «интерполировав» трехмерные данные к этому. массив. Хотя я не уверен, что термин «интерполяция» является правильным. Понижение разрешения? Усреднение? Вот 2D-фрагмент данных:

Ответы на вопрос(2)

Ваш ответ на вопрос