[pymvpa] MemoryError
    Yaroslav Halchenko 
    debian at onerussian.com
       
    Sun Jun 27 03:32:17 UTC 2010
    
    
  
On Sat, 26 Jun 2010, McKell Carter wrote:
> Yes, 32K after masking. The full image size is 48X58X49.
cool -- I guess you've hit the bug in libnifti... damn you ;-)
here is my silly snippet to reproduce:
from nifti import NiftiImage
import numpy as np
def check(s, ni):
    print "%s saving/loading" % s
    fn1s = np.where(ni.data[:, 1,1,1] != 1)[0]
    if len(fn1s):
        fn1 = fn1s[0]
        print [(i, ni.data[i, 1,1,1]) for i in (fn1-1, fn1)]
    else:
        print "everything 1s"
size=(48, 59,49, 15000)
print "Size ", size
ni = NiftiImage(np.ones(size[::-1]))
ni.save('/tmp/ones.nii.gz')
check('before', ni)
del ni
ni = NiftiImage('/tmp/ones.nii.gz')
check('after', ni)
nidr = ni.data.ravel()
# silly way but what a heck ;)
print "first non-1 ", np.where(nidr!=1)[0][0]
it outputs:
Size  (48, 59, 49, 15000)
before saving/loading
everything 1s
after saving/loading
[(3393, 1.0), (3394, 0.0)]
first non-1 470907264
more fun came when I changed first dimension size to 25:
In [1]: ## working on region in file /home/yoh/.tmp/python-10698W9c.py...
Size  (25, 59, 49, 15000)
** ERROR: NWAD: wrote only 83065408 of 83065408 bytes to file
before saving/loading
everything 1s
after saving/loading
++ WARNING: nifti_read_buffer(/tmp/ones.nii.gz):
   data bytes needed = 83065408
   data bytes input  = 83065408
   number missing    = 0 (set to 0)
[(143, 1.0), (144, 0.0)]
first non-1  10383176
as to me it makes somewhat little sense ;)
in any case -- we will look into it.  From a quick look I don't see where
we could be possibly hitting the limit here:
http://nifti.nimh.nih.gov/board/read.php?f=1&i=2357&t=2356
-- 
                                  .-.
=------------------------------   /v\  ----------------------------=
Keep in touch                    // \\     (yoh@|www.)onerussian.com
Yaroslav Halchenko              /(   )\               ICQ#: 60653192
                   Linux User    ^^-^^    [175555]
    
    
More information about the Pkg-ExpPsy-PyMVPA
mailing list