我正在尝试使用 pyfits 更新现有的 fit 表。它适用于表格的某些列,不幸的是不适用于第一列。这是列定义:
ColDefs(
name = 'EVENT_ID'; format = '1J'; bscale = 1; bzero = 2147483648
name = 'TEL_ID'; format = '1I'
name = 'TIMESLICE'; format = '1I'; null = 0...
以及更新它的简单代码片段:
event = pyfits.open('file.fits.gz')[1]
event.data.field('EVENT_ID')[0] = np.uint32(event.event_ID)
event.data.field('TEL_ID')[0] = int(tel.ID[2])
event.writeto('test.fits')
编写 TEL_ID(以及此处未显示的其他内容)有效,而 EVENT_ID 则无效。我已经尝试过不同的格式(np.int32,int)但总是一样的......
type(event.data.field('EVENT_ID')[0])
返回 numpy.uint32 (对于未修改的文件)
谢谢你的帮助
编辑:
如果我更改 'EVENT_ID' 的定义,省略 'bscale' 和 'bzero' 值的更新工作。所以似乎无符号整数有问题。