Blame view

src/idl_retired/dustem_fit_sed_readme.pro 16.5 KB
67d0cf8d   Annie Hughes   dust model names ...
1
2
3
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
29
30
31
32
33
34
PRO dustem_fit_sed_readme,model=model $
                          ,sed=sed $
                          ,itermax=itermax $
                          ,postscript=postscript $
                          ,png=png $
                          ,save=save $
                          ,restore=restore $
                          ,help=help

;This routine is an example of how to fit observational SEDs with
;DustEM and DustEMWrap. The objective is to illustrate how to use DustEMWrap
; (and not to do science -- the fit obtained by running this example is
; likely to be poor!)
;  
;For this example, the code uses the SED in the file example_SED_1.xcat,
;which is distributed in the Data/EXAMPLE_OBSDATA/ directory 
;
;The example SED has Stokes I photometric data points from SPITZER
;IRAC and MIPS and IRAS. Examples illustrating running DustEMWrap to
;fit data with spectral data, polarisation data and extinction data
;are provided in other _readme routines in the src/idl/ directory.

;;  ***COMMENT AH***
;; Remove or update the next few lines -->>
;; 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.
;;For the example to work, the DustEM and DustEMWrap packages must have
;;been configured and installed succesfully.
;;See dustem_cvs_readme.txt for install instructions).
;; *** END COMMENT AH***
  
427f1205   Jean-Michel Glorian   version 4.2 merged
35
36
;+
; NAME:
67d0cf8d   Annie Hughes   dust model names ...
37
;    dustem_fit_sed_readme  
427f1205   Jean-Michel Glorian   version 4.2 merged
38
; PURPOSE:
67d0cf8d   Annie Hughes   dust model names ...
39
40
41
;    This is an example of how to fit SEDs with DustEMWrap.
;    It is intended as an example to follow when writing your own
;    programs to analyse data with DustEMWrap.
427f1205   Jean-Michel Glorian   version 4.2 merged
42
; CATEGORY:
67d0cf8d   Annie Hughes   dust model names ...
43
;    DustEMWrap, Distributed, High-Level, User Example
427f1205   Jean-Michel Glorian   version 4.2 merged
44
; CALLING SEQUENCE:
67d0cf8d   Annie Hughes   dust model names ...
45
;    dustem_fit_sed_readme,model=model,sed=sed,save=save,postscript=postscript,png=png,itermax=itermax,help=help
427f1205   Jean-Michel Glorian   version 4.2 merged
46
47
48
49
50
51
52
; INPUTS:
;    None
; OPTIONAL INPUT PARAMETERS:
;    None
; OUTPUTS:
;    None
; OPTIONAL OUTPUT PARAMETERS:
67d0cf8d   Annie Hughes   dust model names ...
53
;    Plots, Results save structure
427f1205   Jean-Michel Glorian   version 4.2 merged
54
; ACCEPTED KEY-WORDS:
67d0cf8d   Annie Hughes   dust model names ...
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
;    model = specifies the interstellar dust mixture used by DustEM
;           'MC10' model from Compiegne et al 2010 (default)
;           'DBP90' model from Desert et al 1990
;           'DL01' model from Draine & Li 2001
;           'WD01_RV5p5B' model from Weingartner & Draine 2002 with Rv=5.5
;           'DL07' model from Draine & Li 2007
;           'J13' model from Jones et al 2013, as updated in
;                 Koehler et al 2014
;           'G17_ModelA' model A from Guillet et al (2018). Includes
;                 polarisation. See Tables 2 and 3 of that paper for details.
;           'G17_ModelB' model B from Guillet et al (2018)
;           'G17_ModelC' model C from Guillet et al (2018)
;           'G17_ModelD' model A from Guillet et al (2018)
;    sed = string naming the path to text file in .xcat format that
;          describes the observational SED. If not set, the file
;          'Data/SEDs/sample_SED.xcat' is used.  
;    postscript = if set, final plot is saved as postscript in the
;                current working directory
;    png = if set, final plot is saved as png  in the
;          current working directory
;    save = if set, SED fits results saved as IDL .sav file in the
;           current working directory
;    itermax = maximum number of fit iterations. Default is 5.
;    help      = if set, print this help
427f1205   Jean-Michel Glorian   version 4.2 merged
79
80
81
82
83
; COMMON BLOCKS:
;    None
; SIDE EFFECTS:
;    None
; RESTRICTIONS:
67d0cf8d   Annie Hughes   dust model names ...
84
85
86
87
;    The DustEM fortran code must be installed
;    The DustEMWrap IDL code must be installed
; PROCEDURES AND SUBROUTINES USED:
;    *** COMMENT AH --> is this really NONE? ****
427f1205   Jean-Michel Glorian   version 4.2 merged
88
; EXAMPLES
67d0cf8d   Annie Hughes   dust model names ...
89
;    dustem_fit_sed_readme,model='DBP90',sed='../obs/input_sed.xcat',png='example.png',save='SED_fitresults.sav'
427f1205   Jean-Michel Glorian   version 4.2 merged
90
; MODIFICATION HISTORY:
67d0cf8d   Annie Hughes   dust model names ...
91
92
93
;    Written by JPB Apr-2011
;    Evolution details on the DustEMWrap gitlab.
;    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  
427f1205   Jean-Michel Glorian   version 4.2 merged
94
95
;-

