title: Could someone describe a 2d interpolation method that is better than bilinear interpolation?
body: <p>I have a grid of data points that I currently use Bilinear interpolation on to find the missing points in the grid. I was pointed in the directions of Kriging aka thee best linear unbiased estimator, but I was unable to find good source code or an algebraic explanation. Does anyone know of any other interpolation methods I could use?</p>
  
  <p>--Update
  @Sam Greenhalgh
  I have considered Bicubic Interpolation but the results I received using the code example I found seemed off.</p>
  
  <p>Here is the code example for Bicubic</p>
  
  <p>Note I am coding in C# but I welcome examples from other languages as well.</p>
  
  <pre><code>    //array 4
      double cubicInterpolate(double[] p, double x)
      {
          return p[1] + 0.5 * x * (p[2] - p[0] + x * (2.0 * p[0] - 5.0 * p[1] + 4.0 * p[2] - p[3] + x * (3.0 * (p[1] - p[2]) + p[3] - p[0])));
      }
      //array 4 4
     public double bicubicInterpolate(double[][] p, double x, double y)
      {
          double[] arr = new double[4];
          arr[0] = cubicInterpolate(p[0], y);
          arr[1] = cubicInterpolate(p[1], y);
          arr[2] = cubicInterpolate(p[2], y);
          arr[3] = cubicInterpolate(p[3], y);
          return cubicInterpolate(arr, x);
      }
  
  double[][] p = {
                  new double[4]{2.728562594,2.30599759,1.907579158,1.739559264},
                  new double[4]{3.254756633,2.760758022,2.210417411,1.979012766},
                  new double[4]{4.075740069,3.366434527,2.816093916,2.481060234},
                  new double[4]{5.430966401,4.896723504,4.219613391,4.004306461}
                 };
  
  Console.WriteLine(CI.bicubicInterpolate(p, 2, 2));
  </code></pre>