Blame view

src/idl/dustem_fit_sed_readme.pro 18.6 KB
5135b194   Jean-Philippe Bernard   cleaned
1
PRO dustem_fit_sed_readme,postcript=postcript,model=model,help=help,png=png,itermax=itermax
427f1205   Jean-Michel Glorian   version 4.2 merged
2

4750086c   Ilyes Choubani   nouvelle philosph...
3

427f1205   Jean-Michel Glorian   version 4.2 merged
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
;This Readme describes how to fit SEDs with dustem
;It runs on the SED stored into the file sample_SED.xcat
;in this directory. Remember that the goal here is not necessarily to
;obtain a good fit in the end, but to illustrate the method.
;The provided SED has only photometric data points from SPITZER
;IRAC and MIPS and IRAS. No spectrum data points.
;SPECTRUM data points can be included and the corresponding filter
;filed must read SPECTRUM. Note that its is note necessary
;to use the .xcat file format, and data SED can be provided
;manually, but the observation structure must have the structure shown below.
;Obviously, the dustem package must have been installed succesfully (see
;dustem_cvs_readme.txt for install instructions).

;+
; NAME:
;    dustem_fit_sed_readme
; PURPOSE:
;    This is an example of how to fit SEDs with the dustem wrapper.
;    It is meant to be an example to follow when writing your own
;    programs using the dustem IDL wrapper.
;    It is not meant to reproduce the result in Compiegne et al 2010
;    The SED used here is in sample_SED.xcat
; CATEGORY:
;    Dustem
; CALLING SEQUENCE:
5135b194   Jean-Philippe Bernard   cleaned
29
;    dustem_fit_sed_readme,postcript=postcript,model=model,help=help
427f1205   Jean-Michel Glorian   version 4.2 merged
30
31
32
33
34
35
36
37
38
; INPUTS:
;    None
; OPTIONAL INPUT PARAMETERS:
;    None
; OUTPUTS:
;    None
; OPTIONAL OUTPUT PARAMETERS:
;    None
; ACCEPTED KEY-WORDS:
5135b194   Jean-Philippe Bernard   cleaned
39
;    model = Selects one of the dust mixture used by dustem
427f1205   Jean-Michel Glorian   version 4.2 merged
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
;           'COMPIEGNE_ETAL2010' from Compiegne et al 2010 (default)
;           'DBP90' from Desert et al 1990
;           'DL01' from Draine & Li 2001
;           'DL07' from Draine & Li 2007
;    postcript = if set plot is done in DUSTEM/Docs/Figures/Last_dustem_fit.ps
;    help      = If set print this help
; COMMON BLOCKS:
;    None
; SIDE EFFECTS:
;    None
; RESTRICTIONS:
;    The dustem fortran code must be installed
;    The dustem idl wrapper must be installed
; PROCEDURE:
;    None
; EXAMPLES
5135b194   Jean-Philippe Bernard   cleaned
56
;    dustem_fit_sed_readme,model='COMPIEGNE_ETAL2010'
427f1205   Jean-Michel Glorian   version 4.2 merged
57
58
59
60
61
62
63
64
65
66
67
; MODIFICATION HISTORY:
;    Written by J.P. Bernard April 1st 2011
;    see evolution details on the dustem cvs maintained at CESR
;    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.
;-

IF keyword_set(help) THEN BEGIN
  doc_library,'dustem_fit_sed_readme'
  goto,the_end
ENDIF

5135b194   Jean-Philippe Bernard   cleaned
68
69
IF keyword_set(model) THEN BEGIN
  use_model=strupcase(model)
427f1205   Jean-Michel Glorian   version 4.2 merged
70
ENDIF ELSE BEGIN
5135b194   Jean-Philippe Bernard   cleaned
71
  use_model='COMPIEGNE_ETAL2010'    ;Default is last dustem model
427f1205   Jean-Michel Glorian   version 4.2 merged
72
73
ENDELSE

