一个 numpy 二维数组的奇怪插值
Weird interpolation of a numpy 2D array
我有一堆 131 x 20 二维 numpy 数组形式的数据集,我正在尝试将它们内插为 131x131 的平方。我现在已经多次看过其他人的代码,但我仍然得到一些奇怪的结果。这是我的插值代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate
# bunch of code
# radarray.shape = (131, 20)
T0 = np.arange(0, radarray.shape[1], 1)
Z0 = np.arange(0, radarray.shape[0], 1)
t, z = np.meshgrid(T0, Z0)
f = interpolate.interp2d(t, z, radarray, kind='quintic')
T = np.linspace(0, radarray.shape[1], 131)
Z = np.arange(0, radarray.shape[0], 1)
radinterp = f(T, Z)
plt.imshow(radinterp, aspect='auto', interpolation='none')
plt.gca().invert_yaxis()
plt.savefig('interp')
radarray
的原始数据如下所示:
这是结果:
我试过切换插值方法和 radarray.shape
索引,但所有结果都只是一个绿色区域或这些与我的数据无关的奇怪的模糊正弦波。我哪里搞砸了?
你为什么不使用 skimage 的 resize
?
from skimage.transform import resize
radinterp = resize(radarray, (131, 131), anti_aliasing=True)
应该能帮到你。
我有一堆 131 x 20 二维 numpy 数组形式的数据集,我正在尝试将它们内插为 131x131 的平方。我现在已经多次看过其他人的代码,但我仍然得到一些奇怪的结果。这是我的插值代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate
# bunch of code
# radarray.shape = (131, 20)
T0 = np.arange(0, radarray.shape[1], 1)
Z0 = np.arange(0, radarray.shape[0], 1)
t, z = np.meshgrid(T0, Z0)
f = interpolate.interp2d(t, z, radarray, kind='quintic')
T = np.linspace(0, radarray.shape[1], 131)
Z = np.arange(0, radarray.shape[0], 1)
radinterp = f(T, Z)
plt.imshow(radinterp, aspect='auto', interpolation='none')
plt.gca().invert_yaxis()
plt.savefig('interp')
radarray
的原始数据如下所示:
这是结果:
我试过切换插值方法和 radarray.shape
索引,但所有结果都只是一个绿色区域或这些与我的数据无关的奇怪的模糊正弦波。我哪里搞砸了?
你为什么不使用 skimage 的 resize
?
from skimage.transform import resize
radinterp = resize(radarray, (131, 131), anti_aliasing=True)
应该能帮到你。