] cubes = [ hpath(x) for x in ( "H2CO_321220_to_303202_cube_bl.fits", "H2CO_321220_to_303202_cube_smooth_bl.fits", "APEX_H2CO_303_202_bl.fits", "APEX_H2CO_321_220_bl.fits", "APEX_H2CO_322_221_bl.fits", ) ] + [ mpath(x) for x in ( "APEX_13CO_2014_merge.fits", "APEX_C18O_2014_merge.fits", "APEX_H2CO_merge_high_plait_all.fits", ) ] + [molpath(x) for x in ("APEX_SiO_54_bl.fits", )] dendrograms = [hpath(x) for x in ("DendroMask_H2CO303202.hdf5", )] + [ tpath(x) for x in ( "fitted_line_parameters_Chi2Constraints.ipac", "PPV_H2CO_Temperature.ipac", ) ] if not os.path.isdir('cds'): os.mkdir('cds') if not os.path.isdir('cds/integrated'): os.mkdir('cds/integrated') if not os.path.isdir('cds/cubes'): os.mkdir('cds/cubes') if not os.path.isdir('cds/catalogs'):
blue = pl.mpl.colors.LinearSegmentedColormap( 'blue', { 'red': [(0, 0, 0), (1, 1, 1)], 'green': [(0, 0, 0), (1, 1, 1)], 'blue': [(0, 1, 1), (1, 1, 1)] }) if 'yt13co' not in locals(): cube13co = spectral_cube.SpectralCube.read( paths.mpath('APEX_13CO_2014_merge.fits')) yt13co = cube13co.with_mask(cube13co > 0.1).to_yt() mask = cube13co > 0.2 if 'cube_h2co303' not in locals(): cube_sio = SpectralCube.read(paths.molpath('APEX_SiO_54_bl.fits')) # HACK: mask._wcs = cube_sio.wcs ytsio = cube_sio.with_mask(mask).to_yt() cube_h2co303 = SpectralCube.read( paths.molpath('APEX_H2CO_303_202_bl.fits')) mask._wcs = cube_h2co303.wcs yth2co303 = cube_h2co303.with_mask(mask).to_yt() cube_h2co321 = SpectralCube.read( paths.molpath('APEX_H2CO_321_220_bl.fits')) mask._wcs = cube_h2co321.wcs yth2co321 = cube_h2co321.with_mask(mask).to_yt() #temcube = SpectralCube.read(paths.dpath('H2CO_321220_to_303202_cube_bl_temperature.fits')) #mask._wcs = temcube.wcs #yttem = temcube.with_mask(mask).to_yt()
coords = coordinates.SkyCoord(glon * u.deg, glat * u.deg, frame='galactic') P = pvextractor.Path(coords, width=300 * u.arcsec) vlos = glon * 0 # TODO: replace this dl = (glon[1:] - glon[:-1]) db = (glat[1:] - glat[:-1]) dist = (dl**2 + db**2)**0.5 cdist = np.zeros(dist.size + 1) cdist[1:] = dist.cumsum() molecules = ('13CO_2014_merge', 'C18O_2014_merge', 'H2CO_303_202_bl', 'SiO_54_bl') filenames = [ molpath('APEX_{0}.fits'.format(molecule)) for molecule in molecules ] molecules = molecules + ( 'H2CO_TemperatureFromRatio', 'H2CO_TemperatureFromRatio_smooth', 'H2CO_Ratio', 'H2CO_Ratio_smooth', #'H2CO_DendrogramTemperature', #'H2CO_DendrogramTemperature_smooth', #'H2CO_DendrogramTemperature_Leaves', #'H2CO_DendrogramTemperature_Leaves_smooth', ) filenames.append(hpath('TemperatureCube_PiecewiseFromRatio.fits')) filenames.append(hpath('TemperatureCube_smooth_PiecewiseFromRatio.fits')) filenames.append(hpath('H2CO_321220_to_303202_cube_bl.fits'))
import numpy as np from astropy import units as u from astropy import coordinates from astropy import wcs from astropy.io import ascii from paths import mpath,apath,fpath,molpath,hpath import pvextractor catalog = astropy_tabular_data(apath('fitted_line_parameters_Chi2Constraints.ipac'), format='ascii.ipac') catalog.label='FittedLineParameters' catalog.style.color = 'green' catalog.style.marker = 'o' cube = load_data(hpath('APEX_H2CO_303_202_bl.fits')) cube.label='H2CO 303/202' cube2 = load_data(molpath('APEX_SiO_54.fits')) cube2.label='SiO' cube3 = load_data(hpath('APEX_13CO_matched_H2CO.fits')) cube3.label='13CO' higaltem = load_data('/Users/adam/work/gc/gcmosaic_temp_conv36.fits') dc = DataCollection([cube, catalog, cube2, cube3, higaltem]) dc.merge(cube,cube2,cube3) dc.add_link(LinkSame(cube.id['Galactic Longitude'], catalog.id['GLON'])) dc.add_link(LinkSame(cube.id['Galactic Latitude'], catalog.id['GLAT'])) def ms_to_kms(x): return x/1e3 def kms_to_ms(x): return x*1e3 dc.add_link(LinkTwoWay(cube.id['Vrad'], catalog.id['center'], ms_to_kms, kms_to_ms))
import numpy as np from astropy import units as u from astropy import coordinates from astropy import wcs from astropy.io import ascii from paths import mpath, apath, fpath, molpath, hpath import pvextractor catalog = astropy_tabular_data( apath('fitted_line_parameters_Chi2Constraints.ipac'), format='ascii.ipac') catalog.label = 'FittedLineParameters' catalog.style.color = 'green' catalog.style.marker = 'o' cube = load_data(hpath('APEX_H2CO_303_202_bl.fits')) cube.label = 'H2CO 303/202' cube2 = load_data(molpath('APEX_SiO_54.fits')) cube2.label = 'SiO' cube3 = load_data(hpath('APEX_13CO_matched_H2CO.fits')) cube3.label = '13CO' higaltem = load_data('/Users/adam/work/gc/gcmosaic_temp_conv36.fits') dc = DataCollection([cube, catalog, cube2, cube3, higaltem]) dc.merge(cube, cube2, cube3) dc.add_link(LinkSame(cube.id['Galactic Longitude'], catalog.id['GLON'])) dc.add_link(LinkSame(cube.id['Galactic Latitude'], catalog.id['GLAT'])) def ms_to_kms(x): return x / 1e3
F = aplpy.FITSFigure( '/Users/adam/Dropbox/SMA_CMZ_FITS_files/gcmosaic_column_conv25.fits', convention='calabretta') F.show_colorscale(cmap=cm.hot_r, vmax=100, vmin=0, vmid=-2.5, stretch='log') F.recenter(0.6, -0.1, height=0.5, width=2.6) F.show_contour(paths.mpath('coverage_bool.fits'), levels=[0.5], colors=['b'], convention='calabretta') F.set_tick_labels_xformat('d.dd') F.set_tick_labels_yformat('d.dd') F.save(paths.fpath('coverage_on_herschel.png'), dpi=150) F.save(paths.fpath('coverage_on_herschel.pdf'), dpi=150) F.remove_layer('contour_set_1') F.show_contour(paths.molpath('APEX_H2CO_303_202_smooth_bl_mask_integ.fits'), levels=[5, 10, 20, 50], colors=['b'], convention='calabretta') F.save(paths.fpath('H2CO_on_herschel.png'), dpi=150) F.save(paths.fpath('H2CO_on_herschel.pdf'), dpi=150) F.remove_layer('contour_set_2') F.show_contour(paths.molpath('APEX_SiO_54_smooth_mask_integ.fits'), levels=[2, 5, 10], colors=['g'], convention='calabretta') F.save(paths.fpath('SiO_on_herschel.png'), dpi=150) F.save(paths.fpath('SiO_on_herschel.pdf'), dpi=150) F.remove_layer('contour_set_3') F.show_contour(paths.molpath('APEX_13CO_smooth_mask_integ.fits'),
green = pl.mpl.colors.LinearSegmentedColormap('green', {'red':[(0,0,0),(1,1,1)], 'green':[(0,1,1),(1,1,1)], 'blue':[(0,0,0),(1,1,1)]}) blue = pl.mpl.colors.LinearSegmentedColormap('blue', {'red':[(0,0,0),(1,1,1)], 'green':[(0,0,0),(1,1,1)], 'blue':[(0,1,1),(1,1,1)]}) if 'yt13co' not in locals(): cube13co = spectral_cube.SpectralCube.read(paths.mpath('APEX_13CO_2014_merge.fits')) yt13co = cube13co.with_mask(cube13co>0.1).to_yt() mask = cube13co>0.2 if 'cube_h2co303' not in locals(): cube_sio = SpectralCube.read(paths.molpath('APEX_SiO_54_bl.fits')) # HACK: mask._wcs = cube_sio.wcs ytsio = cube_sio.with_mask(mask).to_yt() cube_h2co303 = SpectralCube.read(paths.molpath('APEX_H2CO_303_202_bl.fits')) mask._wcs = cube_h2co303.wcs yth2co303 = cube_h2co303.with_mask(mask).to_yt() cube_h2co321 = SpectralCube.read(paths.molpath('APEX_H2CO_321_220_bl.fits')) mask._wcs = cube_h2co321.wcs yth2co321 = cube_h2co321.with_mask(mask).to_yt() #temcube = SpectralCube.read(paths.dpath('H2CO_321220_to_303202_cube_bl_temperature.fits')) #mask._wcs = temcube.wcs #yttem = temcube.with_mask(mask).to_yt() def isosurfaces(yt13co):
vmin,vmax=10,200 def offset_to_point(glon, glat): """ Determine the offset along the orbit to the nearest point on an orbit to the specified point """ import shapely.geometry as geom line = geom.LineString(table['l','b']) point = geom.Point(glon, glat) return line.project(point) molecules = ('13CO_2014_merge', 'C18O_2014_merge', 'H2CO_303_202_bl', 'SiO_54_bl') filenames = [molpath('APEX_{0}.fits'.format(molecule)) for molecule in molecules] molecules = molecules + ( 'H2CO_Ratio', #'H2CO_Ratio_smooth', 'H2CO_TemperatureFromRatio', #'H2CO_TemperatureFromRatio_smooth', #'H2CO_DendrogramTemperature', #'H2CO_DendrogramTemperature_smooth', #'H2CO_DendrogramTemperature_Leaves', #'H2CO_DendrogramTemperature_Leaves_smooth' ) # make_piecewise_temcube: #filenames.append(hpath('TemperatureCube_PiecewiseFromRatio.fits')) #filenames.append(hpath('TemperatureCube_smooth_PiecewiseFromRatio.fits'))
import pylab as pl import glob from astropy.io import fits import aplpy import paths import os if not os.path.isdir(paths.molpath('integ_imgs')): os.mkdir(paths.molpath('integ_imgs')) fig1 = pl.figure(1) for fn in glob.glob(paths.molpath("*integ.fits")): hdr = fits.getheader(fn) if hdr['CRVAL2'] == 0: fig1.clf() F = aplpy.FITSFigure(fn, convention='calabretta', figure=fig1) F.show_colorscale(cmap=pl.cm.hot) F.save(paths.molpath('integ_imgs/{0}.pdf').format(os.path.basename(fn[:-5])))
"pv_H2CO_321220_to_303202_bl_integ_weighted_temperature_dens3e4.fits", ) ] cubes = [hpath(x) for x in ("H2CO_321220_to_303202_cube_bl.fits", "H2CO_321220_to_303202_cube_smooth_bl.fits", "APEX_H2CO_303_202_bl.fits", "APEX_H2CO_321_220_bl.fits", "APEX_H2CO_322_221_bl.fits", ) ] + [mpath(x) for x in ("APEX_13CO_2014_merge.fits", "APEX_C18O_2014_merge.fits", "APEX_H2CO_merge_high_plait_all.fits", ) ] + [molpath(x) for x in ("APEX_SiO_54_bl.fits",) ] dendrograms = [hpath(x) for x in ("DendroMask_H2CO303202.hdf5",) ] + [tpath(x) for x in ("fitted_line_parameters_Chi2Constraints.ipac", "PPV_H2CO_Temperature.ipac", ) ] if not os.path.isdir('cds'): os.mkdir('cds')
# create "coverage" mask map covgf = fits.open(paths.mpath('APEX_H2CO_merge_high_nhits.fits')) covgf[0].data = (covgf[0].data > 0.05).astype('int') covgf.writeto(paths.mpath('coverage_bool.fits'),clobber=True) F = aplpy.FITSFigure('/Users/adam/Dropbox/SMA_CMZ_FITS_files/gcmosaic_column_conv25.fits',convention='calabretta') F.show_colorscale(cmap=cm.hot_r,vmax=100,vmin=0, vmid=-2.5, stretch='log') F.recenter(0.6,-0.1,height=0.5,width=2.6) F.show_contour(paths.mpath('coverage_bool.fits'),levels=[0.5], colors=['b'], convention='calabretta') F.set_tick_labels_xformat('d.dd') F.set_tick_labels_yformat('d.dd') F.save(paths.fpath('coverage_on_herschel.png'),dpi=150) F.save(paths.fpath('coverage_on_herschel.pdf'),dpi=150) F.remove_layer('contour_set_1') F.show_contour(paths.molpath('APEX_H2CO_303_202_smooth_bl_mask_integ.fits'), levels=[5,10,20,50], colors=['b'], convention='calabretta') F.save(paths.fpath('H2CO_on_herschel.png'),dpi=150) F.save(paths.fpath('H2CO_on_herschel.pdf'),dpi=150) F.remove_layer('contour_set_2') F.show_contour(paths.molpath('APEX_SiO_54_smooth_mask_integ.fits'), levels=[2,5,10], colors=['g'], convention='calabretta') F.save(paths.fpath('SiO_on_herschel.png'),dpi=150) F.save(paths.fpath('SiO_on_herschel.pdf'),dpi=150) F.remove_layer('contour_set_3') F.show_contour(paths.molpath('APEX_13CO_smooth_mask_integ.fits'), levels=[10,50,100,200], colors=['c'], convention='calabretta') F.save(paths.fpath('13CO_on_herschel.png'),dpi=150) F.save(paths.fpath('13CO_on_herschel.pdf'),dpi=150)