[SciPy-User] rbf interpolating

Wolfgang Kerzendorf wkerzendorf@googlemail....
Fri Mar 11 06:11:26 CST 2011


Dear all

I am currently trying to use interpolate.Rbf to interpolate my data. My 
data looks like that:

(array([  9000.,   9000.,   9000., ...,  12000.,  12000.,  12000.]),
  array([ 3.5,  3.5,  3.5, ...,  4.5,  4.5,  4.5]),
  array([-2.5, -2.5, -2.5, ...,  0.5,  0.5,  0.5]),
  array([ 150.,  150.,  150., ...,  250.,  250.,  250.]),
  array([ 0.5,  0.7,  0.9, ...,  0.9,  1.1,  1.3]),
  array([[ 0.12608476,  0.12826188,  0.13127538, ...,  0.29928203,
          0.27434822,  0.25906699],
        [ 0.06169096,  0.06278402,  0.06430721, ...,  0.44264917,
          0.40578164,  0.38318576],
        [ 0.03013017,  0.03067692,  0.03144345, ...,  0.65333767,
          0.59893744,  0.56559473],
        ...,
        [ 0.07080239,  0.07284835,  0.07565985, ...,  0.44098662,
          0.40915711,  0.39057291],
        [ 0.0345885 ,  0.03560238,  0.037001  , ...,  0.65085347,
          0.60389154,  0.57647133],
        [ 0.01686656,  0.0173676 ,  0.01806123, ...,  0.95862692,
          0.88947996,  0.84910533]]))

So the first 5 items are the coordinates. the last is the data (which is 
not only a single number but is actually a 1D array. If I do this with 
griddata it works.

I tried giving it to Rbf by doing Rbf(*data), but I get the following error:

/Library/Python/2.6/site-packages/scipy/interpolate/rbf.pyc in 
__init__(self, *args, **kwargs)
     196
     197         self.A = self._init_function(r) - eye(self.N)*self.smooth
--> 198         self.nodes = linalg.solve(self.A, self.di)
     199
     200     def _call_norm(self, x1, x2):

/Library/Python/2.6/site-packages/scipy/linalg/basic.pyc in solve(a, b, 
sym_pos, lower, overwrite_a, overwrite_b, debug)
      49         raise ValueError('expected square matrix')
      50     if a1.shape[0] != b1.shape[0]:
---> 51         raise ValueError('incompatible dimensions')
      52     overwrite_a = overwrite_a or (a1 is not a and not 
hasattr(a,'__array__'))
      53     overwrite_b = overwrite_b or (b1 is not b and not 
hasattr(b,'__array__'))

ValueError: incompatible dimensions

-----

Your help is greatly appreciated,
       Wolfgang


More information about the SciPy-User mailing list