e71a7ada   Jean-Philippe Bernard   modified to work ...
74
IF keyword_set(png) THEN BEGIN
3dd007df   Jean-Philippe Bernard   added png plot op...
75
  dir_png=!dustem_dat+'/Figures/'
e71a7ada   Jean-Philippe Bernard   modified to work ...
76
77
78
  force_mkdir,dir_png
ENDIF

666cba76   Jean-Philippe Bernard   cleaned the code
79
polarization=0   ;default is no polarization in models
427f1205   Jean-Michel Glorian   version 4.2 merged
80

4750086c   Ilyes Choubani   nouvelle philosph...
81
82
;COMMENT: for some reson polarization=1 doesn't work for ALL of the models except for the two last A and B models

389a2b1d   Jean-Philippe Bernard   improved
83
84
dustem_init,model=use_model,pol=polarization

427f1205   Jean-Michel Glorian   version 4.2 merged
85
;=== Set which parameters you want to fit
666cba76   Jean-Philippe Bernard   cleaned the code
86
CASE use_model OF
427f1205   Jean-Michel Glorian   version 4.2 merged
87
88
89
90
91
92
93
94
      'DBP90':BEGIN
         pd = [ $
             '(*!dustem_params).G0', $      ;G0
             '(*!dustem_params).grains(0).mdust_o_mh',$  ;PAH0 mass fraction
             '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
             '(*!dustem_params).grains(2).mdust_o_mh', $    ;amCBEx
             'dustem_create_continuum_2']                ;Intensity of NIR continuum
        iv =   [1.0, 4.3e-4, 4.7e-4,6.4e-3,0.001]
427f1205   Jean-Michel Glorian   version 4.2 merged
95
96
97
98
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
427f1205   Jean-Michel Glorian   version 4.2 merged
99
100
101
102
103
104
105
106
107
108
109
     END
      'DL01':BEGIN
         pd = [ $
             '(*!dustem_params).G0', $      ;G0
             '(*!dustem_params).grains(0).mdust_o_mh',$  ;PAH0 mass fraction
             '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
             '(*!dustem_params).grains(2).mdust_o_mh', $    ;Gra
             '(*!dustem_params).grains(3).mdust_o_mh', $    ;Gra
             '(*!dustem_params).grains(4).mdust_o_mh', $    ;aSil
             'dustem_create_continuum_2']                ;Intensity of NIR continuum
        iv =   [1.0,5.4e-4, 5.4e-4,1.8e-4,2.33e-3,8.27e-3,0.001]
427f1205   Jean-Michel Glorian   version 4.2 merged
110
111
112
113
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
427f1205   Jean-Michel Glorian   version 4.2 merged
114
115
      END
      'DL07':BEGIN
4750086c   Ilyes Choubani   nouvelle philosph...
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
          pd = [ $
              '(*!dustem_params).G0', $      ;G0
              '(*!dustem_params).grains(0).mdust_o_mh',$  ;PAH0 mass fraction
              '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
              '(*!dustem_params).grains(2).mdust_o_mh', $    ;Gra
              '(*!dustem_params).grains(3).mdust_o_mh', $    ;Gra
              '(*!dustem_params).grains(4).mdust_o_mh' $    ;aSil
              ;'dustem_create_continuum_2']                ;Intensity of NIR continuum
              ]  
        
;         pd = [ $
;             '(*!dustem_params).gas.G0', $      ;G0
;             '(*!dustem_params).grains(0).mdust_o_mh',$  ;PAH0 mass fraction
;             '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
;             '(*!dustem_params).grains(2).mdust_o_mh', $    ;Gra
;             '(*!dustem_params).grains(3).mdust_o_mh', $    ;Gra
;             '(*!dustem_params).grains(4).mdust_o_mh', $    ;aSil
;             'dustem_create_continuum_2', $
;             'dustem_create_stellar_population_O63',$ ; distance to the O3 stellar population
;             'dustem_create_stellar_population_O65',$ ; number of stars of the O3 stellar population
;             'dustem_create_stellar_population_B43',$ ; distance to the B4 stellar population
;             'dustem_create_stellar_population_B45'$ ; number of stars of the B4 stellar population
;             ]
        
        iv =   [1.0,5.4e-4, 5.4e-4,1.8e-4,2.33e-3,8.27e-3];,0.001];,10,1.,10.,1.]
        
        
