dir_data = "../data/"  # relative path to your data
pixelmin = 5.  # remove small mask reions smaller than beamsize * pixelmin
imagename = "hogehoge.image"  # your CASA cube name
rms = 0.001
threshold_mask = 2.  #threshold for masking: rms * threshold_mask
chans = "10~20"  # select channnels for immoments
threshold_moment = 3.  # thrshold for immomenths: rms * threshold_moment

#####################
### Main Procedure
#####################

### create cube mask
myim.createmask(dir_data=dir_data,
                imagename=imagename,
                thres=rms * threshold_mask,
                outmask="datacube.mask")

outmask = dir_data + "datacube.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=dir_data + imagename, mode="get",
               hdkey="beammajor")["value"]
minor = imhead(imagename=dir_data + imagename, mode="get",
               hdkey="beamminor")["value"]
pix = abs(imhead(imagename=dir_data + imagename, mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
               mode="put",
               hdkey="reffreqtype",
               hdvalue="BARY")
        imsmooth(imagename=imagename + ".trans",
                 kernel="gauss",
                 targetres=True,
                 major="1.8arcsec",
                 minor="1.8arcsec",
                 pa="0.0deg",
                 outfile=imagename + ".smooth")
        os.system("rm -rf " + imagename + " " + imagename + ".trans")

### create mask
imagenames = glob.glob(dir_data + "*.smooth")
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=0.00075 * 2.0,
                outmask="mask_C18O.mask")

outmask = dir_data + "mask_C18O.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagenames[0], mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagenames[0], mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagenames[0], mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
### hcn_eso148
dir_data = "../../hcn_ulirgs/hcn_eso148/"

os.system("rm -rf " + dir_data + "mask2.image")
os.system("rm -rf " + dir_data + "*moment*")
fitsimages = glob.glob(dir_data + "*_hc*.fits")
for i in range(len(fitsimages)):
    os.system("rm -rf " + fitsimages[i].replace(".fits", ".image"))
    importfits(fitsimage=fitsimages[i],
               imagename=fitsimages[i].replace(".fits", ".image"))

imagenames = glob.glob(dir_data + "*_hc*.image")

# hcn43
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=0.0005 * 2.3,
                outmask="mask_eso148_hcn.mask")

outmask = dir_data + "mask_eso148_hcn.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagenames[0], mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagenames[0], mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagenames[0], mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
示例#4
0
                       'Right Ascension', 'Declination', 'Stokes', 'Frequency'
                   ])

os.system("rm -rf " + dir_data + "mask2.image")
imagenames = glob.glob(dir_data + "*.image")

### NGC 6240
os.system("rm -rf " + dir_data + "mask2.image")
imagename = imagenames[3]
thres = 0.0011 * 2.
thres2 = 0.001 * 2.5
maskname = "ngc6240.mask"
chans = "20~81"

myim.createmask(dir_data=dir_data,
                imagename=imagename,
                thres=thres,
                outmask=maskname)
outmask = dir_data + maskname
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagename, mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagename, mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagename, mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
for i in range(j):
示例#5
0
         pa="0deg",
         box="118,118,393,393",
         outfile=images_cube[i] + ".smooth")

images_cube = glob.glob(dir_data + "*.image.smooth")
im_12co10 = images_cube[0]
im_12co21 = images_cube[1]
im_ci10 = images_cube[2]

rms_12co10 = 0.003
rms_12co21 = 0.0015
rms_ci10 = 0.007

### create mask for each moment map
myim.createmask(dir_data=dir_data,
                imagename=im_12co10.split("/")[-1],
                thres=rms_12co10 * 4.,
                outmask="12co10.mask")
myim.moment_maps(dir_data=dir_data,
                 imagename=im_12co10,
                 chans="18~75",
                 mask="12co10.mask",
                 thres=rms_12co10 * 4.)

myim.createmask(dir_data=dir_data,
                imagename=im_12co21.split("/")[-1],
                thres=rms_12co21 * 4.,
                outmask="12co21.mask")
