def plot_abundance(nh3_cont_fits,nh3_col_hdu,h2_col_hdu,region,plot_pars,maskLim,obsMaskFits):
text_size = 14
b18_text_size = 20
if region == 'B18':
text_size = b18_text_size
# Get protostellar locations
ra_prot, de_prot = get_prot_loc(region)
# Contour parameters (currently NH3 moment 0)
cont_color='0.6'
cont_lw = 0.6
cont_levs=2**np.arange( 0,20)*plot_param['w11_step']
# Calculate abundance
log_xnh3 = nh3_col_hdu[0].data - np.log10(h2_col_hdu.data)
log_xnh3_hdu = fits.PrimaryHDU(log_xnh3,nh3_col_hdu[0].header)
log_xnh3_hdu.writeto('../testing/{0}/parameterMaps/{0}_XNH3_{1}.fits'.format(region,file_extension),clobber=True)
fig=aplpy.FITSFigure(log_xnh3_hdu,figsize=(plot_param['size_x'], plot_param['size_y']))
fig.show_colorscale(cmap='YlOrRd_r',vmin=plot_param['xnh3_lim'][0],vmax=plot_param['xnh3_lim'][1])
#fig.set_nan_color('0.95')
# Observations mask contour
fig.show_contour(obsMaskFits,colors='white',levels=1,linewidths=1.5)
# NH3 moment contours
# Masking of small (noisy) regions
selem = np.array([[0,1,0],[1,1,1],[0,1,0]])
LowestContour = cont_levs[0]*0.5
w11_hdu = fits.open(nh3_cont_fits)
map = w11_hdu[0].data
mask = binary_opening(map > LowestContour, selem)
MaskedMap = mask*map
w11_hdu[0].data = MaskedMap
fig.show_contour(w11_hdu,colors=cont_color,levels=cont_levs,linewidths=cont_lw)
# Ticks
fig.ticks.set_color('black')
fig.tick_labels.set_font(family='sans_serif',size=text_size)
fig.tick_labels.set_xformat('hh:mm:ss')
fig.tick_labels.set_style('colons')
fig.tick_labels.set_yformat('dd:mm')
# Scale bar
ang_sep = (plot_param['scalebar_size'].to(u.au)/plot_param['distance']).to(u.arcsec, equivalencies=u.dimensionless_angles())
fig.add_colorbar()
fig.colorbar.show(box_orientation='horizontal', width=0.1, pad=0.0, location='top',
ticks=[-10,-9.5,-9,-8.5,-8,-7.5,-7,-6.5])
fig.colorbar.set_font(family='sans_serif',size=text_size)
fig.add_scalebar(ang_sep.to(u.degree))
fig.scalebar.set_font(family='sans_serif',size=text_size)
fig.scalebar.set_corner(plot_param['scalebar_pos'])
fig.scalebar.set(color='black')
fig.scalebar.set_label('{0:4.2f}'.format(plot_param['scalebar_size']))
label_colour = 'black'
fig.add_label(plot_param['label_xpos'], plot_param['label_ypos'],
'{0}\n{1}'.format(region,r'$\mathrm{log} \ X(\mathrm{NH}_3)$'),
relative=True, color=label_colour,
horizontalalignment=plot_param['label_align'],
family='sans_serif',size=text_size)
fig.save( 'figures/{0}_xnh3_image.pdf'.format(region),adjust_bbox=True,dpi=200)#, bbox_inches='tight')
# Add protostars
fig.show_markers(ra_prot,de_prot,marker='*',s=50,
c='white',edgecolors='black',linewidth=0.5,zorder=4)
fig.save( 'figures/{0}_xnh3_image_prot.pdf'.format(region),adjust_bbox=True,dpi=200)
fig.close()
GAS_Herschel_analysis.py 文件源码
python
阅读 33
收藏 0
点赞 0
评论 0
评论列表
文章目录