427f1205   Jean-Michel Glorian   version 4.2 merged
143
144
145
146
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
4750086c   Ilyes Choubani   nouvelle philosph...
147
        ;llims =[1e-9  ,0.   ,0.   ,0.    ,0.   ,0.   ,0.   ,1.  ,0.   , 1.   ,0.   ]
427f1205   Jean-Michel Glorian   version 4.2 merged
148
149
      END
      'COMPIEGNE_ETAL2010':BEGIN
4750086c   Ilyes Choubani   nouvelle philosph...
150
151
152
        
        ;ORIGINAL LINES
        
0e608856   Jean-Philippe Bernard   improved
153
        ;parameter description of parameters to be fitted
cf92aab3   Jean-Philippe Bernard   improved
154
155
        pd = [ $
              '(*!dustem_params).gas.G0', $      ;G0
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
156
157
              'dustem_plugin_continuum_2', $      ;intensity of NIR continuum
              'dustem_plugin_synchrotron_2',$
cf92aab3   Jean-Philippe Bernard   improved
158
159
160
161
162
163
164
165
166
167
168
              ;'!dustem_isrf_star_add[0].distance', $        ;distance of first stellar contribution to ISRF
              ;'!dustem_isrf_star_add[0].amplitude', $        ;amplitude of first stellar contribution to ISRF
              '(*!dustem_params).grains(0).mdust_o_mh',$     ;PAH0 mass fraction
              '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
              '(*!dustem_params).grains(2).mdust_o_mh', $    ;amCBEx
              '(*!dustem_params).grains(3).mdust_o_mh', $    ;amCBEx
              '(*!dustem_params).grains(4).mdust_o_mh' $
              ]
        ;initial parameter values for parameters to be fitted   
        iv =   [ $  
          1.0, $
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
169
          0.002,   $ ;intensity of NIR continuum
d66feb17   Ilyes Choubani   Fix to some routines
170
          0.01,$  
cf92aab3   Jean-Philippe Bernard   improved
171
172
173
174
175
176
177
178
          ;0.003,   $ ;distance of first stellar contribution to ISRF  
          ;1.e-3,   $ ;amplitude of first stellar contribution to ISRF  
          7.8e-4,  $ ;mass fraction of  PAH0  
          7.8e-4,  $ ;mass fraction of  PAH1  
          1.65e-4, $ ;mass fraction of  amCBEx
          1.45e-3, $ ;mass fraction of  amCBEx
          7.8e-3   $   ;mass fraction of  
          ]
4750086c   Ilyes Choubani   nouvelle philosph...
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
          
;NEW LINES

;========COMMENTS=======
;amplitudes haven't been used so they're by default set to 1.
;using only the below stellar populations produces amplitudes that exceed 1. I do not understand the physical meaning of this.
         
;         pd = [ $
;               '(*!dustem_params).gas.G0', $      ;G0
;               'dustem_create_continuum_2', $      ;intensity of NIR continuum
;               'dustem_create_stellar_population_O63',$ ; distance to the O3 stellar population
;               ;'dustem_create_stellar_population_O64',$ ; amplitude of the O3 stellar population
;               'dustem_create_stellar_population_O65',$ ; number of stars of the O3 stellar population
;               'dustem_create_stellar_population_B43',$ ; distance to the B4 stellar population
;               ;'dustem_create_stellar_population_B44',$ ; amplitude of the B4 stellar population
;               'dustem_create_stellar_population_B45',$ ; number of stars of the B4 stellar population
;               '(*!dustem_params).grains(0).mdust_o_mh',$     ;PAH0 mass fraction
;               '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
;               '(*!dustem_params).grains(2).mdust_o_mh', $    ;amCBEx
;               '(*!dustem_params).grains(3).mdust_o_mh', $    ;amCBEx
;               '(*!dustem_params).grains(4).mdust_o_mh' $
;               ]  
              