myim.moment_maps(dir_data=dir_data,
                 imagename=im_12co21,
                 chans="18~75",
                 mask="12co21.mask",
    output = imagenames[i] + ".regrid"
    os.system("rm -rf " + output)
    imregrid(imagename=imagenames[i], template=imagenames[1], output=output)
    outfile = imagenames[i] + ".regrid.immath"
    os.system("rm -rf " + outfile)
    immath(imagename=output,
           mode="evalexpr",
           expr="IM0",
           box=box,
           outfile=outfile)
    os.system("rm -rf " + output)

### create cube mask for 12CO
imagenames = glob.glob(dir_data + "*.image.regrid.immath")
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=-10.,
                outmask="mask_12CO.mask")

outmask = dir_data + "mask_12CO.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagenames[0], mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagenames[0], mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagenames[0], mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
import sys
import glob
sys.path.append(os.getcwd() + "/../")
import mycasaimaging_tools as myim

dir_data = "../../phangs/co_ratio/"
im_12co10 = "m74co10_12m+7m+TP_feathered_robust_6kms_wmask_wmodel_pbcor.image.smooth.moment0"
im_12co21 = "m74co21_12m+7m+TP_feathered_2kms_robust_wmask_wmodel.image.regrid.smooth.moment0"

#####################
### Main Procedure
#####################
### create mask for each moment map
peak = imstat(dir_data + im_12co21)["max"][0]
myim.createmask(dir_data=dir_data,
                imagename=im_12co21,
                thres=0.05 * peak,
                outmask="mom_12co21.mask")
peak = imstat(dir_data + im_12co10)["max"][0]
myim.createmask(dir_data=dir_data,
                imagename=im_12co10,
                thres=0.05 * peak,
                outmask="mom_12co10.mask")

### create mask for line ratio map
outfile = dir_data + "R_12co21_12co10.mask"
os.system("rm -rf " + outfile)
immath(imagename=[dir_data + "mom_12co21.mask", dir_data + "mom_12co10.mask"],
       mode="evalexpr",
       expr="IM0 * IM1",
       outfile=outfile)
示例#8
0
                       'Right Ascension', 'Declination', 'Stokes', 'Frequency'
                   ])

os.system("rm -rf " + dir_data + "mask2.image")
imagenames = glob.glob(dir_data + "*.image.imsmooth")

### VV 114
os.system("rm -rf " + dir_data + "mask2.image")
imagename = imagenames[0]
thres = 0.004 * 1.
thres2 = 0.004 * 2.5
maskname = "vv114.mask"
chans = "1~64"

myim.createmask(dir_data=dir_data,
                imagename=imagename.split("/")[-1],
                thres=thres,
                outmask=maskname)
outmask = dir_data + maskname
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagename, mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagename, mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagename, mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
for i in range(j):
    importfits(fitsimage = fitsimages[i],
               imagename = \
                   fitsimages[i].replace(".fits",
                                         ".image"),
               defaultaxes = True,
               defaultaxesvalues = ['Right Ascension',
                                    'Declination',
                                    'Stokes',
                                    'Frequency'])

imagenames = glob.glob(dir_data + "*.image")

### create cube mask
# IRAS 18293
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=rms_i18293 * 5.,
                outmask="mask_i18293.mask")

outmask = dir_data + "mask_i18293.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagenames[0], mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagenames[0], mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagenames[0], mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
示例#10
0
sys.path.append(os.getcwd() + "/../")
import mycasaimaging_tools as myim

dir_data = "../../ngc3110/ana/datacube_LTE_uv_smooth/"
im_12co10 = "line_12co10_contsub_clean20_nat_uv_smooth.image.moment0"
im_12co21 = "line_12co21_contsub_clean20_nat_smooth.image.moment0"
im_13co10 = "line_13co10_contsub_clean20_nat_uv_smooth.image.moment0"
im_13co21 = "line_13co21_contsub_clean20_nat_smooth.image.moment0"

#####################
### Main Procedure
#####################
### create cube mask
imagenames = glob.glob(dir_data + "*.image")
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=-1.0)

### create momement maps
myim.moment_maps(dir_data=dir_data,
                 imagename=imagenames[0],
                 chans="14~40",
                 mask="mask1.image",
                 thres=-1.0)