427f1205   Jean-Michel Glorian   version 4.2 merged
96
97
98
IF keyword_set(help) THEN BEGIN
  doc_library,'dustem_fit_sed_readme'
  goto,the_end
67d0cf8d   Annie Hughes   dust model names ...
99
END
427f1205   Jean-Michel Glorian   version 4.2 merged
100

5135b194   Jean-Philippe Bernard   cleaned
101
102
IF keyword_set(model) THEN BEGIN
  use_model=strupcase(model)
427f1205   Jean-Michel Glorian   version 4.2 merged
103
ENDIF ELSE BEGIN
67d0cf8d   Annie Hughes   dust model names ...
104
  use_model='MC10'    ;Default is last dustem model
427f1205   Jean-Michel Glorian   version 4.2 merged
105
106
ENDELSE

67d0cf8d   Annie Hughes   dust model names ...
107
108
use_polarization=0.   ;default is no polarization in models
use_window=2       ; default graphics window number to use for plotting the results
e71a7ada   Jean-Philippe Bernard   modified to work ...
109

67d0cf8d   Annie Hughes   dust model names ...
110
111
112
;=== Set the (model-dependent) parameters that you want to fit
;=== Refer to the DustEM and DustEMWrap userguides for an explanation
;    of the different grain types
427f1205   Jean-Michel Glorian   version 4.2 merged
113

666cba76   Jean-Philippe Bernard   cleaned the code
114
CASE use_model OF
427f1205   Jean-Michel Glorian   version 4.2 merged
115
116
117
118
119
120
      '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
7d2d66e7   Ilyes Choubani   replacing polsed,...
121
             'dustem_plugin_continuum_2']                ;Intensity of NIR continuum
427f1205   Jean-Michel Glorian   version 4.2 merged
122
        iv =   [1.0, 4.3e-4, 4.7e-4,6.4e-3,0.001]
427f1205   Jean-Michel Glorian   version 4.2 merged
123
124
125
126
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
427f1205   Jean-Michel Glorian   version 4.2 merged
127
128
129
130
131
132
133
134
135
     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
7d2d66e7   Ilyes Choubani   replacing polsed,...
136
             'dustem_plugin_continuum_2']                ;Intensity of NIR continuum
427f1205   Jean-Michel Glorian   version 4.2 merged
137
        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
138
139
140
141
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
427f1205   Jean-Michel Glorian   version 4.2 merged
142
      END
67d0cf8d   Annie Hughes   dust model names ...
143
144
145
146
147
148
      'WD01_RV5p5B':BEGIN
;;  ***COMMENT AH***
;; we need to implement this, or remove         
         message, 'WD01 model not yet implemented in DustEMWrap',/info
;;  ***END COMMENT AH***
       END
427f1205   Jean-Michel Glorian   version 4.2 merged
149
      'DL07':BEGIN
4750086c   Ilyes Choubani   nouvelle philosph...
150
151
152
153
154
155
          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
7d2d66e7   Ilyes Choubani   replacing polsed,...
156
157
              '(*!dustem_params).grains(4).mdust_o_mh', $    ;aSil
              'dustem_plugin_continuum_2']                ;Intensity of NIR continuum
3c479f24   Ilyes Choubani   Allowing to fix p...
158
                     
67d0cf8d   Annie Hughes   dust model names ...
159
        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
160
161
162
163
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
427f1205   Jean-Michel Glorian   version 4.2 merged
164
      END
67d0cf8d   Annie Hughes   dust model names ...
165
      'MC10':BEGIN
4750086c   Ilyes Choubani   nouvelle philosph...
166
        
