[Numpy-discussion] problem calling SD.SDim.setname in pyhdf

Catherine Moroney Catherine.M.Moroney at jpl.nasa.gov
Mon Sep 29 18:39:29 EDT 2008


Hi,

I recently upgraded pyhdf from 0.7-3 to 0.8-2, and have noticed some
problems with the SD.SDim interface.

Specifically, the short test code attached works fine with version 0.7-3
and fails with version 0.8-2 when it's trying to assign a name
to the dimension.

I get the following error (below).  Does anybody else have similar  
problems
while trying to attach a name to an SDim object in the most recent  
version
of pyhdf?

I'm running on a Linux box, python version 2.5.

etting Dimension:  Dimension0
Traceback (most recent call last):
   File "./Test_pyhdf.py", line 35, in <module>
     main()
   File "./Test_pyhdf.py", line 27, in main
     dim.setname(dname)
   File "/usr/lib64/python2.5/site-packages/pyhdf/SD.py", line 2856,  
in setname
     _checkErr('setname', status, 'cannot execute')
   File "/usr/lib64/python2.5/site-packages/pyhdf/error.py", line 24,  
in _checkErr
     raise HDF4Error, str
pyhdf.error.HDF4Error: ('s', 'e', 't', 'n', 'a', 'm', 'e', ' ', ':',  
' ', 'c', 'a', 'n', 'n', 'o', 't', ' ', 'e', 'x', 'e', 'c', 'u', 't',  
'e')

Thanks for any help,

Catherine

#! /usr/bin/env python

from pyhdf import HDF
from pyhdf import SD

def main():

     rank = (10,20)
     flhdf = SD.SD("Test_pyhdf.hdf",HDF.HC.CREATE|HDF.HC.WRITE| 
HDF.HC.TRUNC)
     sds = flhdf.create("Test SDS",HDF.HC.INT32,rank)

     for idim in range(0,2):
         dim = sds.dim(idim)
         dname = "Dimension" + str(idim)
         print "Setting Dimension: ",dname
         dtype = HDF.HC.FLOAT32
         scale = [i for i in range(0,rank[idim])]
         dim.setname(dname)   <----- CRASHES ON THIS LINE
         dim.units = "None"
         dim.setscale(dtype, scale)

     sds.endaccess()
     flhdf.end()

if __name__ == "__main__":
     main()






More information about the NumPy-Discussion mailing list