Быстрая интерполяция трехмерных данных с регулярной выборкой с различными интервалами по x, y и z
У меня есть некоторые данные объемного изображения, состоящие из значений, выбранных на регулярной сетке в x, y, z, но с некубической формой вокселя (расстояние между соседними точками в z больше, чем в x, y). В конечном итоге я хотел бы иметь возможность интерполировать значения в некоторой произвольной 2D-плоскости, проходящей через объем, например:
Я в курсеscipy.ndimage.map_coordinates
, но в моем случае использовать его не так просто, поскольку он неявно предполагает, что расстояние между элементами во входном массиве одинаково по размерам. Я мог бы сначала пересчитать мой входной массив в соответствии с наименьшим измерением вокселей (чтобы все мои вокселы были тогда кубами), а затем использоватьmap_coordinates
интерполировать по моей плоскости, но не кажется хорошей идеей интерполировать мои данные дважды.
Я также знаю, чтоscipy
имеет различные интерполяторы для нерегулярно разнесенных данных ND (LinearNDInterpolator
, NearestNDInterpolator
и т.д.), но они очень медленные и занимают много памяти для моих целей. Каков наилучший способ интерполировать мои данные, если я знаю, что значениянаходятся регулярно расположены в каждом измерении?