cf92aab3   Jean-Philippe Bernard   improved
167
        pd = [ $
3c479f24   Ilyes Choubani   Allowing to fix p...
168
169
              ;'(*!dustem_params).gas.G0', $      ;G0
             ; 'dustem_plugin_continuum_2', $      ;intensity of NIR continuum
67d0cf8d   Annie Hughes   dust model names ...
170
             ; 'dustem_plugin_synchrotron_2',$
cf92aab3   Jean-Philippe Bernard   improved
171
172
173
174
              '(*!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
67d0cf8d   Annie Hughes   dust model names ...
175
              '(*!dustem_params).grains(4).mdust_o_mh' $     ;aSilx
cf92aab3   Jean-Philippe Bernard   improved
176
177
178
              ]
        ;initial parameter values for parameters to be fitted   
        iv =   [ $  
3c479f24   Ilyes Choubani   Allowing to fix p...
179
180
   ;       1.0, $
  ;       0.002,   $ ;intensity of NIR continuum
67d0cf8d   Annie Hughes   dust model names ...
181
  ;        0.01,$    
cf92aab3   Jean-Philippe Bernard   improved
182
183
184
185
          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
67d0cf8d   Annie Hughes   dust model names ...
186
          7.8e-3   $   ;mass fraction of aSilx
cf92aab3   Jean-Philippe Bernard   improved
187
          ]
4750086c   Ilyes Choubani   nouvelle philosph...
188
          
67d0cf8d   Annie Hughes   dust model names ...
189
190
191
     
        Npar=n_elements(pd)
        
427f1205   Jean-Michel Glorian   version 4.2 merged
192
193
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
cf92aab3   Jean-Philippe Bernard   improved
194
        llims=replicate(0.,Npar)
4750086c   Ilyes Choubani   nouvelle philosph...
195
196
        
        
427f1205   Jean-Michel Glorian   version 4.2 merged
197
        ;=== Fixed parameters
0e608856   Jean-Philippe Bernard   improved
198
        ;parameter description of parameters to be set to a non-default value
3c479f24   Ilyes Choubani   Allowing to fix p...
199
200
201
202
        fpd=[ $
          '(*!dustem_params).gas.G0' ,  $     ;multiplicative factor to total ISRF
          'dustem_plugin_continuum_2' $     ;intensity of NIR continuum
            ]
0e608856   Jean-Philippe Bernard   improved
203
        ;initial parameter values for fixed parameters
3c479f24   Ilyes Choubani   Allowing to fix p...
204
205
206
207
        fiv=[ $
          1. , $        ;multiplicative factor to total ISRF
          3.e-3$      ;intensity of NIR continuum
            ]
67d0cf8d   Annie Hughes   dust model names ...
208
;;  ***END COMMENT AH***
427f1205   Jean-Michel Glorian   version 4.2 merged
209
      END
67d0cf8d   Annie Hughes   dust model names ...
210
     'J13':BEGIN
5135b194   Jean-Philippe Bernard   cleaned
211
212
213
214
215
216
217
        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
7d2d66e7   Ilyes Choubani   replacing polsed,...
218
             'dustem_plugin_continuum_2']                ;Intensity of NIR continuum
5135b194   Jean-Philippe Bernard   cleaned
219
220
221
222
223
        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
224
      END
666cba76   Jean-Philippe Bernard   cleaned the code
225
      'G17_MODELA':BEGIN
666cba76   Jean-Philippe Bernard   cleaned the code
226
227
228
229
230
231
232
233

         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
7d2d66e7   Ilyes Choubani   replacing polsed,...
234
             'dustem_plugin_continuum_2']                ;Intensity of NIR continuum
666cba76   Jean-Philippe Bernard   cleaned the code
235
236
237
238
239
        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)
67d0cf8d   Annie Hughes   dust model names ...
240
        use_polarization=0
666cba76   Jean-Philippe Bernard   cleaned the code
241
242
243
244
245
246
247
248
249
      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
7d2d66e7   Ilyes Choubani   replacing polsed,...
250
             'dustem_plugin_continuum_2']                ;Intensity of NIR continuum
2399e73e   Jean-Philippe Bernard   imprved towards r...
251
252
253
254
255
        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)
67d0cf8d   Annie Hughes   dust model names ...
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
        use_polarization=1
     END
      'G17_MODELC':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_plugin_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)
        use_polarization=1
2399e73e   Jean-Philippe Bernard   imprved towards r...
274
      END
67d0cf8d   Annie Hughes   dust model names ...
275
      'G17_MODELD':BEGIN
2399e73e   Jean-Philippe Bernard   imprved towards r...
276
         pd = [ $
67d0cf8d   Annie Hughes   dust model names ...
277
278
279
280
281
282
             '(*!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
2399e73e   Jean-Philippe Bernard   imprved towards r...
283
             'dustem_plugin_continuum_2']                ;Intensity of NIR continuum
