deliangwang的个人博客分享 http://blog.sciencenet.cn/u/deliangwang

博文

画出BPT图中的AGN分类线(IDL程序)

已有 4782 次阅读 2013-2-3 00:13 |个人分类:编程笔记|系统分类:科研笔记| 程序

Pro bpt_plot,thick=thick,charthick=charthick,charsize=charsize,select=select,xrange=xrange,yrange=yrange

;+
;NAME:
;     bpt_plot
;PURPOSE:
;     plot BPT digaram
;CALLING SEQUENCE:
;     BPT
;INPUT:
;     none
;OUTPUT:
;     none
;REVISION HISTORY:
;     Original by DL.Wang,Dec-05-2007
;      May-06-2008
;-

if not keyword_set(thick) then thick=1.5
if not keyword_set(charthick) then charthick=1.8
if not keyword_set(charsize) then charsize=1.5

if n_elements(select) eq 0 then begin
   print,'BPT digiam selection:'
   print,' 0:[OIII]/H Beta vs. [NII]/H Alpha'
   print,' 1:[OIII]/H Beta vs. [SII]/H Alpha'
   print,' 2:[OIII]/H Beta vs. [OI]/H Alpha'
   read,select
endif

case select of
0:begin
  a=tan(65.0/180.0*!pi)
  b=-0.5+0.45*a
  x1=findgen(200)*0.01-2.0
  x2=findgen(200)*0.01-0.35
  x3=findgen(240)*0.01-2.0
  if not keyword_set(xrange) then xrange=[-2.0,2.0]
  if not keyword_set(yrange) then yrange=[-2.0,2.0]
 ;plot line
  plot,x1,0.61/(x1-0.05)+1.3,linestyle=0,thick=thick,$ ; Kauffmann2003 line
  xrange=xrange,yrange=yrange,xstyle=1,ystyle=1,$
  charthick=charthick,charsize=1.2
  oplot,x3,0.61/(x3-0.47)+1.19,linestyle=2,thick=thick ; Kewley2001 line
  ;oplot,x2,a*x2+b,linestyle=3,thick=thick ; Seyferts & LINERs divided line

  xyouts,0.30,0.20,'H II',/normal,charthick=charthick,charsize=charsize
  xyouts,0.40,0.85,'Seyferts',/normal,charthick=charthick,charsize=charsize
  xyouts,0.80,0.50,'LINERs',/normal,charthick=charthick,charsize=charsize
  xyouts,0.50,0.20,'Transition',/normal,charthick=charthick,charsize=charsize
  
  xyouts,0.05,0.50,textoidl('lg ([O III]/H')+textoidl('\beta')+')',/normal,charthick=charthick,charsize=charsize,orientation=90.0
  xyouts,0.50,0.03,textoidl('lg ([N II]/H')+textoidl('\alpha')+')',/normal,charthick=charthick,charsize=charsize

  end
1:begin
  x1=findgen(215)*0.01-2.0
  x2=findgen(200)*0.01-0.30
  y1=0.72/(x1-0.32)+1.30
  y2=1.89*x2+0.76
  if not keyword_set(xrange) then xrange=[-2.0,2.0]
  if not keyword_set(yrange) then yrange=[-2.0,2.0]
  plot,x1,y1,linestyle=2,thick=thick,$        ; Kewley2001 line
  xrange=xrange,yrange=yrange,xstyle=1,ystyle=1,$
  charthick=charthick,charsize=1.2
  oplot,x2,y2,linestyle=3,thick=thick ; Seyferts & LINERs divided line

  xyouts,0.35,0.25,'H II',/normal,charthick=charthick,charsize=charsize
  xyouts,0.45,0.85,'Seyferts',/normal,charthick=charthick,charsize=charsize
  xyouts,0.75,0.50,'LINERs',/normal,charthick=charthick,charsize=charsize
  
  xyouts,0.05,0.50,textoidl('lg ([O III]/H')+textoidl('\beta')+')',/normal,charthick=charthick,charsize=charsize,orientation=90.0
  xyouts,0.50,0.03,textoidl('lg ([S II]/H')+textoidl('\alpha')+')',/normal,charthick=charthick,charsize=charsize

  end
2:begin
  x1=findgen(220)*0.01-3.0
  x2=findgen(200)*0.01-1.10
  y1=0.73/(x1+0.59)+1.33
  y2=1.18*x2+1.30
  if not keyword_set(xrange) then xrange=[-2.0,1.0]
  if not keyword_set(yrange) then yrange=[-2.0,2.0]
  plot,x1,y1,linestyle=2,thick=thick,$       ; Kewley2001 line
  xrange=xrange,yrange=yrange,xstyle=1,ystyle=1,$
  charthick=charthick,charsize=1.2
  oplot,x2,y2,linestyle=3,thick=thick ; Seyferts & LINERs divided line

  xyouts,0.35,0.25,'H II',/normal,charthick=charthick,charsize=charsize
  xyouts,0.45,0.85,'Seyferts',/normal,charthick=charthick,charsize=charsize
  xyouts,0.75,0.50,'LINERs',/normal,charthick=charthick,charsize=charsize
  
  xyouts,0.05,0.50,textoidl('lg ([O III]/H')+textoidl('beta')+')',/normal,charthick=charthick,charsize=charsize,orientation=90.0
  xyouts,0.50,0.03,textoidl('lg ([O I]/H')+textoidl('alpha')+')',/normal,charthick=charthick,charsize=charsize
  end

endcase

End


https://blog.sciencenet.cn/blog-456360-658957.html

上一篇:整理术的书籍
下一篇:窄发射线BPT分类AGN(IDL程序)
收藏 IP: 123.86.145.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 19:27

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部