首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用smoothing>0仅生成NaN值的RectBivariateSpline

使用smoothing>0仅生成NaN值的RectBivariateSpline
EN

Stack Overflow用户
提问于 2016-02-20 14:21:08
回答 1查看 848关注 0票数 1

使用RectBivariateSpline在2D图像(如下所示的原始数据)上进行插值,如果平滑度为0,则会得到插值,但如果将平滑度设置为非零值,即使是0.001,结果也只包含NaN值。我的“图像”是一个从0到14的1000x800的数字网格。

代码语言:javascript
复制
from scipy import interpolate
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x=np.arange(img.shape[1])
y=np.arange(img.shape[0])
X, Y = np.meshgrid(x,y)
fig=plt.figure(1)
for smooth in [0,.001,.01,.1]:
    plt.clf()
    plt.cla()
    ax=fig.add_subplot(111,projection='3d')
    bvspl=interpolate.RectBivariateSpline(x,y,np.transpose(img),s=smooth)
    print(np.min(bvspl(x,y)),np.max(bvspl(x,y)))
    ax.plot_surface(X,Y,np.transpose(bvspl(x,y)))
    fig.savefig(path+str(smooth)+'_3d.png')

打印语句的结果是:-2.15105711021e-15 14.3944312333 nan nan nan nan nan nan

EN

回答 1

Stack Overflow用户

发布于 2016-03-18 10:34:31

在我的例子中,我只是在插值之前将所有缺少的值设置为-9999。插值后,我再次将所有负值设置为缺失值-是的,我将丢失边界上的信息,但到目前为止我只能这样做。我正在寻找另一个快速和准确的解决方案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35519929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档