Commit dc72d0b6328c283f033eef348d9588949cfe3912

Authored by Ilyes Choubani
1 parent b7f936fc
Exists in master

initial procedures to plot polsed and polext seperately

src/idl/dustem_compute_polext.pro
@@ -6,8 +6,8 @@ FUNCTION dustem_compute_polext ,p_dim,sti,_extra=extra,out_st=out_st,dustem_qext @@ -6,8 +6,8 @@ FUNCTION dustem_compute_polext ,p_dim,sti,_extra=extra,out_st=out_st,dustem_qext
6 ;written to homogonize DustEM 6 ;written to homogonize DustEM
7 7
8 IF not keyword_set(sti) THEN BEGIN 8 IF not keyword_set(sti) THEN BEGIN
  9 + dustem_activate_plugins,p_dim/(*(*!dustem_fit).param_init_values)
9 sti=dustem_run(p_dim) 10 sti=dustem_run(p_dim)
10 - dustem_activate_plugins,p_dim/(*(*!dustem_fit).param_init_values),res=res,sti  
11 ENDIF 11 ENDIF
12 12
13 13
@@ -20,31 +20,39 @@ If ptr_valid(*!dustem_plugin) THEN BEGIN @@ -20,31 +20,39 @@ If ptr_valid(*!dustem_plugin) THEN BEGIN
20 ;endif 20 ;endif
21 ;------------------------------------------ 21 ;------------------------------------------
22 22
23 - ;MODIFYING SPECTRUM VIA PLUGIN-------------- THIS BLOCK NEEDS TO BE UNDER THE DUSTEM_POLSED LINE  
24 -  
25 - for i=0L,n_tags(*!dustem_scope)-1 do begin  
26 -  
27 - if total(strsplit((*(*!dustem_scope).(i)),'+',/extract) eq 'MODIFY_POLEXT') then begin  
28 -  
29 - ;making sure it's the stokes plugin that gets used here  
30 -  
31 - iidx=where(tag_names(*!dustem_scope) eq 'STEXT') 23 +
  24 +; ;=============================THIS BLOCK IS WRONG YOU HAVE TO CHANGE IT=============================
  25 +;
  26 +;
  27 +; ;MODIFYING SPECTRUM VIA PLUGIN-------------- THIS BLOCK NEEDS TO BE UNDER THE DUSTEM_POLSED LINE
  28 +;
  29 +; for i=0L,n_tags(*!dustem_scope)-1 do begin
  30 +;
  31 +; if total(strsplit((*(*!dustem_scope).(i)),'+',/extract) eq 'MODIFY_POLEXT') then begin
  32 +;
  33 +; ;making sure it's the stokes plugin that gets used here
  34 +;
  35 +; iidx=where(tag_names(*!dustem_scope) eq 'STEXT')
  36 +;
  37 +;
  38 +; IF iidx eq i THEN BEGIN ;not sure about this condition but you get the spirit
  39 +;
  40 +; Q_ext=(*(*!dustem_plugin).(i))(0:n_elements((*(*!dustem_plugin).(i)))/2-1)
  41 +; U_ext=(*(*!dustem_plugin).(i))(n_elements((*(*!dustem_plugin).(i)))/2:*)
  42 +; dustem_qext=interpol(Q_ext,sti.polext.wav,(*!dustem_data.polext).wav)
  43 +; dustem_uext=interpol(U_ext,sti.polext.wav,(*!dustem_data.polext).wav)
  44 +;
  45 +; endif
  46 +; endif
  47 +; endfor
  48 +; ;endif
  49 +; ;-------------------------------------------
  50 +; ;=======================================================================================================
32 51
  52 +ENDIF
