3

I have a 3D numpy array with some elevation values. I would like to apply kriging interpolation method to them and get a full valued array with same given shape.

My purpose is to create a surface actually. The values, I have, are hydrogelogical layers. Every layer from top to bottom are described with grid and I have some height values as described below. Nevertheless, I need height values for every grid.

For instance there is an array I have. "0" marks unknown values, others values are given values. 3 layer, 10 rows, 15 columns:

[[[ 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]]

I want to apply kriging to get interpolated values based on given values.

msi_gerva
  • 2,021
  • 3
  • 22
  • 28
Mustafa Uçar
  • 442
  • 1
  • 6
  • 18
  • Possible duplicate of [interpolate missing values 2d python](https://stackoverflow.com/questions/37662180/interpolate-missing-values-2d-python) – Nils Werner Sep 19 '18 at 07:22
  • @Nils Werner: kriging interpolation method is not available with NumPy – msi_gerva Sep 19 '18 at 07:37
  • 2
    Possible duplicate of [Interpolation over regular grid in Python](https://stackoverflow.com/questions/24978052/interpolation-over-regular-grid-in-python) – Nils Werner Sep 19 '18 at 08:06

1 Answers1

0

You can definitely do it using Kriging algorithm. I showed an example in 2D here using OpenTURNS platform. It can be easily adapted in 3D.

Jean A.
  • 291
  • 1
  • 17