cf92aab3   Jean-Philippe Bernard   improved
202
203
204
205
206
207
208
209
210
        ; pd = [ $
        ;       ;'(*!dustem_params).G0', $      ;G0
        ;       '(*!dustem_params).grains(0).mdust_o_mh',$     ;PAH0 mass fraction
        ;       '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
        ;       '(*!dustem_params).grains(2).mdust_o_mh', $    ;amCBEx
        ;       '(*!dustem_params).grains(3).mdust_o_mh', $    ;amCBEx
        ;       '(*!dustem_params).grains(4).mdust_o_mh', $
        ;       ;'dustem_create_continuum_2', $      ;intensity of NIR continuum
        ;       'dustem_create_stellar_population_O63',$ ; distance to the O6 stellar population
4750086c   Ilyes Choubani   nouvelle philosph...
211
              
cf92aab3   Jean-Philippe Bernard   improved
212
        ;       ;'dustem_create_stellar_population_O64',$ ; amplitude of the O6 stellar population
4750086c   Ilyes Choubani   nouvelle philosph...
213
              
cf92aab3   Jean-Philippe Bernard   improved
214
215
        ;       ;'dustem_create_stellar_population_O65',$ ; number of stars of the O6 stellar population
        ;       'dustem_create_stellar_population_B43'$ ; distance to the B4 stellar population
4750086c   Ilyes Choubani   nouvelle philosph...
216
              
cf92aab3   Jean-Philippe Bernard   improved
217
        ;       ;;'dustem_create_stellar_population_B44',$ ; amplitude of the B4 stellar population
4750086c   Ilyes Choubani   nouvelle philosph...
218
              
cf92aab3   Jean-Philippe Bernard   improved
219
220
        ;       ;'dustem_create_stellar_population_B45'$ ; number of stars of the B4 stellar population
        ;       ]        
4750086c   Ilyes Choubani   nouvelle philosph...
221
222
 
          
0e608856   Jean-Philippe Bernard   improved
223
        ;initial parameter values for parameters to be fitted   
cf92aab3   Jean-Philippe Bernard   improved
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
        ; iv =   [ $  
        ;   1.,     $ ;G0
        ;   7.8e-4,  $ ;mass fraction of  PAH0  
        ;   7.8e-4,  $ ;mass fraction of  PAH1  
        ;   1.65e-4, $ ;mass fraction of  amCBEx
        ;   1.45e-3, $ ;mass fraction of  amCBEx
        ;   7.8e-3,   $   ;mass fraction of big grains?
        ;   0.002,   $ ;intensity of NIR continuum    
        ;   10.,$
        ;   ;;1.,$
        ;   1.,$
        ;   10.,$
        ;   ;;1.,$
        ;   1.$  
        ;   ]          
4750086c   Ilyes Choubani   nouvelle philosph...
239
240
;           
        
cf92aab3   Jean-Philippe Bernard   improved
241
242
243
244
245
246
247
248
249
250
251
252
253
254
        ; iv =   [ $  
        ;   7.8e-4,  $ ;mass fraction of  PAH0  
        ;   7.8e-4,  $ ;mass fraction of  PAH1  
        ;   1.65e-4, $ ;mass fraction of  amCBEx
        ;   1.45e-3, $ ;mass fraction of  amCBEx
        ;   7.8e-3,   $   ;mass fraction of big grains?
        ;   ;0.002,   $ ;intensity of NIR continuum    
        ;   10.,$
        ;   ;;1.,$
        ;   ;1.,$
        ;   10.$
        ;   ;;1.,$
        ;   ;1.$  
        ;   ]          
4750086c   Ilyes Choubani   nouvelle philosph...
255
256
257
258
        
        
            
     
427f1205   Jean-Michel Glorian   version 4.2 merged
259
        Npar=n_elements(pd)
