Blame view

src/idl/dustem_plugin_mdfy_spinning_pol.pro 2.31 KB
266ae799   Ilyes Choubani   General update
1
FUNCTION dustem_plugin_mdfy_spinning_pol, key=key, val=val, scope=scope, paramtags=paramtags, help=help
7d2d66e7   Ilyes Choubani   replacing polsed,...
2
3
4

;+
; NAME:
b74d994a   Annie Hughes   updated help
5
6
;    dustem_plugin_mdfy_spinning_pol
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
7
8
; PURPOSE:
;    MODIFIES THE SPINNING DUST SED BY INTRODUCING A POLARIZATION FRACTION p AND A POLARIZATION ANGLE psi
b74d994a   Annie Hughes   updated help
9
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
10
; CATEGORY:
b74d994a   Annie Hughes   updated help
11
12
;    DUSTEM Wrapper, Plugins, Low-Level
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
13
14
; CALLING SEQUENCE:
;    dustem_plugin_modify_spinning_sed(st,key=key,val=val)
b74d994a   Annie Hughes   updated help
15
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
16
17
; INPUTS:
;    st (st = dustem_run(p_dim))
b74d994a   Annie Hughes   updated help
18
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
19
20
21
; OPTIONAL INPUT PARAMETERS:
;    key  = input parameter number
;    val  = input parameter value
b74d994a   Annie Hughes   updated help
22
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
23
24
; OUTPUTS:
;    out = array containing the extinction stokes parameters
b74d994a   Annie Hughes   updated help
25
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
26
27
; OPTIONAL OUTPUT PARAMETERS:
;    None
b74d994a   Annie Hughes   updated help
28
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
29
30
; ACCEPTED KEY-WORDS:
;    help                  = if set, print this help
b74d994a   Annie Hughes   updated help
31
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
32
33
; COMMON BLOCKS:
;    None
b74d994a   Annie Hughes   updated help
34
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
35
36
; SIDE EFFECTS:
;    None
b74d994a   Annie Hughes   updated help
37
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
38
; RESTRICTIONS:
b74d994a   Annie Hughes   updated help
39
40
41
;    The DustEM fortran code must be installed
;    The DustEMWrap IDL code must be installed
;
7d2d66e7   Ilyes Choubani   replacing polsed,...
42
43
44
45
; PROCEDURE:
;    This is a dustem plugin
;-

607060e5   Ilyes Choubani   test version
46

7d2d66e7   Ilyes Choubani   replacing polsed,...
47
IF keyword_set(help) THEN BEGIN
ba82c5cf   Ilyes Choubani   improved with mod...
48
  doc_library,'dustem_plugin_modify_spinning_polarization'
7d2d66e7   Ilyes Choubani   replacing polsed,...
49
50
51
52
  goto,the_end
ENDIF


759a527d   Ilyes Choubani   general update
53
54
55
56
57
58
59
60
61
62
63
64
65
; 
; IF  ptr_valid((*!dustem_fit).CURRENT_PARAM_VALUES) THEN BEGIN
;     p_dii=(*(*!dustem_fit).CURRENT_PARAM_VALUES)    
;     
; ENDIF ELSE BEGIN
;           
;           
;           p_dii=(*(*!dustem_fit).PARAM_INIT_VALUES)
;           
;                     
;       ENDELSE  
;       
; st=dustem_run(p_dii)      
7d2d66e7   Ilyes Choubani   replacing polsed,...
66

7d2d66e7   Ilyes Choubani   replacing polsed,...
67
68
69

psi=0.
smallp=0. ;supposing the spinning dust is 
607060e5   Ilyes Choubani   test version
70

7d2d66e7   Ilyes Choubani   replacing polsed,...
71
IF keyword_set(key) THEN BEGIN 
ba82c5cf   Ilyes Choubani   improved with mod...
72
  
7d2d66e7   Ilyes Choubani   replacing polsed,...
73
74
  ind1=where(key EQ 1,count1)
  ind2=where(key EQ 2,count2)
ba82c5cf   Ilyes Choubani   improved with mod...
75
  IF count1 NE 0 THEN smallp=val[ind1[0]] ; setting smallp from pd   
7d2d66e7   Ilyes Choubani   replacing polsed,...
76
  IF count2 NE 0 THEN psi=val[ind2[0]] ; setting psi from pd
ba82c5cf   Ilyes Choubani   improved with mod...
77

7d2d66e7   Ilyes Choubani   replacing polsed,...
78
79
ENDIF

266ae799   Ilyes Choubani   General update
80
81
82
83


paramtags=['p','Psi (deg)']

759a527d   Ilyes Choubani   general update
84
85
lambir=dustem_get_wavelengths()
Nwaves=n_elements(lambir)
ba82c5cf   Ilyes Choubani   improved with mod...
86

759a527d   Ilyes Choubani   general update
87
fact = 1.e4*1.E20/(4.*!pi)/(3.e8/1.e-6/(lambir))*1.e20/1.e7
ba82c5cf   Ilyes Choubani   improved with mod...
88

607060e5   Ilyes Choubani   test version
89
filee=!dustem_dat+'out/SPIN.RES'
7d2d66e7   Ilyes Choubani   replacing polsed,...
90

607060e5   Ilyes Choubani   test version
91
readcol,filee,waves,em_g1,em_g2,em_g3,em_tot,format='D,D,D,D,D',delimiter=' ',silent=silent,skipline=8;comment='#'
759a527d   Ilyes Choubani   general update
92
;spawn,'rm -rf '+!dustem_dat+'out/*SPIN*'
7d2d66e7   Ilyes Choubani   replacing polsed,...
93

607060e5   Ilyes Choubani   test version
94
out=fltarr(Nwaves,3)
ba82c5cf   Ilyes Choubani   improved with mod...
95

7d2d66e7   Ilyes Choubani   replacing polsed,...
96

607060e5   Ilyes Choubani   test version
97
98
99
out[*,0]=em_tot*fact

polar_ippsi2iqu,out[*,0],SpinningQ,SpinningU,replicate(smallp,Nwaves),replicate(psi,Nwaves) 
7d2d66e7   Ilyes Choubani   replacing polsed,...
100

7d2d66e7   Ilyes Choubani   replacing polsed,...
101
102
out[*,1]=SpinningQ
out[*,2]=SpinningU
ba82c5cf   Ilyes Choubani   improved with mod...
103

7d2d66e7   Ilyes Choubani   replacing polsed,...
104

607060e5   Ilyes Choubani   test version
105

68598bce   Ilyes Choubani   reducing number o...
106
scope='ADD_POLSED' ;replace this scope by ADD_POL (new scopes are : ADD_SED/ADD_POLSED/ADD_EXT/ADD_POLEXT)
607060e5   Ilyes Choubani   test version
107
108


7d2d66e7   Ilyes Choubani   replacing polsed,...
109
110
return, out

607060e5   Ilyes Choubani   test version
111
112
113

;clean pointers
heap_gc
7d2d66e7   Ilyes Choubani   replacing polsed,...
114
115
116
117
the_end:


end