On Sun, Mar 28, 2010 at 03:26, Anne Archibald <peridot.face...@gmail.com> wrote: > On 27 March 2010 20:24, Andrea Gavana <andrea.gav...@gmail.com> wrote: >> Hi All, >> >> I have an interpolation problem and I am having some difficulties >> in tackling it. I hope I can explain myself clearly enough. >> >> Basically, I have a whole bunch of 3D fluid flow simulations (close to >> 1000), and they are a result of different combinations of parameters. >> I was planning to use the Radial Basis Functions in scipy, but for the >> moment let's assume, to simplify things, that I am dealing only with >> one parameter (x). In 1000 simulations, this parameter x has 1000 >> values, obviously. The problem is, the outcome of every single >> simulation is a vector of oil production over time (let's say 40 >> values per simulation, one per year), and I would like to be able to >> interpolate my x parameter (1000 values) against all the simulations >> (1000x40) and get an approximating function that, given another x >> parameter (of size 1x1) will give me back an interpolated production >> profile (of size 1x40). > > If I understand your problem correctly, you have a function taking one > value as input (or one 3D vector) and returning a vector of length 40. > You want to know whether there are tools in scipy to support this. > > I'll say first that it's not strictly necessary for there to be: you > could always just build 40 different interpolators, one for each > component of the output. After all, there's no interaction in the > calculations between the output coordinates. This is of course > awkward, in that you'd like to just call F(x) and get back a vector of > length 40, but that can be remedied by writing a short wrapper > function that simply calls all 40 interpolators. > > A problem that may be more serious is that the python loop over the 40 > interpolators can be slow, while a C implementation would give > vector-valued results rapidly.
40 is not a bad number to loop over. The thing I would be worried about is the repeated calculation of the (1000, 1000) radial function evaluation. I think that a small modification of Rbf could be made to handle the vector-valued case. I leave that as an exercise to Andrea, of course. :-) -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion