fits data cube extract

可以把data cube看作一个面包片,每切一片,对应一个波长

头文件里有flux and wavelength, 把这两组数据提取出来。

1. 给出某个波长的切片图

2. 给出某个像素点的谱线图

3. 用循环得到所有像素点的谱线图

 

import numpy as np
import matplotlib.pyplot as plt
from astropy.io import fits
# %matplotlib widget

cube = fits.open('manga-11863-1901-LINCUBE.fits')
flux = cube[1].data

image= flux[2500,:,:]
plt.imshow(image)
plt.show()

# read spectra from data cube at (x,y)
plt.figure()
spectra = flux[:,:,:]

for i in range(34):
    for j in range(34):
        plt.figure()
        plt.plot(spectra[:,i,j],label='x {} y {}'.format(i,j))
        plt.legend()
        plt.savefig(f'DC/spectra_{i}_{j}.png')

wav=cube[6].data
for i in range(34):
    for j in range(34):
        np.savetxt(f'DC_data/specta_{i}_{j}.csv',(wav,flux[:,i,j]),delimiter=',')

 

posted @ 2025-04-07 17:01  cql_astro  阅读(23)  评论(0)    收藏  举报