【问题标题】:Which scipy function should I use to interpolate from a rectangular grid to regularly spaced rectangular grid in 2D?我应该使用哪个 scipy 函数从矩形网格插值到二维规则间隔的矩形网格?
【发布时间】:2016-10-17 11:36:40
【问题描述】:

我对python很陌生,我正在寻找最有效的pythonic方法来从一个网格插值到另一个网格。 原始网格是结构化网格(也使用规则或矩形网格),并且间距不均匀。 新网格是规则间隔的网格。两个网格都是二维的。现在可以使用线性插值之类的简单插值方法,将来我可以尝试不同的方法,例如双三次。

我知道有一些方法可以从不规则网格插入到规则网格,但是鉴于我的原始网格的规则结构,应该可以使用更有效的方法。

在 scipy 文档中搜索后,我发现 2 种方法似乎适合我的情况:scipy.interpolate.RegularGridInterpolatorscipy.interpolate.RectBivariateSpline。 我不明白这两个功能之间的区别,我应该使用哪一个? 差异纯粹是插值方法吗?此外,虽然RegularGridInterpolator 中明确提到了原始网格的非均匀间距,但RectBivariateSpline doc 对此保持沉默。

谢谢,

安德烈亚

【问题讨论】:

    标签: python numpy scipy grid


    【解决方案1】:

    RectBivariateSpline

    将您的网格想象成一个峡谷,其中高值是高峰,低值是低谷。双变量样条将尝试在该峡谷上放置一张薄板以进行插值。这仍然适用于不规则间隔的输入,只要您提供的 x 和 y 数组也是不规则间隔的,并且所有内容仍然位于矩形网格上。

    RegularGridInterpolator

    同样的峡谷,但现在我们将对周围的网格点进行线性插值以进行插值。我们假设输入数据是有规律的间隔以节省一些计算。听起来这对你不起作用。

    现在呢?

    这两个地图都是 2D-1D。听起来您有一个不规则的输入空间,但具有矩形间隔的样本点,以及一个具有规则间隔的样本点的输出空间。你可以试试 LinearNDInterpolator,因为你是 2D 的,它不会贵很多。

    如果您尝试在两个 2D 事物之间插入映射,则需要进行两次插值,一个插值 (x1, y1) -> x2,另一个插值 (x1, y1) -> y2。

    Vstacking 这些输出将为您提供输出空间中的点数组。

    在给定不规则网格输入的情况下,我不知道在 scipy 中利用插值输出的预期结构更有效的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-20
      • 2011-08-14
      • 2019-12-31
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多