You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将FITS立方体的切片写入新文件 解决TableHDU类型报错

错误原因
  • 错误的HDU类型选择:fits.TableHDU仅用于存储结构化表格数据,你提取的单通道二维图像属于数组型图像数据,应该使用fits.PrimaryHDU或fits.ImageHDU进行封装。
  • 切片索引不一致:代码中提取待存储数据时使用data[:,:,0,0],但绘图时使用data[0,0,:,:],4维射电FITS的常规维度顺序为[斯托克斯轴, 频率轴, 赤纬轴, 赤经轴],需要统一索引顺序取到你需要的层。
修复方案

替换你代码中创建HDU、写入文件的部分即可,同时建议同步更新头文件维度信息,保证新FITS文件的WCS信息可用:

# 统一取第0个斯托克斯、第0个频率通道的二维图像
newdata = data[0,0,:,:]
# 裁剪得到二维天体坐标对应的WCS头
hdr_slice = wcs.celestial.to_header()
# 用图像类HDU封装数据
hdu = fits.PrimaryHDU(data=newdata, header=hdr_slice)
# 写入文件,overwrite=True参数可避免同名文件存在时报错
hdu.writeto('/home/natasha/Documents/J1601test.fits', overwrite=True)

如果不需要保留WCS信息,也可以简化为:

newdata = data[0,0,:,:]
hdu = fits.PrimaryHDU(data=newdata)
hdu.writeto('/home/natasha/Documents/J1601test.fits', overwrite=True)

内容的提问来源于stack exchange,提问作者Natasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:18:03