# [Numpy-discussion] Interpolation question

Brennan Williams brennan.williams@visualreservoir....
Sun Mar 28 18:46:47 CDT 2010

```Andrea Gavana wrote:
> Hi Friedrich & All,
>
> On 28 March 2010 23:51, Friedrich Romstedt wrote:
>
>> 2010/3/28 Andrea Gavana <andrea.gavana@gmail.com>:
>>
>>> Example 1
>>>
>>> # o2 and o3 are the number of production wells, split into 2
>>> # different categories
>>> # inj is the number of injection wells
>>> # fomts is the final oil recovery
>>>
>>> rbf = Rbf(oilPlateau, gasPlateau, gasInjPlateau, o2, o3, inj, fomts)
>>>
>>> op = [50380]
>>> gp = [103014000]
>>> gi = [53151000]
>>> o2w = [45]
>>> o3w = [20]
>>> inw = [15]
>>>
>>> fi = rbf(op, gp, gi, o2w, o3w, inw)
>>>
>>> # I => KNOW <= the answer to be close to +3.5e8
>>>
>>> print fi
>>>
>>> [ -1.00663296e+08]
>>>
>>> (yeah right...)
>>>
>>>
>>> Example 2
>>>
>>> Changing o2w from 45 to 25 (again, the answer should be close to 3e8,
>>> less wells => less production)
>>>
>>> fi = rbf(op, gp, gi, o2w, o3w, inw)
>>>
>>> print fi
>>>
>>> [  1.30023424e+08]
>>>
>>> And keep in mind, that nowhere I have such low values of oil recovery
>>> in my data... the lowest one are close to 2.8e8...
>>>
>> I want to put my2 cents in, fwiw ...
>>
>> What I see from
>> http://docs.scipy.org/doc/scipy-0.7.x/reference/generated/scipy.interpolate.Rbf.html#scipy.interpolate.Rbf
>> are three things:
>>
>> 1. Rbf uses some weighting based on the radial functions.
>> 2. Rbf results go through the nodal points without *smooth* set to
>> some value != 0
>> 3. Rbf is isotropic
>>
>> (3.) is most important.  I see from your e-mail that the values you
>> pass in to Rbf are of very different order of magnitude.  But the
>> default norm used in Rbf is for sure isotropic, i.e., it will result
>> in strange and useless "mean distances" in R^N where there are N
>> parameters.  You have to either pass in a *norm* which weights the
>> coords according to their extent, or to scale the data such that the
>> aspect ratios of the hypecube's edges are sensible.
>>
>> You can imagine it as the follwing ascii plot:
>>
>>   *             *                             *
>> *      *              *                         *
>>
>> the x dimension is say the gas plateau dimension (~1e10), the y
>> dimension is the year dimension (~1e1).  In an isotropic plot, using
>> the data lims and aspect = 1, they may be well homogenous, but on this
>> scaling, as used by Rbf, they are lumped.  I don't know if it's clear
>> what I mean from my description?
>>
>> Are the corresponding parameter values spread completely randomly, or
>> is there always varied only one axis?
>>
>> If random, you could try a fractal analysis to find out the optimal
>> scaling of the axes for N-d coverage of N-d space.  In the case above,
>> is is something between points and lines, I guess.  When scaling it
>> properly, it becomes a plane-like coveage of the xy plane.  When
>> scaling further, it will become points again (lumped together).  So
>> you can find an optimum.  There are quantitative methods to obtain the
>> fractal dimension, and they are quite simple.
>>
>
> I believe I need a technical dictionary to properly understand all
> that... :-D . Sorry, I am no expert at all, really, just an amateur
> magnitude of the matrix is a very interesting one. Although I have
> absolutely no idea on how to re-scale them properly to avoid RBFs
> going crazy.
>
> randomly, as this is a collection of simulations done over the years,
> trying manually different scenarios, without having in mind a proper
> experimental design or any other technique. Nor the parameter  values
> vary only on one axis in each simulation (few of them are like that).
>

I assume that there is a default "norm" that calculates the distance
between points irrespective of the order of the input coordinates?

So if that isn't working, leading to the spurious results, the next step
is to normalise all the inputs so they are in the same range, e.g
max-min=1.0

On a related note, what approach would be best if one of the input
parameters wasn't continuous? e.g. I have three quite different
geological distributions called say A,B and C.
SO some of my simulations use distribution A, some use B and some use C.
I could assign them the numbers 1,2,3 but a value of 1.5 is meaningless.

Andrea, if you have 1TB of data for 1,000 simulation runs, then, if I
assume you only mean the smspec/unsmry files, that means each of your
summary files is 1GB in size?
Are those o2w,o3w and inw figures the number of new wells only or
existing+new? It's fun dealing with this amount of data isn't it?

Brennan
> Andrea.
>
> "Imagination Is The Only Weapon In The War Against Reality."
> http://xoomer.alice.it/infinity77/
>
> ==> Never *EVER* use RemovalGroup for your house removal. You'll
> regret it forever.
> http://thedoomedcity.blogspot.com/2010/03/removal-group-nightmare.html <==
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>

```