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
'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):
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)
'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
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],
### 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
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)
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
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,