如何在Python中应用克里金插值来处理三维数组?

3
我有一个包含高程数值的3D numpy数组。我想对它们应用kriging插值方法,并获得一个具有相同形状的完全数值化的数组。
我的目的实际上是创建一个表面。我拥有的值是水文地质层。从上到下的每个层都用网格描述,我有一些高度值如下所述。然而,我需要每个网格的高度值。
例如,我有一个数组。 "0"表示未知值,其他值为给定值。3层,10行,15列
[[[ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  9  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [11  9 11 11 10  9 11 11 11 11  9 11  11 11 9]
  [ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  8  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 13  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]]

[[[ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  9  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [11  9 11 11 10  9 11 11 11 11  9 11  11 11 9]
  [ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  8  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 13  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]]

[[[ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  9  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [11  9 11 11 10  9 11 11 11 11  9 11  11 11 9]
  [ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 10  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0  8  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 13  0  0  0  0  0  0  0  0  0  0  0]
  [ 0  0  0 12  0  0  0  0  0  0  0  0  0  0  0]]

我希望应用克里金插值法来基于给定值获取插值结果。

可能是 interpolate missing values 2d python 的重复问题。 - Nils Werner
@Nils Werner:NumPy中没有可用的克里金插值方法。 - msi_gerva
2
可能是Python中的规则网格插值的重复问题。 - Nils Werner
1个回答

0

你可以用克里金算法来实现这个功能。我在2D的这里展示了一个例子,使用的是OpenTURNS平台。它也可以很容易地适应3D。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接