存储 scipy griddata 使用的权重以供重用

Posted

技术标签:

【中文标题】存储 scipy griddata 使用的权重以供重用【英文标题】:storing the weights used by scipy griddata for re-use 【发布时间】:2019-01-22 07:13:17 【问题描述】:

我正在尝试将数据从非结构化网格 M1 插入到另一个非结构化网格 M2。为此,scipy.interpolate.griddata 似乎不错。

但是,我需要从 M1M2 进行多次插值,只更改数据而不更改网格。我想,在内部,scipy.interpolate.griddata 在从 M1 插值到 M2 时定义了一些权重系数,这可能是计算中昂贵的部分之一。 p>

因此,我想避免每次都重新计算这些权重。有没有办法做到这一点?即,从一个非结构化网格多次插值到另一个非结构化网格,两者都保持不变,避免重新计算 scipy.interpolate.griddata(或等效)的内部?

【问题讨论】:

你能帮我解决类似的问题吗***.com/q/61098743/13258046 【参考方案1】:

一种解决方案是将LinearNDInterpolator Scipy 函数与预先计算的Delaunay 三角测量一起使用:

from scipy.spatial import Delaunay
from scipy.interpolate import LinearNDInterpolator

tri = Delaunay(mesh1)  # Compute the triangulation

# Perform the interpolation with the given values:
interpolator = LinearNDInterpolator(tri, values_mesh1)
values_mesh2 = interpolator(mesh2)

mesh1 是一个(点数 * 暗淡)数组。

注意:CloughTocher2DInterpolator 可用于非线性插值。 griddata 使用 LinearNDInterpolatorCloughTocher2DInterpolator

【讨论】:

以上是关于存储 scipy griddata 使用的权重以供重用的主要内容,如果未能解决你的问题,请参考以下文章

差异 scipy interpolate vs mpl griddata

不能通过scipy.interpolate.griddata对n维网格进行插值

为两个不规则网格之间的多个插值加速 scipy griddata

气象 python 二维线性插值

利用griddata进行二维插值

退出权重多久更新一次