67d0cf8d   Annie Hughes   dust model names ...
284
        iv =   [1.0,5.4e-4, 5.4e-4,1.8e-4,2.33e-3,8.27e-3,0.001]
666cba76   Jean-Philippe Bernard   cleaned the code
285
286
287
288
        Npar=n_elements(pd)
        ulimed=replicate(0,Npar)
        llimed=replicate(1,Npar)
        llims=replicate(0.,Npar)
67d0cf8d   Annie Hughes   dust model names ...
289
290
291
292
293
294
        use_polarization=1
     END
      'ELSE':BEGIN
         message,'model '+model+' unknown',/continue
         message,'Known models are MC10,DBP90,DL01,DL07,J13,G17_MODELA,G17_MODELB,G17_MODELC,G17_MODELD',/continue
         stop
666cba76   Jean-Philippe Bernard   cleaned the code
295
      END
427f1205   Jean-Michel Glorian   version 4.2 merged
296
297
ENDCASE

5c830aef   Jean-Philippe Bernard   removed modificat...
298

67d0cf8d   Annie Hughes   dust model names ...
299
300
301
302
303
304

;== INITIALISE DUSTEM
;;  ***COMMENT AH***
;; do we need the use_polarization key word activated here? -->
;; len(kwords) must match Npar_dust (i.e. without plugins), otherwise
;; fails in dustem_read_grain -- should set this within the above case statement?
3c479f24   Ilyes Choubani   Allowing to fix p...
305
;; IC: yes good idea. Maybe by default set 'kwords' to the original dust keywords and let the user modify kwords(i) where i is the index of the dust species.
67d0cf8d   Annie Hughes   dust model names ...
306
307
308
dustem_init,model=use_model;,kwords=['plaw-ed','logn','plaw-ed','plaw-ed','plaw-ed'];,polarization=use_polarization
;;  ***END COMMENT AH***
!dustem_nocatch=1
666cba76   Jean-Philippe Bernard   cleaned the code
309
310
!dustem_verbose=1
!dustem_show_plot=1
427f1205   Jean-Michel Glorian   version 4.2 merged
311

452c334e   Ilyes Choubani   Implementation Of...
312

67d0cf8d   Annie Hughes   dust model names ...
313
314
315
316
;=== READ EXAMPLE DATA
dir=!dustem_wrap_soft_dir+'/Data/EXAMPLE_OBSDATA/'
file=dir+'example_SED_1.xcat'
if keyword_set(sed) then file=sed
666cba76   Jean-Philippe Bernard   cleaned the code
317
spec=read_xcat(file,/silent)
476507cb   Jean-Philippe Bernard   modified
318

67d0cf8d   Annie Hughes   dust model names ...
319
320
;;  ***COMMENT AH***
;; explain what we are doing here -->
5a7a4415   Jean-Philippe Bernard   adapted to new fi...
321
ind=where(spec.sigmaII EQ 0.,count)
67d0cf8d   Annie Hughes   dust model names ...
322
IF count NE 0 THEN spec[ind].sigmaII=(0.2*spec(ind).StokesI)^2
666cba76   Jean-Philippe Bernard   cleaned the code
323
ind=where(spec.instru EQ 'FIRAS',count)
67d0cf8d   Annie Hughes   dust model names ...
324
325
IF count NE 0 THEN spec[ind].sigmaII=(0.2*spec(ind).StokesI)^2
;;  ***END COMMENT AH***
5135b194   Jean-Philippe Bernard   cleaned
326

67d0cf8d   Annie Hughes   dust model names ...
327
328
;== SET THE OBSERVATIONAL STRUCTURE
st=dustem_set_data(m_fit=spec,m_show=spec);sed=spec)
0e608856   Jean-Philippe Bernard   improved
329

67d0cf8d   Annie Hughes   dust model names ...
330
331
332
;== SET INITIAL VALUES AND LIMITS OF THE PARAMETERS THAT WILL BE
;== ADJUSTED DURING THE FIT
dustem_init_parinfo,pd,iv,up_limited=ulimed,lo_limited=llimed,up_limits=ulims,lo_limits=llims
452c334e   Ilyes Choubani   Implementation Of...
333

67d0cf8d   Annie Hughes   dust model names ...
334
;== INITIALIZE ANY PLUGINS
3c479f24   Ilyes Choubani   Allowing to fix p...
335
dustem_init_plugins, pd,fpd 
452c334e   Ilyes Choubani   Implementation Of...
336

3c479f24   Ilyes Choubani   Allowing to fix p...
337
338
dustem_init_fixed_params,fpd,fiv