33 53
34 - IF iidx eq i THEN BEGIN ;not sure about this condition but you get the spirit  
35 54
36 - Q_ext=(*(*!dustem_plugin).(i))(0:n_elements((*(*!dustem_plugin).(i)))/2-1)  
37 - U_ext=(*(*!dustem_plugin).(i))(n_elements((*(*!dustem_plugin).(i)))/2:*)  
38 - dustem_qext=interpol(Q_ext,sti.polext.wav,(*!dustem_data.polext).wav)  
39 - dustem_uext=interpol(U_ext,sti.polext.wav,(*!dustem_data.polext).wav)  
40 -  
41 - endif  
42 - endif  
43 - endfor  
44 - ;endif  
45 - ;-------------------------------------------  
46 55
47 -ENDIF  
48 dustem_polext = interpol(sti.polext.ext_tot,sti.polext.wav,(*!dustem_data.polext).wav) 56 dustem_polext = interpol(sti.polext.ext_tot,sti.polext.wav,(*!dustem_data.polext).wav)
49 57
50 58
src/idl/dustem_plot_fit_sed.pro
@@ -167,13 +167,13 @@ IF count_filt NE 0 THEN BEGIN @@ -167,13 +167,13 @@ IF count_filt NE 0 THEN BEGIN
167 plotsym,8 167 plotsym,8
168 xx=((*!dustem_data.sed).wav)[ind_filt] 168 xx=((*!dustem_data.sed).wav)[ind_filt]
169 yy=sed[ind_filt]/norm[ind_filt] 169 yy=sed[ind_filt]/norm[ind_filt]
170 - cgoplot,xx,yy,color=use_col_sed_filt,psym=8,syms=2 170 + cgoplot,xx,yy,color=use_col_sed_filt,psym=6,syms=2
171 ENDIF 171 ENDIF
172 IF count_spec NE 0 THEN BEGIN 172 IF count_spec NE 0 THEN BEGIN
173 plotsym,0 173 plotsym,0
174 xx=((*!dustem_data.sed).wav)[ind_spec] 174 xx=((*!dustem_data.sed).wav)[ind_spec]
175 yy=sed[ind_spec]/norm[ind_spec] 175 yy=sed[ind_spec]/norm[ind_spec]
176 - cgoplot,xx,yy,color=use_col_sed_spec,psym=8,syms=0.5 176 + cgoplot,xx,yy,color=use_col_sed_filt,psym=6,syms=2
177 ENDIF 177 ENDIF
178 178
179 179
@@ -247,11 +247,15 @@ IF keyword_set(res) THEN BEGIN @@ -247,11 +247,15 @@ IF keyword_set(res) THEN BEGIN
247 str=str+textoidl(' \pm ')+string(errors(i),format=frmt1) 247 str=str+textoidl(' \pm ')+string(errors(i),format=frmt1)
248 ENDIF 248 ENDIF
249 249
250 - IF STRUPCASE(strmid(strtrim(parameter_description,2),0,6)) eq 'DUSTEM' THEN BEGIN  
251 -  
252 xxpos=use_legend_xpos*0.07 250 xxpos=use_legend_xpos*0.07
253 yypos=use_legend_ypos*0.03 251 yypos=use_legend_ypos*0.03
254 xyouts,xxpos,yypos,'Model: '+!dustem_model,color=0,/normal,charsize=legend_charsize 252 xyouts,xxpos,yypos,'Model: '+!dustem_model,color=0,/normal,charsize=legend_charsize
  253 +
  254 + IF STRUPCASE(strmid(strtrim(parameter_description,2),0,6)) eq 'DUSTEM' THEN BEGIN
  255 +
  256 +; xxpos=use_legend_xpos*0.07
  257 +; yypos=use_legend_ypos*0.03
  258 +; xyouts,xxpos,yypos,'Model: '+!dustem_model,color=0,/normal,charsize=legend_charsize
255 259
256 xxpos=use_legend_xpos*0.75 260 xxpos=use_legend_xpos*0.75
257 yypos=use_legend_ypos*1.03 261 yypos=use_legend_ypos*1.03
src/idl/dustem_plot_polext.pro
1 -PRO dustem_plot_polext, st, p_dim, aligned=aligned 1 +PRO dustem_plot_polext,st,p_dim,dustem_polext,aligned=aligned,win=win
2 2
3 IF keyword_set(ps) THEN BEGIN 3 IF keyword_set(ps) THEN BEGIN
4 set_plot, 'PS' 4 set_plot, 'PS'
@@ -9,15 +9,35 @@ ENDIF ELSE BEGIN @@ -9,15 +9,35 @@ ENDIF ELSE BEGIN
9 ENDELSE 9 ENDELSE
10 10
11 11
12 -fact = (3.e10/(1.e-4*(st.polsed.wav)))/1.d40  
13 -fact1 = (3.e10/(1.e-4*((*!dustem_data.qsed).wav)))/1.d40 12 +titstq='Polarization Cross-section in extinction'
  13 +ytitstq=textoidl('\sigma_{pol} (cm^2/H) for N_H=10^{20} H/cm^2')
  14 +xtit=textoidl('\lambda^{-1} (\mum^{-1})')
  15 +xr=[1e-4,5.0]
  16 +yr=[1e-5,2.]
  17 +Ngrains=(*!dustem_params).Ngrains
  18 +Nwaves=(size(st.polext.ext_tot))[1]
14 19
  20 +fact=1E+01
  21 +Pext=st.polext.ext_tot*fact
  22 +normpol1=dustem_polext*fact
