GAS_Herschel_analysis.py 文件源码

python
阅读 33 收藏 0 点赞 0 评论 0

项目:DR1_analysis 作者: GBTAmmoniaSurvey 项目源码 文件源码
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()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号