首页 > 解决方案 > 如何加速 3D 向量的最近邻插值?

问题描述

我有一个像这样在网格上定义的矢量场 例如,https://elektromagnetisme.no/blog/page/5/

我有很多观点。(x, y, z)是这些点的坐标。我想在这些点上找到向量值。我使用最近邻插值来计算这些点上的向量,但我这里有很多点(~4M),而且我的代码运行缓慢。这是我的示例代码:

from scipy.ndimage import map_coordinates
import numpy as np

# examples of vectors `v` on grid 
vx=np.random.randn(500,100,100)
vy=np.random.randn(500,100,100)
vz=np.random.randn(500,100,100)

# examples of locations `p`
x=np.random.rand(4000000)*500
y=np.random.rand(4000000)*100
z=np.random.rand(4000000)*100

# my solution at the moment
coords=np.array([x,y,z])

out = np.zeros((3, coords.shape[1]))
out[0]= map_coordinates(vx, coords, order=0)
out[1]= map_coordinates(vy, coords, order=0)
out[2]= map_coordinates(vz, coords, order=0)

有什么想法可以加速 3D 中的最近邻插值吗?

标签: python

解决方案


推荐阅读