Example #1
0
]
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'):
Example #2
0
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()
Example #3
0
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'))
Example #4
0
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))
Example #5
0
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
Example #6
0
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'),
Example #7
0
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):
Example #8
0
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'))
Example #9
0
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])))
Example #10
0
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'))
                                       "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')
Example #12
0
# 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)