首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python scipy.interpolate.interp1d不使用大浮点值

问Python scipy.interpolate.interp1d不使用大浮点值
EN

Stack Overflow用户
提问于 2016-09-27 19:22:16
回答 1查看 1.1K关注 0票数 0

我试图使用scipy.interpolate.interp1d绘制地图图像的经度和纬度值到x坐标和y坐标像素。我有样本值:

代码语言:javascript
复制
y = [0, 256, 512, 768, 1024, 1280, 1536] 
lat = [615436414755, 615226949459, 615017342897, 614807595000, 614597705702, 614387674936, 614177502635] 
x = [0, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2304] 
lon = [235986328125, 236425781250, 236865234375, 237304687500, 237744140625, 238183593750, 238623046875, 239062500000, 239501953125, 239941406250]

当我像这样传递函数时:

代码语言:javascript
复制
xInterpolation = interp1d(xDegree, xPixel)
    yInterpolation = interp1d(yDegree, yPixel)

    return (int(xInterpolation(lon)),int(yInterpolation(lat)))

我得到了价值错误:

ValueError(“x_new中的A值高于插值”ValueError: x_new中的值高于插值范围)。

无论我尝试什么值,它都会抛出值错误,我甚至尝试给出输入列表中相同的lat或lon值,但这也不起作用。有人知道这里发生了什么吗?或者如果我用错了插值。

EN

回答 1

Stack Overflow用户

发布于 2016-09-27 21:02:26

来自interp1d 文档

bounds_error : bool,可选(如果为真,则在任何时候都会引发ValueError ),在x范围以外的值上尝试插值(其中需要外推法)。如果为False,则为越界值分配fill_value。默认情况下,会引发错误。

所以,你的一些插值数据在插值界之上。你是在推断,而不是插值。

当您使用插值时,例如

xInterpolation = interp1d(xDegree, xPixel) xInterpolation(lon)

来自lon的所有值都必须属于区间[xDegree.min, xDegree.max]。

因此,您需要更正您的数据内插或使用外推。

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

https://stackoverflow.com/questions/39732724

复制
相关文章

相似问题

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