15 23
16 -for i = 0, Ngrains-1 do begin  
17 - if aligned(i) then cgoplot,st.polsed.wav,st.polsed.(i+1)*fact/normpol,color=colors(i+1),psym=psym,line=ls(i+1) ;investigate this line of the plotting of the different components in polarization  
18 -endfor  
19 - 24 +if not keyword_set(st) then begin
  25 + ;activate the plugins here
  26 + st=dustem_run(p_dim)
  27 + dustem_polext = dustem_compute_polext(p_dim,st,dustem_qext,dustem_uext,Q_ext,U_ext)
  28 +ENDIF
20 29
  30 +ylog=1.
  31 +cgplot,1/st.polext.wav,Pext,xtit='',ytit=ytitstq,tit=titstq,ylog=ylog,/xlog,xr=xr,yr=yr,/ys,/xs,position=[0.17,0.35,0.93,0.93],xtickformat='(A1)',charsize=1.3
  32 +cgoplot,1/st.polext.wav,Pext,color='black'
  33 +cgoplot,1/(*!dustem_data.polext).wav,(*!dustem_data.polext).values*fact,color='Tomato',psym=16,symsize=1,thick=2
  34 +err_bar,1/(*!dustem_data.polext).wav,(*!dustem_data.polext).values*fact,yrms=3.*((*!dustem_data.polext).sigma)/2.*fact,color=cgColor('Tomato')
  35 +cgoplot,1/(*!dustem_data.polext).wav,dustem_polext*fact,psym=6,color='red',symsize=0;2
  36 +
  37 +cgplot,1/st.polext.wav,Pext/Pext,xtit=xtit,ytit='Normalized',tit='',/xlog,xr=xr,/ys,/xs,yr=[0,2],ylog=0,position=[0.17,0.14,0.93,0.35],/noerase,yticks=2,ymino=5,xticklen=0.1,ytickformat='(F6.2)',charsize=1.3
  38 +cgoplot,1/st.polext.wav,Pext/Pext,color='black'
  39 +cgoplot,1/(*!dustem_data.polext).wav,(*!dustem_data.polext).values*fact/normpol1,color='Tomato',psym=16,symsize=1,thick=2
  40 +err_bar,1/(*!dustem_data.polext).wav,(*!dustem_data.polext).values*fact/normpol1,yrms=3.*((*!dustem_data.polext).sigma)/2./normpol1*fact,color=cgColor('Tomato')
21 41
22 42
23 IF keyword_set(ps) THEN BEGIN 43 IF keyword_set(ps) THEN BEGIN
src/idl/dustem_plot_polsed.pro
@@ -14,12 +14,19 @@ ENDELSE @@ -14,12 +14,19 @@ ENDELSE
14 ;This is because the default procedures for dustem 14 ;This is because the default procedures for dustem
15 15
16 titstq='Polarization Intensity' 16 titstq='Polarization Intensity'
17 -ytitstq=textoidl('P_\nu (W/m^2/sr) for N_H=10^20 H/cm^2') 17 +ytitstq=textoidl('P_\nu (W/m^2/sr) for N_H=10^{20} H/cm^2')
18 xtit=textoidl('\lambda (\mum)') 18 xtit=textoidl('\lambda (\mum)')
19 xr=[10,2e4] 19 xr=[10,2e4]
20 yr=[1e-30,1e-19] 20 yr=[1e-30,1e-19]
21 Ngrains=(*!dustem_params).Ngrains 21 Ngrains=(*!dustem_params).Ngrains
22 Nwaves=(size(st.polsed.em_tot))[1] 22 Nwaves=(size(st.polsed.em_tot))[1]
  23 +
  24 +
  25 +if not keyword_set(st) then begin
  26 + ;activate the plugins here
  27 + st=dustem_run(p_dim)
  28 + dustem_polsed = dustem_compute_polsed(p_dim,st)
  29 +ENDIF
23 30
24 31
25 fact=1/(4.*!pi)/(3.e8/1.e-6/(st.polsed).wav)*1.00e17 32 fact=1/(4.*!pi)/(3.e8/1.e-6/(st.polsed).wav)*1.00e17
@@ -74,6 +81,7 @@ ENDIF @@ -74,6 +81,7 @@ ENDIF
74 81
75 normpol1=dustem_polsed*fact1 82 normpol1=dustem_polsed*fact1
76 normpol=P 83 normpol=P
  84 +;normpol=P*0.+1. ;and then use this to plot the normalized data