myim.moment_maps(dir_data=dir_data,
                 imagename=imagenames[1],
                 chans="12~41",
                 mask="mask1.image",
                 thres=-1.0)
myim.moment_maps(dir_data=dir_data,
                 imagename=imagenames[2],
示例#11
0
### Main Procedure
#####################
os.system("rm -rf " + dir_data + "mask2.image")
os.system("rm -rf " + dir_data + "*moment*")
fitsimages = glob.glob(dir_data + "*.fits")
for i in range(len(fitsimages)):
    os.system("rm -rf " + fitsimages[i].replace(".fits", ".image"))
    importfits(fitsimage=fitsimages[i],
               imagename=fitsimages[i].replace(".fits", ".image"))

imagenames = glob.glob(dir_data + "*.image")

### create cube mask for 12CO
# ESO 148
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=0.00018 * 2.,
                outmask="mask_irasf00182.mask")

outmask = dir_data + "mask_irasf00182.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagenames[0], mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagenames[0], mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagenames[0], mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
示例#12
0
dir_data = "../../phangs/co_ratio/"
im_12co10 = "ngc4321_co10_12m+7m+tp_k.image.smooth.moment0"
im_12co21 = "ngc4321_co21_12m+7m+tp_pbcorr_round_k.image.regrid.smooth.moment0"

beta10 = 1.226 * 10**6. / 4.03 / 4.03 / 115.27120**2
rms_co10 = 0.012 * 5 * sqrt(53) * beta10
beta21 = 1.226 * 10**6. / 4.03 / 4.03 / 230.53800**2
rms_co21 = 0.02 * 5 * sqrt(53) * beta21

#####################
### Main Procedure
#####################
### create mask for each moment map
peak = imstat(dir_data + im_12co21)["max"][0]
myim.createmask(dir_data=dir_data,
                imagename=im_12co21,
                thres=rms_co21 * 2.5,
                outmask="mom_12co21.mask")
peak = imstat(dir_data + im_12co10)["max"][0]
myim.createmask(dir_data=dir_data,
                imagename=im_12co10,
                thres=rms_co10 * 2.5,
                outmask="mom_12co10.mask")

### create mask for line ratio map
outfile = dir_data + "R_12co21_12co10.mask"
os.system("rm -rf " + outfile)
immath(imagename=[dir_data + "mom_12co21.mask", dir_data + "mom_12co10.mask"],
       mode="evalexpr",
       expr="IM0 * IM1",
       outfile=outfile)
示例#13
0
pixelmin = 10.

#####################
### Main Procedure
#####################
spw_cs76 = glob.glob("../../hcn_ulirgs/hcn_*/*spw0*.fits")
spw_cs76.pop(0)
chan_cs76 = ["5~14", "0~9", "6~14", "2~15", "2~18"]
rms_cs76 = [0.0008, 0.0006, 0.0009, 0.0006, 0.0013]


for k in range(len(spw_cs76)):
    outmask = spw_cs76[k].split("/")[3].replace("hcn", "cs")
    dir_data = spw_cs76[k].split("/")[0] + "/" + spw_cs76[k].split("/")[1] + "/" + spw_cs76[k].split("/")[2] + "/" + spw_cs76[k].split("/")[3] + "/"
    myim.createmask(dir_data = dir_data,
                    imagename = spw_cs76[k].split("/")[-1],
                    thres = rms_cs76[k] * 2.5,
                    outmask = outmask)
    os.system("cp -r " + dir_data + outmask + " " + dir_data + outmask + ".all")
    major = imhead(imagename = spw_cs76[k],
                   mode = "get", hdkey = "beammajor")["value"]
    minor = imhead(imagename = spw_cs76[k],
                   mode = "get", hdkey = "beamminor")["value"]
    pix = abs(imhead(imagename = spw_cs76[k],
                     mode = "list")["cdelt1"])
    pixelsize = pix * 3600 * 180 / np.pi
    beamarea = (major * minor * np.pi/(4 * np.log(2))) / (pixelsize ** 2)
    ia.open(dir_data + outmask)
    mask = ia.getchunk()
    labeled, j = scipy.ndimage.label(mask)
    myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j+1 , j+1)
    object_slices = scipy.ndimage.find_objects(labeled)
    os.system("rm -rf " + imagenames[i] + ".smooth")
    imsmooth(imagename=imagenames[i],
             kernel="gauss",
             major="3.2arcsec",
             minor="3.2arcsec",
             pa="0.0deg",
             targetres=True,
             outfile=imagenames[i] + ".smooth")
    os.system("rm -rf " + imagenames[i])