67d0cf8d   Annie Hughes   dust model names ...
339
;== RUN THE FIT
40597848   Ilyes Choubani   Plotting of numbe...
340
341
tol=1.e-10
use_Nitermax=4 ;maximum number of iterations. 
5135b194   Jean-Philippe Bernard   cleaned
342
IF keyword_set(itermax) THEN use_Nitermax=itermax
427f1205   Jean-Michel Glorian   version 4.2 merged
343

1355825c   Ilyes Choubani   General update
344
345
yr=[1.00e-4,1.00E2]
xr=[1.00E0,6.00e4]
3c479f24   Ilyes Choubani   Allowing to fix p...
346
tit='Spectral Energy Distribution'
9be94157   Jean-Philippe Bernard   improved
347
348
ytit=textoidl('I_\nu (MJy/sr) for N_H=10^{20} H/cm^2')
xtit=textoidl('\lambda (\mum)')
c8399ce3   Ilyes Choubani   update for sed_re...
349

67d0cf8d   Annie Hughes   dust model names ...
350
351
352
353
354
t1=systime(0,/sec)
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
355
356
t2=systime(0,/sec)

427f1205   Jean-Michel Glorian   version 4.2 merged
357
;=== SAVE FIT RESULTS
67d0cf8d   Annie Hughes   dust model names ...
358
359
360
361
362
363
364
365
366
;file_out='/tmp/DUSTEM_fit_example.sav'
if keyword_set(save) then begin
   dir_sav='./'
   dustem_save_system_variables,dir_sav+save
   message,'Saved fit results in '+dir_sav+save,/continue
   if not keyword_set(restore) then $
      restore=dir_sav+save
end
message,'The fit executed in '+strtrim(t2-t1,2)+' sec',/info
66aff855   Jean-Philippe Bernard   modified to impro...
367
368

;======================================
67d0cf8d   Annie Hughes   dust model names ...
369
370
371
;====You could exit IDL here. The remaining lines of code (essentially
;====plotting the results) would work by returning to this point
;====restoring the IDL output file that was created above.
66aff855   Jean-Philippe Bernard   modified to impro...
372
373
;======================================

67d0cf8d   Annie Hughes   dust model names ...
374
375
376
377
378
;file='/tmp/DUSTEM_fit_example.sav'
if keyword_set(restore) then begin
   file=restore
   dustem_restore_system_variables,file
end
5a2643a4   Ilyes Choubani   cleaning/improvin...
379
 
67d0cf8d   Annie Hughes   dust model names ...
380
;== PLOT THE FIT RESULTS RESTORED FROM .SAV FILE
3c479f24   Ilyes Choubani   Allowing to fix p...
381
382
383
384
385
386
387
388
389
390
391
; tit='Spectral Energy Distribution (Saved)'
; 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
; 
; res=*(*!dustem_fit).current_param_values
; chi2=(*!dustem_fit).chi2
; rchi2=(*!dustem_fit).rchi2
; errors=(*(*!dustem_fit).current_param_errors)*(*(*!dustem_fit).param_init_values)
67d0cf8d   Annie Hughes   dust model names ...
392
393

;=== PLOT FIT RESULTS AND SAVE TO GRAPHICS FILE IF REQUESTED
3c479f24   Ilyes Choubani   Allowing to fix p...
394
395
; window,use_window
; loadct,13
67d0cf8d   Annie Hughes   dust model names ...
396
397
398
399
400
401
402
403
404
IF keyword_set(postscript) THEN BEGIN
;  dir_ps=!dustem_dat+'/Figures/'
  dir_ps='./'
;  force_mkdir,dir_ps
  set_plot,'PS'
  ps_file=dir_ps+postscript
  device,filename=ps_file,/color
ENDIF

3c479f24   Ilyes Choubani   Allowing to fix p...
405
406
407
408
409
410
411
412
413
dustemwrap_plot,res,stp,xr=xr,/xstyle,yr=yr,/ysty,/ylog,/xlog,title=tit

; 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


67d0cf8d   Annie Hughes   dust model names ...
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
IF keyword_set(postscript) THEN BEGIN
  device,/close
  set_plot,'X'
  message,'Wrote '+ps_file,/info
  stop
ENDIF
IF keyword_set(png) THEN BEGIN
;  dir_png=!dustem_dat+'/Figures/'
  dir_png='./'
;  force_mkdir,dir_png
  file_png=dir_png+png
  write_png,file_png,tvrd(/true)
  message,'Wrote '+file_png,/info
ENDIF

message,'Finished dustem_fit_sed_readme',/info
427f1205   Jean-Michel Glorian   version 4.2 merged
430
431
432
433

the_end:

END