4750086c   Ilyes Choubani   nouvelle philosph...
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
        
        ;ulimed=[0   ,0   ,0   ,0   ,0   ,0   , 0   ,0   ,0   ,0   ,0   ,0   ,0] 
        ;ulimed=[0   ,0   ,0   ,0   ,0   ,0   , 0   ,0   ,0   ,0] 

        
        ;llimed=[1   , 1   ,1   ,1   ,1   ,1   ,1   ,1   ,1   ,1   ,1   ,1   ,1]
        ;llimed=[1   , 1   ,1   ,1   ,1   ,1   ,1   ,1   ,1   ,1]
        
        ;llims =[0.  ,0.   ,0.  ,0.   , 0.   ,0.   ,0.   ,0.   ,0.   ,0.   ,0.    ,0.   ,0.   ,0.]
        ;llims =[1.  ,0.   ,10.  ,0.   , 0.   ,0.   ,0.   ,0.   ,0.    ,0.   ,0.]
        
        ;lower limiting the stellar distances to 1pc avoid singularities
        ;[1e-9  ,
        ;llims =[1e-5  ,0.   ,0.    ,0.   ,0.   ,0.   ,0.   ,1.  ,0.     , 1.   ,0.   ]  
        
        ;llims =[0.   ,0.    ,0.   ,0.   ,0.   ,0.   ,1.  ,0.     , 1.   ,0.   ]
cf92aab3   Jean-Philippe Bernard   improved
276
        ;llims =[0.    ,0.   ,0.   ,0.   ,0.   ,1.  , 1.   ]
4750086c   Ilyes Choubani   nouvelle philosph...
277
        
427f1205   Jean-Michel Glorian   version 4.2 merged
278
279
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
cf92aab3   Jean-Philippe Bernard   improved
280
        llims=replicate(0.,Npar)
4750086c   Ilyes Choubani   nouvelle philosph...
281
282
        
        
427f1205   Jean-Michel Glorian   version 4.2 merged
283
        ;=== Fixed parameters
0e608856   Jean-Philippe Bernard   improved
284
        ;parameter description of parameters to be set to a non-default value
4750086c   Ilyes Choubani   nouvelle philosph...
285
        ;fpd=[ $
0e608856   Jean-Philippe Bernard   improved
286
287
          ;'!dustem_isrf_star_add[0].amplitude', $        ;amplitiude of first stellar contribution to ISRF
          ;'!dustem_isrf_star_add[0].distance', $        ;amplitiude of first stellar contribution to ISRF
4750086c   Ilyes Choubani   nouvelle philosph...
288
          ;'(*!dustem_params).gas.G0' $     ;multiplicative factor to total ISRF
0e608856   Jean-Philippe Bernard   improved
289
          ;'dustem_create_continuum_2' $     ;intensity of NIR continuum
4750086c   Ilyes Choubani   nouvelle philosph...
290
          ;  ]
0e608856   Jean-Philippe Bernard   improved
291
        ;initial parameter values for fixed parameters
4750086c   Ilyes Choubani   nouvelle philosph...
292
        ;fiv=[ $
0e608856   Jean-Philippe Bernard   improved
293
294
          ;1.0, $      ;amplitiude of first stellar contribution to ISRF
          ;1.0, $      ;distance of first stellar contribution to ISRF
4750086c   Ilyes Choubani   nouvelle philosph...
295
        ;  1. $        ;multiplicative factor to total ISRF
0e608856   Jean-Philippe Bernard   improved
296
          ;1.e-6 $      ;intensity of NIR continuum
4750086c   Ilyes Choubani   nouvelle philosph...
297
         ;   ]
427f1205   Jean-Michel Glorian   version 4.2 merged
298
      END
4750086c   Ilyes Choubani   nouvelle philosph...
299
     
5135b194   Jean-Philippe Bernard   cleaned
300
301
302
303
304
305
306
307
308
309
310
311
312
313
     'AJ13':BEGIN
        pd = [ $
             '(*!dustem_params).G0', $      ;G0
             '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
             '(*!dustem_params).grains(0).mdust_o_mh',$  ;PAH0 mass fraction
             '(*!dustem_params).grains(2).mdust_o_mh', $    ;amCBEx
             '(*!dustem_params).grains(3).mdust_o_mh', $    ;amCBEx
             '(*!dustem_params).grains(4).mdust_o_mh', $      ;aSil
             'dustem_create_continuum_2']                ;Intensity of NIR continuum
        iv =   [1.0, 7.8e-4, 7.8e-4,1.65e-4,1.45e-3,7.8e-3,0.001]
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
5135b194   Jean-Philippe Bernard   cleaned
314
      END
666cba76   Jean-Philippe Bernard   cleaned the code
315
      'G17_MODELA':BEGIN
4750086c   Ilyes Choubani   nouvelle philosph...
316
        ;dustem_init,model=use_model,/pol
666cba76   Jean-Philippe Bernard   cleaned the code
317
318
319
320
321
322
323
324
325
326
327
328
329
330

         pd = [ $
             '(*!dustem_params).G0', $      ;G0
             '(*!dustem_params).grains(0).mdust_o_mh',$  ;PAH0 mass fraction
             '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
             '(*!dustem_params).grains(2).mdust_o_mh', $    ;Gra
             '(*!dustem_params).grains(3).mdust_o_mh', $    ;Gra
             '(*!dustem_params).grains(4).mdust_o_mh', $    ;aSil
             'dustem_create_continuum_2']                ;Intensity of NIR continuum
        iv =   [1.0,5.4e-4, 5.4e-4,1.8e-4,2.33e-3,8.27e-3,0.001]
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
4750086c   Ilyes Choubani   nouvelle philosph...
331
        ;polarization=1
666cba76   Jean-Philippe Bernard   cleaned the code
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
      END
      'G17_MODELB':BEGIN
         pd = [ $
             '(*!dustem_params).G0', $      ;G0
             '(*!dustem_params).grains(0).mdust_o_mh',$  ;PAH0 mass fraction
             '(*!dustem_params).grains(1).mdust_o_mh',$     ;PAH1 mass fraction
             '(*!dustem_params).grains(2).mdust_o_mh', $    ;Gra
             '(*!dustem_params).grains(3).mdust_o_mh', $    ;Gra
             '(*!dustem_params).grains(4).mdust_o_mh', $    ;aSil
             'dustem_create_continuum_2']                ;Intensity of NIR continuum
        iv =   [1.0,5.4e-4, 5.4e-4,1.8e-4,2.33e-3,8.27e-3,0.001]
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
        polarization=1
      END

427f1205   Jean-Michel Glorian   version 4.2 merged
350
351
ENDCASE

4750086c   Ilyes Choubani   nouvelle philosph...
352
;dustem_init,model=use_model,pol=polarization
452c334e   Ilyes Choubani   Implementation Of...
353

666cba76   Jean-Philippe Bernard   cleaned the code
354
355
!dustem_verbose=1
!dustem_show_plot=1
427f1205   Jean-Michel Glorian   version 4.2 merged
356

452c334e   Ilyes Choubani   Implementation Of...
357

666cba76   Jean-Philippe Bernard   cleaned the code
358
359
360
361
;=== Read sample SED
;=== Composite SED from Compiegne et al 2010, gathered by C. Bot
dir=!dustem_wrap_soft_dir+'/Data/SEDs/'
file=dir+'Gal_composite_spectrum.xcat'
5a7a4415   Jean-Philippe Bernard   adapted to new fi...
362
;file=dir+'Gal_composite_spectrum.xcat.old'
427f1205   Jean-Michel Glorian   version 4.2 merged
363

666cba76   Jean-Philippe Bernard   cleaned the code
364
spec=read_xcat(file,/silent)
5a7a4415   Jean-Philippe Bernard   adapted to new fi...
365
366
367
368
;ind=where(spec.error EQ 0.,count)
;IF count NE 0 THEN spec(ind).error=0.2*spec(ind).spec
ind=where(spec.sigmaII EQ 0.,count)
IF count NE 0 THEN spec(ind).sigmaII=(0.2*spec(ind).StokesI)^2
666cba76   Jean-Philippe Bernard   cleaned the code
369
ind=where(spec.instru EQ 'FIRAS',count)
5a7a4415   Jean-Philippe Bernard   adapted to new fi...
370
371
;IF count NE 0 THEN spec(ind).error=0.2*spec(ind).spec
IF count NE 0 THEN spec(ind).sigmaII=(0.2*spec(ind).StokesI)^2
452c334e   Ilyes Choubani   Implementation Of...
372

666cba76   Jean-Philippe Bernard   cleaned the code
373
;=== SET THE OBSERVATION STRUCTURE
427f1205   Jean-Michel Glorian   version 4.2 merged
374
375
st=dustem_set_data(sed=spec)

427f1205   Jean-Michel Glorian   version 4.2 merged
376
377
;== SET THE FITTED PARAMETERS
dustem_init_parinfo,pd,iv,up_limited=ulimed,lo_limited=llimed,up_limits=ulims,lo_limits=llims
5135b194   Jean-Philippe Bernard   cleaned
378

f882e687   Ilyes Choubani   improved
379

4750086c   Ilyes Choubani   nouvelle philosph...
380
;dustem_init_fixed_params,fpd,fiv
0e608856   Jean-Philippe Bernard   improved
381

452c334e   Ilyes Choubani   Implementation Of...
382
383
384
385
dustem_init_plugins, pd ;initializing the scopes of the plugins to be read later



427f1205   Jean-Michel Glorian   version 4.2 merged
386
;=== RUN fit
4750086c   Ilyes Choubani   nouvelle philosph...
387
tol=1.e-16
cf92aab3   Jean-Philippe Bernard   improved
388
389
;use_Nitermax=50 ;maximum number of iteration. This is the criterium which will stop the fit procedure , NOTA BENE: 3 iterations aren't enough to fit the entirety of the newly added stellar population parameters.
use_Nitermax=5 ;maximum number of iteration. This is the criterium which will stop the fit procedure , NOTA BENE: 3 iterations aren't enough to fit the entirety of the newly added stellar population parameters.
5135b194   Jean-Philippe Bernard   cleaned
390
IF keyword_set(itermax) THEN use_Nitermax=itermax
427f1205   Jean-Michel Glorian   version 4.2 merged
391

427f1205   Jean-Michel Glorian   version 4.2 merged
392
t1=systime(0,/sec)
4750086c   Ilyes Choubani   nouvelle philosph...
393
394
395
396
397
yr=[1e-4,100]
xr=[1,6e4]
;legend_xpos=0.6
;legend_ypos=0.8
tit='Spectral Energy Distribution (Running)'
9be94157   Jean-Philippe Bernard   improved
398
399
400
401
ytit=textoidl('I_\nu (MJy/sr) for N_H=10^{20} H/cm^2')
xtit=textoidl('\lambda (\mum)')
res=dustem_mpfit_data(tol=tol,Nitermax=use_Nitermax,gtol=gtol,/xlog,/ylog,xr=xr,yr=yr,xtit=xtit,ytit=ytit,title=tit,legend_xpos=legend_xpos,legend_ypos=legend_ypos,errors=errors,chi2=chi2,rchi2=rchi2)

427f1205   Jean-Michel Glorian   version 4.2 merged
402
403
t2=systime(0,/sec)

427f1205   Jean-Michel Glorian   version 4.2 merged
404
;=== SAVE FIT RESULTS
66aff855   Jean-Philippe Bernard   modified to impro...
405
file_out='/tmp/DUSTEM_fit_example.sav'
66aff855   Jean-Philippe Bernard   modified to impro...
406
407
408
dustem_save_system_variables,file_out
message,'Saved '+file_out,/continue

e71a7ada   Jean-Philippe Bernard   modified to work ...
409
;stop
66aff855   Jean-Philippe Bernard   modified to impro...
410
411
412
413
414
415
416
417

;======================================
;====You can exit IDL here and re-enter
;======================================

file='/tmp/DUSTEM_fit_example.sav'
dustem_restore_system_variables,file

427f1205   Jean-Michel Glorian   version 4.2 merged
418
;=== Plot best fit
4750086c   Ilyes Choubani   nouvelle philosph...
419
tit='Spectral Energy Distribution (Saved)'
427f1205   Jean-Michel Glorian   version 4.2 merged
420
421
422
423
424
425
ytit=textoidl('I_\nu (MJy/sr) for N_H=10^{20} H/cm^2')
xtit=textoidl('\lambda (\mum)')
errors=(*(*!dustem_fit).current_param_errors)*(*(*!dustem_fit).param_init_values)
chi2=(*!dustem_fit).chi2
rchi2=(*!dustem_fit).rchi2

68d2f391   Jean-Philippe Bernard   modified to cope ...
426
window,2
427f1205   Jean-Michel Glorian   version 4.2 merged
427
428

;=== RESTORE FIT RESULTS
427f1205   Jean-Michel Glorian   version 4.2 merged
429
430
431
res=*(*!dustem_fit).current_param_values
chi2=(*!dustem_fit).chi2
rchi2=(*!dustem_fit).rchi2
66aff855   Jean-Philippe Bernard   modified to impro...
432
errors=(*(*!dustem_fit).current_param_errors)*(*(*!dustem_fit).param_init_values)
427f1205   Jean-Michel Glorian   version 4.2 merged
433
434

;=== Plot best fit
427f1205   Jean-Michel Glorian   version 4.2 merged
435
436
437
438
loadct,13
IF keyword_set(postcript) THEN BEGIN
  set_plot,'PS'
;  ps_file=getenv('DUSTEM_SOFT_DIR')+'/Docs/Figures/'+'Last_dustem_fit.ps'
4750086c   Ilyes Choubani   nouvelle philosph...
439
  ps_file=!dustem_wrap_soft_dir+'Docs/Figures/'+'Last_dustem_fit.ps'
427f1205   Jean-Michel Glorian   version 4.2 merged
440
441
  device,filename=ps_file,/color
ENDIF
e71a7ada   Jean-Philippe Bernard   modified to work ...
442

427f1205   Jean-Michel Glorian   version 4.2 merged
443
;dustem_sed_plot,(*!dustem_fit_params),ytit=ytit,xtit=xtit,title=tit,yr=yr,xr=xr,/ysty,/xsty,res=res,errors=errors,chi2=chi2,rchi2=rchi2
e71a7ada   Jean-Philippe Bernard   modified to work ...
444
dustem_sed_plot,*(*!dustem_fit).current_param_values,ytit=ytit,xtit=xtit,title=tit,yr=yr,xr=xr,/ysty,/xsty,res=res,errors=errors,chi2=chi2,rchi2=rchi2,/xlog,/ylog,legend_xpos=legend_xpos,legend_ypos=legend_ypos
427f1205   Jean-Michel Glorian   version 4.2 merged
445
446
447
448
449
IF keyword_set(postcript) THEN BEGIN
  device,/close
  set_plot,'X'
  message,'wrote '+ps_file,/info
ENDIF
e71a7ada   Jean-Philippe Bernard   modified to work ...
450
451
452
453
454
455
IF keyword_set(png) THEN BEGIN
  ;file_png=!dustem_wrap_soft_dir+'/Docs/Figures/'+'Last_dustem_fit.png'
  file_png=dir_png+'Last_dustem_fit_sed_readme.png'
  write_png,file_png,tvrd(/true)
  message,'Wrote '+file_png,/info
ENDIF
427f1205   Jean-Michel Glorian   version 4.2 merged
456
457
458
459
460
461

message,'dustem_mpfit_sed executed in '+strtrim(t2-t1,2)+' sec',/info

the_end:

END