major = imhead(imagename=imagenames[1], mode="get", hdkey="beammajor")["value"] minor = imhead(imagename=imagenames[1], mode="get", hdkey="beamminor")["value"] pix = abs(imhead(imagename=imagenames[1], 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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() ### create momement maps for 12co10 myim.moment_maps(dir_data=dir_data, imagename=imagenames[0], chans="16~32", mask="mask_12CO10.mask", thres=rms_co10 * 0) ### create momement maps for 12co21 myim.moment_maps(dir_data=dir_data, imagename=imagenames[1], chans="16~32", mask="mask_12CO21.mask", thres=rms_co21 * 0)
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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() myim.moment_maps(dir_data=dir_data, imagename=imagenames[0], chans="5~80", mask="mask_eso148.mask", thres=0.002 * 6.5) # ESO 286 myim.createmask(dir_data=dir_data, imagename=imagenames[1].split("/")[-1], thres=0.002 * 8.0, outmask="mask_eso286.mask") outmask = dir_data + "mask_eso286.mask" os.system("cp -r " + outmask + " " + outmask + ".all") major = imhead(imagename=imagenames[1], mode="get", hdkey="beammajor")["value"] minor = imhead(imagename=imagenames[1], mode="get", hdkey="beamminor")["value"] pix = abs(imhead(imagename=imagenames[1], mode="list")["cdelt1"]) pixelsize = pix * 3600 * 180 / np.pi
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) object_slices = scipy.ndimage.find_objects(labeled) threshold = beamarea * pixelmin for i in range(j): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() ### create momement maps myim.moment_maps(dir_data=dir_data, imagename=dir_data + imagename, chans=chans, mask="datacube.mask", thres=rms * threshold_moment)
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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() ### create momement maps for c18o10 myim.moment_maps(dir_data=dir_data, imagename=imagenames[0], chans="1~11", mask="mask_C18O.mask", thres=0.00075 * 2.5) ### create momement maps for ch3oh myim.moment_maps(dir_data=dir_data, imagename=imagenames[1], chans="1~11", mask="mask_C18O.mask", thres=0.0007 * 2.5) ### create momement maps for cs21 myim.moment_maps(dir_data=dir_data, imagename=imagenames[2], chans="1~11", mask="mask_C18O.mask",
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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() myim.moment_maps(dir_data=dir_data, imagename=imagenames[0], chans="15~40", mask="mask_eso148_hcn.mask", thres=0.0005 * 2.7) # hco_plus43 myim.createmask(dir_data=dir_data, imagename=imagenames[1].split("/")[-1], thres=0.0006 * 2.3, outmask="mask_eso148_hco_plus.mask") outmask = dir_data + "mask_eso148_hco_plus.mask" os.system("cp -r " + outmask + " " + outmask + ".all") major = imhead(imagename=imagenames[1], mode="get", hdkey="beammajor")["value"] minor = imhead(imagename=imagenames[1], mode="get", hdkey="beamminor")["value"] pix = abs(imhead(imagename=imagenames[1], mode="list")["cdelt1"]) pixelsize = pix * 3600 * 180 / np.pi
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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() myim.moment_maps(dir_data=dir_data, imagename=imagename, chans=chans, mask=maskname, thres=thres2) ### NGC 1614 os.system("rm -rf " + dir_data + "mask2.image") imagename = imagenames[0] thres = 0.0014 * 2. thres2 = 0.0014 * 2.5 maskname = "ngc1614.mask" chans = "1~28" myim.createmask(dir_data=dir_data, imagename=imagename, thres=thres, outmask=maskname)
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", thres=rms_12co21 * 4.) myim.createmask(dir_data=dir_data, imagename=im_ci10.split("/")[-1],
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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() ### create momement maps for 12co10 myim.moment_maps(dir_data=dir_data, imagename=imagenames[0], chans="14~40", mask="mask_12CO.mask", thres=-10.) ### create momement maps for 12co21 myim.moment_maps(dir_data=dir_data, imagename=imagenames[1], chans="12~41", mask="mask_12CO.mask", thres=-10.) ### create momement maps for 13co10 myim.moment_maps(dir_data=dir_data, imagename=imagenames[2], chans="17~38", mask="mask_13CO.mask",
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], chans="17~38", mask="mask1.image", thres=-1.0) myim.moment_maps(dir_data=dir_data, imagename=imagenames[3], chans="16~40",
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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() ### create momement maps for 12co10 myim.moment_maps(dir_data=dir_data, imagename=imagenames[0], chans="18~75", mask="mask_12CO.mask", thres=rms_co * 3.0) myim.moment_maps(dir_data=dir_data, imagename=imagenames[1], chans="18~75", mask="mask_12CO.mask", thres=rms_co * 3.0) ### create momement maps for 12co21 myim.moment_maps(dir_data=dir_data, imagename=imagenames[2], chans="18~75", mask="mask_12CO.mask", thres=rms_co * 3.)
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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() ### create momement maps for CI10 myim.moment_maps(dir_data=dir_data, imagename=imagenames[1], chans="7~35", mask="mask_i18293.mask", thres=rms_i18293 * 5.5) # NGC 5104 myim.createmask(dir_data=dir_data, imagename=imagenames[2].split("/")[-1], thres=rms_n5104 * 3.0, outmask="mask_n5104.mask") outmask = dir_data + "mask_n5104.mask" os.system("cp -r " + outmask + " " + outmask + ".all") major = imhead(imagename=imagenames[2], mode="get", hdkey="beammajor")["value"] minor = imhead(imagename=imagenames[2], mode="get", hdkey="beamminor")["value"] pix = abs(imhead(imagename=imagenames[2], mode="list")["cdelt1"]) pixelsize = pix * 3600 * 180 / np.pi
# 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 for i in range(j): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() myim.moment_maps(dir_data=dir_data, imagename=imagenames[0], chans="0~16", mask="mask_irasf00182.mask", thres=0.00018 * 2.5)
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 for i in range(j): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() ### create momement maps for 12co21 myim.moment_maps(dir_data = dir_data, imagename = imagenames[0], chans = "55~310", mask = "mask_12CO.mask", thres = 3. * rms) os.system("rm -rf " + dir_data + "*immath") os.system("rm -rf " + dir_data + "*mask*")
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) threshold = beamarea * pixelmin for i in range(j): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() myim.moment_maps(dir_data = dir_data, imagename = dir_data + spw_cs76[k].split("/")[-1], chans = chan_cs76[k], mask = outmask, thres = rms_cs76[k] * 2.7) os.system("mv " + dir_data + spw_cs76[k].split("/")[-1]+".moment0 " + dir_data + spw_cs76[k].split("/")[-1].split("_AL2B6")[0] + "_cs76.moment0") os.system("mv " + dir_data + spw_cs76[k].split("/")[-1]+".moment1 " + dir_data + spw_cs76[k].split("/")[-1].split("_AL2B6")[0] + "_cs76.moment1") os.system("mv " + dir_data + spw_cs76[k].split("/")[-1]+".moment2 " + dir_data + spw_cs76[k].split("/")[-1].split("_AL2B6")[0] + "_cs76.moment2") fits_hcn = glob.glob(dir_data + "*hcn43*moment0*.fits") template_hcn = fits_hcn[0].replace(".fits", ".image") importfits(fitsimage = dir_data + fits_hcn[0], imagename = dir_data + template_hcn) imregrid(imagename = dir_data + spw_cs76[k].split("/")[-1].split("_AL2B6")[0] + "_cs76.moment0", template = template_hcn, output = dir_data + spw_cs76[k].split("/")[-1].split("_AL2B6")[0] + "_cs76.moment0.regrid", overwrite = True) imregrid(imagename = dir_data + spw_cs76[k].split("/")[-1].split("_AL2B6")[0] + "_cs76.moment1", template = template_hcn,
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): if myhistogram[i + 1] < threshold: mask[object_slices[i]] = 0 ia.putchunk(mask) ia.done() ### create momement maps for 12co10 myim.moment_maps(dir_data = dir_data, imagename = imagenames[0], chans = "14~40", mask = "mask_12CO.mask", thres = 0.0011 * 3.) ### create momement maps for 12co21 myim.moment_maps(dir_data = dir_data, imagename = imagenames[1], chans = "12~41", mask = "mask_12CO.mask", thres = 0.0007 * 2.5) ### create momement maps for 13co10 myim.moment_maps(dir_data = dir_data, imagename = imagenames[2],