def save_other_target(img, center_QSO, other_target,target_name,c_psf_list,extra_psfs,ID=None,reg_ty=None,ifsave=True): fig = plt.figure(figsize=(15,15)) ax=fig.add_subplot(1,1,1) import copy, matplotlib my_cmap = copy.copy(matplotlib.cm.get_cmap('gist_heat')) # copy the default cmap my_cmap.set_bad('black') if reg_ty == None: vmax = 2.2 vmin = 1.e-2 QSO_box_size = 30 PSF_box_size = 20 elif reg_ty == 'astrodrz_06': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 60 PSF_box_size = 40 elif reg_ty == 'acs': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 100 PSF_box_size = 60 cax=ax.imshow(img,origin='lower', cmap=my_cmap, norm=LogNorm(), vmin=vmin, vmax=vmax) QSO_reg = pix_region(center_QSO, radius= QSO_box_size) QSO_mask = QSO_reg.to_mask(mode='center') ax.text(center_QSO[0]-2*QSO_box_size, center_QSO[1]+1.5*QSO_box_size, 'QSO',color='white', fontsize=20) ax.add_patch(QSO_mask.bbox.as_patch(facecolor='none', edgecolor='white', linewidth=2)) # setting for other target target_reg = pix_region(other_target, radius= PSF_box_size) target_mask = target_reg.to_mask(mode='center') ax.add_patch(target_mask.bbox.as_patch(facecolor='none', edgecolor='white', linewidth=2)) ax.text(other_target[0]-5*PSF_box_size, other_target[1]+2*PSF_box_size, '{0}'.format(target_name),color='white', fontsize=15) ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) # plt.colorbar(cax) count = 0 if c_psf_list is not None: for i in range(len(c_psf_list)): PSF_reg = pix_region(c_psf_list[i], radius= PSF_box_size) PSF_mask = PSF_reg.to_mask(mode='center') ax.add_patch(PSF_mask.bbox.as_patch(facecolor='none', edgecolor='blue', linewidth=2)) ax.text(c_psf_list[i][0]-2*PSF_box_size, c_psf_list[i][1]+2*PSF_box_size, 'PSF{0}'.format(count),color='white', fontsize=15) ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) count += 1 if extra_psfs is not None: for i in range(len(extra_psfs)): PSF_reg = pix_region(extra_psfs[i], radius= PSF_box_size) PSF_mask = PSF_reg.to_mask(mode='center') ax.add_patch(PSF_mask.bbox.as_patch(facecolor='none', edgecolor='yellow', linewidth=2)) ax.text(extra_psfs[i][0]-2*PSF_box_size, extra_psfs[i][1]+2*PSF_box_size, 'PSF{0}?'.format(count),color='white', fontsize=15) ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) count += 1 # plt.colorbar(cax) if not ID == None: ax.text(len(img)*0.05, len(img)*0.8, ID,color='white', fontsize=30) if ifsave == True: fig.savefig('QSO_PSF_loc.pdf')
def QSO_star_color(img, QSO_pos, QSO_mags, psf_list, mag_0, mag_1, mag_diff, ID, reg_ty='astrodrz_06', ifsave=False, label_shift_NO=(),shift_where=None): fig = plt.figure(figsize=(15,15)) ax=fig.add_subplot(1,1,1) import copy, matplotlib my_cmap = copy.copy(matplotlib.cm.get_cmap('gist_heat')) # copy the default cmap my_cmap.set_bad('black') if reg_ty == 'astrodrz_06': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 40 PSF_box_size = 40 elif reg_ty == 'acs': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 60 PSF_box_size = 60 ax.imshow(img,origin='lower', cmap=my_cmap, norm=LogNorm(), vmin=vmin, vmax=vmax) QSO_reg = pix_region(QSO_pos, radius= QSO_box_size) QSO_mask = QSO_reg.to_mask(mode='center') ax.text(QSO_pos[0]-4*QSO_box_size, QSO_pos[1]+2.6*QSO_box_size, 'QSO',color='white', fontsize=13) ax.text(QSO_pos[0]-1*QSO_box_size, QSO_pos[1]+3.6*QSO_box_size, '{0}'.format(round(QSO_mags[0],2)),color='yellow', fontsize=13) ax.text(QSO_pos[0]-1*QSO_box_size, QSO_pos[1]+2.6*QSO_box_size, '{0}'.format(round(QSO_mags[1],2)),color='c', fontsize=13) ax.text(QSO_pos[0]-1*QSO_box_size, QSO_pos[1]+1.6*QSO_box_size, '{0}'.format(round(QSO_mags[0]-QSO_mags[1],2)),color='white', fontsize=13) ax.add_patch(QSO_mask.bbox.as_patch(facecolor='none', edgecolor='white', linewidth=2)) count=0 count_shift = 0 for i in range(len(psf_list)): PSF_reg = pix_region(psf_list[i], radius= PSF_box_size) PSF_mask = PSF_reg.to_mask(mode='center') if count not in label_shift_NO: ax.add_patch(PSF_mask.bbox.as_patch(facecolor='none', edgecolor='blue', linewidth=2)) ax.text(psf_list[i][0]-4*PSF_box_size, psf_list[i][1]+2*PSF_box_size, 'PSF{0}'.format(count),color='white', fontsize=13) ax.text(psf_list[i][0]-1*PSF_box_size, psf_list[i][1]+3*PSF_box_size, '{0}'.format(round(mag_0[i],2)),color='yellow', fontsize=13) ax.text(psf_list[i][0]-1*PSF_box_size, psf_list[i][1]+2*PSF_box_size, '{0}'.format(round(mag_1[i],2)),color='c', fontsize=13) ax.text(psf_list[i][0]-1*PSF_box_size, psf_list[i][1]+1*PSF_box_size, '{0}'.format(round(mag_diff[i],2)),color='white', fontsize=13) ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) elif count in label_shift_NO: shift = shift_label_index(shift_where[count_shift]) ax.add_patch(PSF_mask.bbox.as_patch(facecolor='none', edgecolor='blue', linewidth=2)) ax.text(psf_list[i][0]+shift[0]*PSF_box_size, psf_list[i][1]+shift[1]*PSF_box_size, 'PSF{0}'.format(count),color='white', fontsize=13) ax.text(psf_list[i][0]+(shift[0]+3)*PSF_box_size, psf_list[i][1]+(shift[1]+1)*PSF_box_size, '{0}'.format(round(mag_0[i],2)),color='yellow', fontsize=13) ax.text(psf_list[i][0]+(shift[0]+3)*PSF_box_size, psf_list[i][1]+(shift[1]+0)*PSF_box_size, '{0}'.format(round(mag_1[i],2)),color='c', fontsize=13) ax.text(psf_list[i][0]+(shift[0]+3)*PSF_box_size, psf_list[i][1]+(shift[1]-1)*PSF_box_size, '{0}'.format(round(mag_diff[i],2)),color='white', fontsize=13) ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) count_shift += 1 count += 1 if not ID == None: ax.text(len(img)*0.05, len(img)*0.8, ID,color='white', fontsize=30) if ifsave == True: fig.savefig('PSF_color.pdf')
def QSO_star_mag(img, center_QSO, QSO_mag, psf_list,mag, ID=None, reg_ty='astrodrz_06', ifsave=False): fig = plt.figure(figsize=(15,15)) ax=fig.add_subplot(1,1,1) import copy, matplotlib my_cmap = copy.copy(matplotlib.cm.get_cmap('gist_heat')) # copy the default cmap my_cmap.set_bad('black') if reg_ty == None: vmax = 2.2 vmin = 1.e-2 QSO_box_size = 30 PSF_box_size = 20 elif reg_ty == 'astrodrz_06': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 60 PSF_box_size = 40 elif reg_ty == 'acs': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 100 PSF_box_size = 60 ax.imshow(img,origin='lower', cmap=my_cmap, norm=LogNorm(), vmin=vmin, vmax=vmax) QSO_reg = pix_region(center_QSO, radius= QSO_box_size) QSO_mask = QSO_reg.to_mask(mode='center') ax.text(center_QSO[0]-3*QSO_box_size, center_QSO[1]+1.5*QSO_box_size, 'QSO:',color='white', fontsize=15) ax.text(center_QSO[0]+0*QSO_box_size, center_QSO[1]+1.5*QSO_box_size, '{0}'.format(round(QSO_mag,2)),color='white', fontsize=15) ax.add_patch(QSO_mask.bbox.as_patch(facecolor='none', edgecolor='white', linewidth=2)) count=0 for i in range(len(psf_list)): PSF_reg = pix_region(psf_list[i], radius= PSF_box_size) PSF_mask = PSF_reg.to_mask(mode='center') ax.add_patch(PSF_mask.bbox.as_patch(facecolor='none', edgecolor='blue', linewidth=2)) ax.text(psf_list[i][0]-5*PSF_box_size, psf_list[i][1]+2*PSF_box_size, 'PSF{0}:'.format(count),color='white', fontsize=13) ax.text(psf_list[i][0]-1*PSF_box_size, psf_list[i][1]+2*PSF_box_size, '{0}'.format(round(mag[i],2)),color='c', fontsize=13) ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) count += 1 if not ID == None: ax.text(len(img)*0.05, len(img)*0.8, ID,color='white', fontsize=30) if ifsave == True: fig.savefig('PSF_mag.pdf')
def cut_image(image, center, radius): region = pix_region(center, radius=radius) cut = region.to_mask(mode='exact') cut_image = cut.cutout(image) return cut_image
def save_loc_png(img, center_QSO, c_psf_list=None, extra_psfs=None, ID=None, label=None, reg_ty=None, ifsave=True, label_shift_NO=(), shift_where=None, v_max=None, v_min=None): ''' label shift_where: 1,2,3,4 --- up, right, down, left ''' fig = plt.figure(figsize=(15, 15)) ax = fig.add_subplot(1, 1, 1) import copy, matplotlib my_cmap = copy.copy( matplotlib.cm.get_cmap('gist_heat')) # copy the default cmap my_cmap.set_bad('black') if reg_ty == None: vmax = 2.2 vmin = 1.e-2 QSO_box_size = 30 PSF_box_size = 20 elif reg_ty == 'astrodrz_06': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 60 PSF_box_size = 40 elif reg_ty == 'acs': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 100 PSF_box_size = 60 elif reg_ty == 'flt': vmax = 2.1 vmin = 1.e-3 QSO_box_size = 100 PSF_box_size = 60 if v_max != None: vmax = v_max if v_min != None: vmin = v_min cax = ax.imshow(img, origin='lower', cmap=my_cmap, norm=LogNorm(), vmin=vmin, vmax=vmax) QSO_reg = pix_region(center_QSO, radius=QSO_box_size) QSO_mask = QSO_reg.to_mask(mode='center') ax.text(center_QSO[0] - 2 * QSO_box_size, center_QSO[1] + 1.5 * QSO_box_size, 'QSO', color='white', fontsize=20) ax.add_patch( QSO_mask.bbox.as_artist(facecolor='none', edgecolor='white', linewidth=2)) count = 0 count_shift = 0 if label == None: name = 'PSF' elif label is not None: name = label if c_psf_list is not None: for i in range(len(c_psf_list)): PSF_reg = pix_region(c_psf_list[i], radius=PSF_box_size) PSF_mask = PSF_reg.to_mask(mode='center') ax.add_patch( PSF_mask.bbox.as_artist(facecolor='none', edgecolor='blue', linewidth=2)) if count not in label_shift_NO: ax.text(c_psf_list[i][0] - 2 * PSF_box_size, c_psf_list[i][1] + 2 * PSF_box_size, '{1}{0}'.format(count, name), color='white', fontsize=15) else: if count in label_shift_NO: shift = shift_label_index(shift_where[count_shift]) ax.text(c_psf_list[i][0] + shift[0] * PSF_box_size, c_psf_list[i][1] + shift[1] * PSF_box_size, '{1}{0}'.format(count, name), color='white', fontsize=15) count_shift += 1 ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) count += 1 # plt.colorbar(cax) if extra_psfs is not None: for i in range(len(extra_psfs)): PSF_reg = pix_region(extra_psfs[i], radius=PSF_box_size) PSF_mask = PSF_reg.to_mask(mode='center') ax.add_patch( PSF_mask.bbox.as_artist(facecolor='none', edgecolor='yellow', linewidth=2)) if count not in label_shift_NO: ax.text(extra_psfs[i][0] - 2 * PSF_box_size, extra_psfs[i][1] + 2 * PSF_box_size, '{1}{0}?'.format(count, name), color='white', fontsize=15) else: if count in label_shift_NO: shift = shift_label_index(shift_where[count_shift]) print(extra_psfs[i][0], shift[0] * PSF_box_size) ax.text(extra_psfs[i][0] + shift[0] * PSF_box_size, extra_psfs[i][1] + shift[1] * PSF_box_size, '{1}{0}?'.format(count, name), color='white', fontsize=15) count_shift += 1 ax.xaxis.set_visible(False) ax.yaxis.set_visible(False) count += 1 # plt.colorbar(cax) if not ID == None: ax.text(len(img) * 0.05, len(img) * 0.8, ID, color='white', fontsize=30) if ifsave == True: fig.savefig('QSO_{0}_loc.pdf'.format(name)) plt.show()