python - 大型二维掩码数组的插值

标签 python matrix numpy scipy interpolation

我有一个 numpy 掩码矩阵。并想在蒙版区域进行插值。 我尝试了 RectBivariateSpline,但它没有将蒙版区域识别为蒙版,并且还使用这些点进行插值。在创建 X、Y、Z 1d 向量后,我还尝试了 bisplrep。它们的长度均为 45900。计算 B 样条曲线需要花费大量时间。最后在运行 bisplev 时给出了 Segmentation fault 。 二维矩阵的大小为 270x170。

有什么方法可以使 RectBivariateSpline 不在插值中包含 mask 区域?或者还有其他方法吗? bisplrep 太慢了。

谢谢你, 印度乔

更新: 当网格很小时,具有“线性”功能的 scipy.interpolate.Rbf 正在做合理的工作。但是当数组很大时会报错。

是否有任何其他函数可以让我对矩阵进行插值和平滑处理?

我还得出以下结论。如果我错了,请纠正我。

1) RectBivariateSpline 需要完美的填充矩阵,因此不能使用掩码矩阵。

最佳答案

很晚了,但是...

我遇到了与您类似的问题,双样条出现段错误,rbf 出现内存错误(其中“thin_plate”函数对我非常有用。

由于我的数据是非结构化的,但是是以结构化的方式创建的,所以我使用下采样到数据点密度的一半或三分之一,这样我就可以使用 Rbf。我建议你做的是(非常低效,但仍然比根本不做更好)在许多重叠区域分割矩阵,然后为每个区域创建 rbf 插值器,然后当你插值一个点时,你选择合适的插值器。

此外,如果您有一个掩码数组,您仍然可以在未掩码数组中执行插值,然后对结果应用掩码。(实际上没有,请参阅评论)

希望对大家有帮助

关于python - 大型二维掩码数组的插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9644735/

相关文章:

Google App Engine 上的 Python 脚本,仅从网站抓取更新

python - 是否可以让 QWebKit 显示 pdf 文件?

python - 如果文件是链接文件,如何找到链接的目标路径

c++ - 转置二维动态矩阵

python - 当我给出一个包含两个不同形状的 ndarray 的列表时,np.array() 不起作用

python-2.7 - 如何进一步向量化这个函数?

python - PyMySQL、MySQL、Python : String formatting

python - 扩大python输出文件中的写入空间

java - Java 中的稀疏矩阵乘法

python - 列表外积的numpy方式