77 85
78 ; for i = 0, Ngrains-1 do begin 86 ; for i = 0, Ngrains-1 do begin
79 ; if aligned(i) then cgoplot,st.polsed.wav,st.polsed.(i+1)*fact/normpol,color=colors(i+1),psym=psym,line=ls(i+1) ;investigate this line of the plotting of the different components in polarization 87 ; if aligned(i) then cgoplot,st.polsed.wav,st.polsed.(i+1)*fact/normpol,color=colors(i+1),psym=psym,line=ls(i+1) ;investigate this line of the plotting of the different components in polarization
@@ -83,14 +91,14 @@ normpol=P @@ -83,14 +91,14 @@ normpol=P
83 ylog=1. 91 ylog=1.
84 cgplot,st.polsed.wav,P,xtit='',ytit=ytitstq,tit=titstq,ylog=ylog,/xlog,xr=xr,yr=yr,/ys,/xs,position=[0.17,0.35,0.93,0.93],xtickformat='(A1)',charsize=1.3 92 cgplot,st.polsed.wav,P,xtit='',ytit=ytitstq,tit=titstq,ylog=ylog,/xlog,xr=xr,yr=yr,/ys,/xs,position=[0.17,0.35,0.93,0.93],xtickformat='(A1)',charsize=1.3
85 cgoplot,st.polsed.wav,P,color='black' 93 cgoplot,st.polsed.wav,P,color='black'
86 -cgoplot,(*!dustem_data.polsed).wav,(*!dustem_data.polsed).values*1E-20,color='Tomato',psym=16,symsize=1,thick=2  
87 -err_bar,(*!dustem_data.polsed).wav,(*!dustem_data.polsed).values*1E-20,yrms=3.*((*!dustem_data.polsed).sigma)/2.*1E-20,color=cgColor('Tomato') 94 +cgoplot,(*!dustem_data.polsed).wav,(*!dustem_data.polsed).values*fact1,color='Tomato',psym=16,symsize=1,thick=2
  95 +err_bar,(*!dustem_data.polsed).wav,(*!dustem_data.polsed).values*fact1,yrms=3.*((*!dustem_data.polsed).sigma)/2.*fact1,color=cgColor('Tomato')
88 cgoplot,(*!dustem_data.polsed).wav,dustem_polsed*fact1,psym=6,color='red',symsize=2 96 cgoplot,(*!dustem_data.polsed).wav,dustem_polsed*fact1,psym=6,color='red',symsize=2
89 97
90 cgplot,st.polsed.wav,P/P,xtit=xtit,ytit='Normalized',tit='',/xlog,xr=xr,/ys,/xs,yr=[0,2],ylog=0,position=[0.17,0.14,0.93,0.35],/noerase,yticks=2,ymino=5,xticklen=0.1,ytickformat='(F6.2)',charsize=1.3 98 cgplot,st.polsed.wav,P/P,xtit=xtit,ytit='Normalized',tit='',/xlog,xr=xr,/ys,/xs,yr=[0,2],ylog=0,position=[0.17,0.14,0.93,0.35],/noerase,yticks=2,ymino=5,xticklen=0.1,ytickformat='(F6.2)',charsize=1.3
91 cgoplot,st.polsed.wav,P/P,color='black' 99 cgoplot,st.polsed.wav,P/P,color='black'
92 -cgoplot,(*!dustem_data.polsed).wav,(*!dustem_data.polsed).values*1E-20/normpol1,color='Tomato',psym=16,symsize=1,thick=2  
93 -err_bar,(*!dustem_data.polsed).wav,(*!dustem_data.polsed).values*1E-20/normpol1,yrms=3.*((*!dustem_data.polsed).sigma)/2./normpol1*1E-20,color=cgColor('Tomato') 100 +cgoplot,(*!dustem_data.polsed).wav,(*!dustem_data.polsed).values*fact1/normpol1,color='Tomato',psym=16,symsize=1,thick=2
  101 +err_bar,(*!dustem_data.polsed).wav,(*!dustem_data.polsed).values*fact1/normpol1,yrms=3.*((*!dustem_data.polsed).sigma)/2./normpol1*1E-20,color=cgColor('Tomato')