### create cube mask
imagenames = glob.glob(dir_data + "m74*.smooth")

# co10
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=rms_co10 * 0,
                outmask="mask_12CO10.mask")

outmask = dir_data + "mask_12CO10.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagenames[0], mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagenames[0], mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagenames[0], mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
               imagename=fitsimages[i].replace(".fits", ".image"))

imagenames = glob.glob(dir_data + "*.image")

### regridding all data into the CI cube
for i in range(4):
    output = imagenames[i] + ".regrid"
    os.system("rm -rf " + output)
    imregrid(imagename=imagenames[i], template=imagenames[4], output=output)
    os.system("rm -rf " + imagenames[i])
    os.system("mv " + output + " " + imagenames[i])

### create cube mask
# CO(1-0)
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=rms_co * 2.5,
                outmask="mask_12CO.mask")

outmask = dir_data + "mask_12CO.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagenames[0], mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagenames[0], mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagenames[0], mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
### Main Procedure
#####################
os.system("rm -rf " + dir_data + "mask2.image")
os.system("rm -rf " + dir_data + "*moment*")
fitsimages = glob.glob(dir_data + "*.fits")
for i in range(len(fitsimages)):
    os.system("rm -rf " + fitsimages[i].replace(".fits", ".image"))
    importfits(fitsimage=fitsimages[i],
               imagename=fitsimages[i].replace(".fits", ".image"))

imagenames = glob.glob(dir_data + "*.image")

### create cube mask for 12CO
# ESO 148
myim.createmask(dir_data=dir_data,
                imagename=imagenames[0].split("/")[-1],
                thres=0.002 * 7.5,
                outmask="mask_eso148.mask")

outmask = dir_data + "mask_eso148.mask"
os.system("cp -r " + outmask + " " + outmask + ".all")
major = imhead(imagename=imagenames[0], mode="get", hdkey="beammajor")["value"]
minor = imhead(imagename=imagenames[0], mode="get", hdkey="beamminor")["value"]
pix = abs(imhead(imagename=imagenames[0], mode="list")["cdelt1"])
pixelsize = pix * 3600 * 180 / np.pi
beamarea = (major * minor * np.pi / (4 * np.log(2))) / (pixelsize**2)
ia.open(outmask)
mask = ia.getchunk()
labeled, j = scipy.ndimage.label(mask)
myhistogram = scipy.ndimage.measurements.histogram(labeled, 0, j + 1, j + 1)
object_slices = scipy.ndimage.find_objects(labeled)
threshold = beamarea * pixelmin
示例#17
0
import mycasaimaging_tools as myim


dir_data = "../../ngc3110/ana/datacube_line_uv_smooth/"
im_12co10 = "line_12co10_contsub_clean20_nat_uv_smooth.image.moment0"
im_12co21 = "line_12co21_contsub_clean20_nat_smooth.image.moment0"
im_13co10 = "line_13co10_contsub_clean20_nat_uv_smooth.image.moment0"
im_13co21 = "line_13co21_contsub_clean20_nat_smooth.image.moment0"

#####################
### Main Procedure
#####################
### create cube mask
imagenames = glob.glob(dir_data + "*.image")
myim.createmask(dir_data = dir_data,
                imagename = imagenames[0].split("/")[-1],
                thres = 0.0022)


### create momement maps
myim.moment_maps(dir_data = dir_data,
                 imagename = imagenames[0],
                 chans = "14~40",
                 mask = "mask1.image",
                 thres = 0.0033)
myim.moment_maps(dir_data = dir_data,
                 imagename = imagenames[1],
                 chans = "12~41",
                 mask = "mask1.image",
                 thres = 0.0021)
myim.moment_maps(dir_data = dir_data,