[AstroPy] Writing unsigned int with pyfits

Martin Raue martin.raue at desy.de
Mon Apr 30 09:45:38 EDT 2012

Dear all,

I am trying to create a FITS file with a bintable extension containing unsigned integers with pyfits but could not get it to work (example below). Does maybe someone know what I am doing wrong here?

Best wishes,

import numpy as np
import pyfits as pf

phdu = pf.PrimaryHDU(uint=True)

a_uint = np.ones(1, dtype=np.uint32)
events = pf.new_table(
        pf.Column(name='EVENT_ID', array=a_uint, format='J', bscale=1, bzero=2**31)
        pf.Column(name='OBS_ID', array=a_uint, format='J', bscale=1, bzero=2**31)
#       ... a few more columns

hdulist = pf.HDUList([phdu, events])


hdulist = None

f = pf.open('tmp.fits')

In [2]: f[1].data
FITS_rec([(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)], 
      dtype=[('EVENT_ID', '>i4'), ('OBS_ID', '>i4'), ('TIME', '>f4'), ('RA', '>f4'), ('DEC', '>f4'), ('DETX', '>f4'), ('DETY', '>f4'), ('ENERGY', '>f4'), ('HIL_MSW', '>f4'), ('HIL_MSL', '>f4')])

In [3]: f[1].data.field('EVENT_ID')[0].dtype
Out[3]: dtype('float64')


Martin Raue

Group Leader - LEXI Young Investigator Group
"Cosmic radiation fields and search for dark matter in the early universe"

University of Hamburg
Institute for Experimental Physics
Luruper Chaussee 149
D-22761 Hamburg

Phone  : +49-40-8998-2993
Fax    : +49-40-8998-2170
E-Mail : martin.raue at desy.de

More information about the AstroPy mailing list