94 102
95 ;stop 103 ;stop
96 104
src/idl/dustem_sed_plot.pro
1 PRO dustem_sed_plot,p_min,_extra=_extra,function_name=function_name,pol=pol,legend_xpos=legend_xpos,legend_ypos=legend_ypos,ps=ps,png=png 1 PRO dustem_sed_plot,p_min,_extra=_extra,function_name=function_name,pol=pol,legend_xpos=legend_xpos,legend_ypos=legend_ypos,ps=ps,png=png
2 2
3 IF not keyword_set(function_name) THEN BEGIN 3 IF not keyword_set(function_name) THEN BEGIN
4 - ;Run dustem with as an interface to mpfitfun 4 + ;Run dustem with as an interface to mpfitfun; what does this mean? This whole procedure will have to be changed
5 ;stop 5 ;stop
6 ;== JPB: st used to come out from here 6 ;== JPB: st used to come out from here
7 ;even when not set. Had to replavce by out_st ... 7 ;even when not set. Had to replavce by out_st ...
8 -  
9 - ;dustem_sed=dustem_compute_sed(p_min,st=st,cont=cont,freefree=freefree,synchrotron=synchrotron,out_st=out_st)  
10 - dustem_sed=dustem_compute_sed(p_min,st=st,out_st=out_st)  
11 - 8 +
  9 +; act_wins=0
  10 +; FOR i=0L,n_tags(!dustem_data)-1 DO BEGIN
  11 +; IF isa(!dustem_data.(i)) THEN act_wins+=1
  12 +; ENDFOR
  13 +
  14 + dustem_sed=dustem_compute_sed(p_min,st=st,out_st=out_st)
12 st=out_st 15 st=out_st
13 ;dustem_plot_fit_sed,st,dustem_sed,cont,freefree,synchrotron,_extra=_extra,legend_xpos=legend_xpos,legend_ypos=legend_ypos 16 ;dustem_plot_fit_sed,st,dustem_sed,cont,freefree,synchrotron,_extra=_extra,legend_xpos=legend_xpos,legend_ypos=legend_ypos
14 -  
15 - IF keyword_set(ps) THEN dustem_plot_fit_sed,st,dustem_sed,_extra=_extra,legend_xpos=legend_xpos,legend_ypos=legend_ypos,ps=ps,png=png,use_model=use_model ELSE dustem_plot_fit_sed,st,dustem_sed,_extra=_extra,legend_xpos=legend_xpos,legend_ypos=legend_ypos,use_model=use_model 17 + win=1;win-act_wins+1
  18 + IF keyword_set(ps) THEN dustem_plot_fit_sed,st,dustem_sed,win=win,_extra=_extra,legend_xpos=legend_xpos,legend_ypos=legend_ypos,ps=ps,png=png,use_model=use_model ELSE dustem_plot_fit_sed,st,dustem_sed,_extra=_extra,win=win,legend_xpos=legend_xpos,legend_ypos=legend_ypos,use_model=use_model
16 19
17 ;I do not understand the reason begind the stop below - either way polarization is handled by other procedures 20 ;I do not understand the reason begind the stop below - either way polarization is handled by other procedures
18 IF keyword_set(pol) THEN BEGIN 21 IF keyword_set(pol) THEN BEGIN
19 ;stop 22 ;stop
20 - ;dustem_polsed=dustem_compute_polsed(p_min,st=pst,cont=cont,freefree=freefree,synchrotron=synchrotron,out_st=out_st)  
21 - ;dustem_plot_polsed,st,  
22 - dustem_plot_polsed, st, p_dim, dustem_polsed, aligned=aligned, win=win;,_Extra=extra  
23 - ;dustem_plot_polar,st,ps=ps,_Extra=extra,help=help,UV=UV,SED=SED,Pfrac=Pfrac,print_ratio=print_ratio,win=win,cont=cont,donotclose=donotclose,aligned=aligned,noerrbars=noerrbars,multi=multi,almabands=almabands,nsmooth=nsmooth 23 + IF isa(*!dustem_data.polsed) THEN BEGIN
  24 + win+=1
  25 + dustem_polsed=dustem_compute_polsed(p_min,st=st)
  26 + dustem_plot_polsed, st, p_dim, dustem_polsed, aligned=aligned, win=win,_Extra=extra
  27 + ENDIF
  28 + IF isa(*!dustem_data.polext) THEN BEGIN
  29 + win+=1
  30 + dustem_polext=dustem_compute_polext(p_min,st=st)
  31 + dustem_plot_polext, st, p_dim, dustem_polext, aligned=aligned, win=win,_Extra=extra
  32 + ENDIF
  33 +
  34 + ;dustem_plot_polar,st,ps=ps,_Extra=extra,help=help,UV=UV,SED=SED,Pfrac=Pfrac,print_ratio=print_ratio,win=win,cont=cont,donotclose=donotclose,aligned=aligned,noerrbars=noerrbars,multi=multi,almabands=almabands,nsmooth=nsmooth
24 ENDIF 35 ENDIF
25 ENDIF ELSE BEGIN 36 ENDIF ELSE BEGIN
26 CASE function_name OF 37 CASE function_name OF