[AstroPy] PyFITS IndexError
Miguel de Val Borro
miguel.deval at gmail.com
Tue Nov 16 09:28:03 EST 2010
Hello,
I have problems reading FITS files from the Herschel Science Archive
generated using their Java data processing system. The file
http://www.mps.mpg.de/data/outgoing/deval/hsa.fits
has a binary table that cannot be accessed by index or name as shown
below.
When the line hdulist[1].data.field(0) is run a few times in the
interpreter the data is finally printed. How can I read this kind of
file using PyFITS?
Best regards,
Miguel
>>> pyfits.__version__
'2.3.1'
>>> hdulist = pyfits.open('hsa.fits')
>>> hdulist[1].data.field(0)
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
/home/miguel/HssO/103P/data/fits/<ipython console> in <module>()
/usr/local/lib/python2.6/dist-packages/pyfits/core.pyc in __getattr__(self, attr)
6240 if size:
6241 self._file.seek(self._datLoc)
-> 6242 data = _get_tbdata(self)
6243 data._coldefs = self.columns
6244 data.formats = self.columns.formats
/usr/local/lib/python2.6/dist-packages/pyfits/core.pyc in _get_tbdata(hdu)
5165 Get the table data from input (an HDU object).
5166 """
-> 5167 tmp = hdu.columns
5168 # get the right shape for the data part of the random group,
5169 # since binary table does not support ND yet
/usr/local/lib/python2.6/dist-packages/pyfits/core.pyc in __getattr__(self, attr)
6251 class_name = str(self.__class__)
6252 class_name = class_name[class_name.rfind('.')+1:-2]
-> 6253 self.__dict__[attr] = ColDefs(self, tbtype=class_name)
6254
6255 elif attr == '_theap':
/usr/local/lib/python2.6/dist-packages/pyfits/core.pyc in __init__(self, input, tbtype)
4887 if col <= _nfields and col > 0:
4888 cname = _commonNames[_keyNames.index(keyword)]
-> 4889 dict[col-1][cname] = _card.value
4890
4891 # data reading will be delayed
/usr/local/lib/python2.6/dist-packages/pyfits/core.pyc in __getattr__(self, name)
438 self._extractKey()
439 elif name in ['value', 'comment']:
--> 440 self._extractValueComment(name)
441 else:
442 raise AttributeError, name
/usr/local/lib/python2.6/dist-packages/pyfits/core.pyc in _extractValueComment(self, name)
1450
1451 # drop the ending "&"
-> 1452 if _val[-1] == '&':
1453 _val = _val[:-1]
1454 longstring = longstring + _val
IndexError: string index out of range
More information about the AstroPy
mailing list