spacetelescope / jdat_notebooks

JWST Data Analysis Tools Notebooks
https://spacetelescope.github.io/jdat_notebooks/
109 stars 85 forks source link

This is how you visualize cube_fitting data in Cubeviz (Jdaviz) #113

Open pllim opened 1 year ago

pllim commented 1 year ago

Try with:

from astropy import units as u
from astropy.io import fits
from astropy.nddata import StdDevUncertainty
from astropy.wcs import WCS
from specutils import Spectrum1D

from jdaviz import Cubeviz

data_label = 'M58_SL1_cube'  # Also works with SL2
sci_filename = f'{data_label}.fits'
unc_filename = f'{data_label}_unc.fits'

pf_sci = fits.open(sci_filename)
pf_unc = fits.open(unc_filename)

# Image has SIP distortion that will break loading,
# so we have to delete them. See
# https://docs.astropy.org/en/stable/wcs/note_sip.html
sip_list = ('A_ORDER', 'A_0_2', 'A_0_3', 'A_1_1', 'A_1_2', 'A_2_0', 'A_2_1', 'A_3_0', 'A_DMAX',
            'B_ORDER', 'B_0_2', 'B_0_3', 'B_1_1', 'B_1_2', 'B_2_0', 'B_2_1', 'B_3_0', 'B_DMAX',
            'AP_ORDER', 'AP_0_1', 'AP_0_2', 'AP_0_3', 'AP_1_0', 'AP_1_1', 'AP_1_2', 'AP_2_0', 'AP_2_1', 'AP_3_0',
            'BP_ORDER', 'BP_0_1', 'BP_0_2', 'BP_0_3', 'BP_1_0', 'BP_1_1', 'BP_1_2', 'BP_2_0', 'BP_2_1', 'BP_3_0')

for key in sip_list:
    del pf_sci[0].header[key]

w = WCS(pf_sci[0].header, pf_sci)

# If this is not StdDevUncertainty, change to use the correct representation.
# We just assume this already aligns with the SCI data file.
unc = StdDevUncertainty(pf_unc[0].data)

flux = pf_sci[0].data * u.Unit(pf_sci[0].header['BUNIT'])
sp = Spectrum1D(flux=flux, wcs=w, uncertainty=unc, meta=dict(pf_sci[0].header))

cubeviz = Cubeviz()

cubeviz.show()

cubeviz.load_data(sp, data_label=data_label)

# When you are all done. Only do this at the end of the session.
pf_sci.close()
pf_unc.close()

SL1

Screenshot 2022-12-22 115416

SL2

Screenshot 2022-12-22 120107

cc @PatrickOgle

🐱

camipacifici commented 3 months ago

@PatrickOgle do you still need this? Can we close it?