Hi All,

    as I didn't get any answer, I thought I might repost with some
more analysis the trouble I am having with interp2d.

The attached script produces 3 different results depending on the
value of the parameter numColumns, i.e.:

1) numColumns = 20

Traceback (most recent call last):
  File "C:\MyProjects\LinearInterpolation.py", line 27, in <module>
    function = interp2d(xx, yy, z, kind="linear")
  File "C:\Python25\Lib\site-packages\scipy\interpolate\interpolate.py",
line 113, in __init__
    self.tck = fitpack.bisplrep(self.x, self.y, self.z, kx=kx, ky=ky, s=0.)
  File "C:\Python25\Lib\site-packages\scipy\interpolate\fitpack.py",
line 702, in bisplrep
    tx,ty,nxest,nyest,wrk,lwrk1,lwrk2)
ValueError: Invalid inputs.

2) numColumns = 200

Traceback (most recent call last):
  File "C:\MyProjects\LinearInterpolation.py", line 27, in <module>
    function = interp2d(xx, yy, z, kind="linear")
  File "C:\Python25\Lib\site-packages\scipy\interpolate\interpolate.py",
line 113, in __init__
    self.tck = fitpack.bisplrep(self.x, self.y, self.z, kx=kx, ky=ky, s=0.)
  File "C:\Python25\Lib\site-packages\scipy\interpolate\fitpack.py",
line 702, in bisplrep
    tx,ty,nxest,nyest,wrk,lwrk1,lwrk2)
MemoryError

(MemoryError? With a 372x200 matrix???)

3) numColumns = 2000

Traceback (most recent call last):
  File "C:\MyProjects\LinearInterpolation.py", line 27, in <module>
    function = interp2d(xx, yy, z, kind="linear")
  File "C:\Python25\Lib\site-packages\scipy\interpolate\interpolate.py",
line 113, in __init__
    self.tck = fitpack.bisplrep(self.x, self.y, self.z, kx=kx, ky=ky, s=0.)
  File "C:\Python25\Lib\site-packages\scipy\interpolate\fitpack.py",
line 702, in bisplrep
    tx,ty,nxest,nyest,wrk,lwrk1,lwrk2)
OverflowError: long int too large to convert to int

Is there anyone who could tell me, please, what I am doing wrong? This
is on Windows XP 1GB RAM, 3.7 GHz, Python 2.5, scipy 0.6.0, numpy
1.0.4.

Thank you for your suggestions.

Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/
import datetime
import numpy
from scipy.interpolate import interp2d

date1, date2 = [], []

# Change numColumns from 20 to 200 to 2000
# to see different error messages
numColumns = 2000

for year in xrange(2007, 2038):
   for month in xrange(1, 13):
       date1.append(datetime.date(year, month, 1).toordinal())
       date2.append(datetime.date(year, month, 5).toordinal())

timeSteps = len(date2)

x = [date1[0] for i in xrange(numColumns)]
y = date1
z = numpy.random.rand(timeSteps, numColumns)

xx, yy = numpy.meshgrid(x, y)

newX = [date2[0] for i in xrange(numColumns)]
newY = date2

function = interp2d(xx, yy, z, kind="linear")

newZ = function(newX, newY)
_______________________________________________
Numpy-discussion mailing list
[email protected]
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to