哪种插值可为3D常规网格数据提供更好的结果

时间:2019-05-17 05:52:16

标签: gridview scipy interpolation hdf5 spline

我在常规网格上创建了​​一个分析函数的h5文件。现在,通过读取此h5文件,我想进行插值。我的数据集是3D正则网格类型,在这里我使用了Regulargridinterpolator,但是问题是我对这个插值器的结果很差。现在,我想使用样条线或其他插值器来测试代码,但不知道哪个插值器可以为3D常规网格数据提供更好的结果,以及如何做到这一点。期待专家的建议。

这是我如何创建h5文件的代码:

import numpy as np
from numpy import gradient
import h5py
from scipy.interpolate import RegularGridInterpolator


def f(x,y,z):
    return ( -1 / np.sqrt(x**2 + y**2 + z**2))

#grid
x = np.linspace(0, 100, 32)  # since the boxsize is 320 Mpc/h
y = np.linspace(0, 100, 32)
z = np.linspace(0, 100, 32)


mesh_data = phi_an(*np.meshgrid(x, y, z, indexing='ij', sparse=True))


#create h5 file
h5file = h5py.File('function.h5', 'w')
h5file.create_dataset('/x', data=x)
h5file.create_dataset('/y', data=y)
h5file.create_dataset('/z', data=z)
h5file.create_dataset('/mesh_data', data=mesh_data)

h5file.close()

0 个答案:

没有答案