Blame view

src/idl/dustem_fit_intensity_example.pro 15 KB
a1839067   Jean-Philippe Bernard   First commit
1
2
3
PRO dustem_fit_intensity_example,model=model $
                                ,sed_file=sed_file $
                                ,Nitermax=Nitermax $
6735604d   Annie Hughes   making FITS read ...
4
                                ,fits_save=fits_save $
9e027842   Jean-Philippe Bernard   updated to new fu...
5
6
                                ,help=help $
                                ,wait=wait $
2190a3c6   Jean-Philippe Bernard   added a noobj key...
7
                                ,noobj=noobj $
9e027842   Jean-Philippe Bernard   updated to new fu...
8
                                ,verbose=verbose
a1839067   Jean-Philippe Bernard   First commit
9

a1839067   Jean-Philippe Bernard   First commit
10
11
12
;+
; NAME:
;    dustem_fit_intensity_example  
a6bd0451   Annie Hughes   made prettier for...
13
;
8561c935   Annie Hughes   minor change
14
15
16
17
; PURPOSE:
; This routine is an example of how to fit an observational SED
; (StokesI only) with DustEM and DustEMWrap. The objective is to
; illustrate how to use DustEMWrap and not to do science -- the fit
04ff3e4d   Annie Hughes   added comments an...
18
; obtained by running this example is likely to be poor.
a6bd0451   Annie Hughes   made prettier for...
19
;  
8561c935   Annie Hughes   minor change
20
21
22
23
24
25
26
27
; 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
; IRAC, MIPS and IRAS. Examples illustrating running DustEMWrap to
; fit spectral data, polarisation data and extinction data
; are provided in other _example routines in the src/idl/
; directory. See the DustEMWrap User Guide for more information.
a6bd0451   Annie Hughes   made prettier for...
28
;
a1839067   Jean-Philippe Bernard   First commit
29
30
; CATEGORY:
;    DustEMWrap, Distributed, High-Level, User Example
8561c935   Annie Hughes   minor change
31
;
a1839067   Jean-Philippe Bernard   First commit
32
; CALLING SEQUENCE:
fe2ab57b   Annie Hughes   improved comments...
33
;    dustem_fit_intensity_example[,model=][sed_file=][,Nitermax=][,fits_save=][,/help,/wait,/verbose]
8561c935   Annie Hughes   minor change
34
;
a1839067   Jean-Philippe Bernard   First commit
35
36
; INPUTS:
;    None
8561c935   Annie Hughes   minor change
37
;
a1839067   Jean-Philippe Bernard   First commit
38
39
; OPTIONAL INPUT PARAMETERS:
;    None
8561c935   Annie Hughes   minor change
40
;
a1839067   Jean-Philippe Bernard   First commit
41
42
; OUTPUTS:
;    None
8561c935   Annie Hughes   minor change
43
;
a1839067   Jean-Philippe Bernard   First commit
44
; OPTIONAL OUTPUT PARAMETERS:
a6bd0451   Annie Hughes   made prettier for...
45
;    Plots, results structure in binary FITS table format
8561c935   Annie Hughes   minor change
46
;
fe2ab57b   Annie Hughes   improved comments...
47
; ACCEPTED KEY-WORDS
6735604d   Annie Hughes   making FITS read ...
48
49
50
;    model = specifies the interstellar dust mixture used by
;            DustEM. See userguide or dustem_test_model_exists.pro
;            for more details about available models in current release.
a1839067   Jean-Philippe Bernard   First commit
51
52
;    sed_file = string naming the path to text file in .xcat format that
;          describes the observational SED. If not set, the file
04ff3e4d   Annie Hughes   added comments an...
53
;          'Data/EXAMPLE_OBSDATA/example_SED_1.xcat' is used.  
a1839067   Jean-Philippe Bernard   First commit
54
;    Nitermax = maximum number of fit iterations. Default is 5.
fe2ab57b   Annie Hughes   improved comments...
55
;    fits_save = if set, save the DustEMWrap fitting results in a binary
6735604d   Annie Hughes   making FITS read ...
56
;               FITS file. 
a1839067   Jean-Philippe Bernard   First commit
57
;    help      = if set, print this help
a6bd0451   Annie Hughes   made prettier for...
58
59
60
;    wait      = if set, wait this many seconds between each step of
;                the code (for illustration purposes)
;    verbose      = if set, subroutines will run in verbose mode
2190a3c6   Jean-Philippe Bernard   added a noobj key...
61
;    noobj     = if set, runs with no object graphics
8561c935   Annie Hughes   minor change
62
;
a1839067   Jean-Philippe Bernard   First commit
63
64
; COMMON BLOCKS:
;    None
8561c935   Annie Hughes   minor change
65
;
a1839067   Jean-Philippe Bernard   First commit
66
67
; SIDE EFFECTS:
;    None
8561c935   Annie Hughes   minor change
68
;
a1839067   Jean-Philippe Bernard   First commit
69
70
71
; RESTRICTIONS:
;    The DustEM fortran code must be installed
;    The DustEMWrap IDL code must be installed
8561c935   Annie Hughes   minor change
72
;
a1839067   Jean-Philippe Bernard   First commit
73
; PROCEDURES AND SUBROUTINES USED:
a2745344   Annie Hughes   updated inline do...
74
;    
a1839067   Jean-Philippe Bernard   First commit
75
76
; EXAMPLES
;    dustem_fit_intensity_example
6735604d   Annie Hughes   making FITS read ...
77
;    dustem_fit_intensity_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
16adf9ea   Jean-Philippe Bernard   improved
78
;    dustem_fit_intensity_example,model='DBP90'
6735604d   Annie Hughes   making FITS read ...
79
;
a1839067   Jean-Philippe Bernard   First commit
80
81
82
83
84
85
86
87
88
89
90
; MODIFICATION HISTORY:
;    Written by JPB Apr-2011
;    Evolution details on the DustEMWrap gitlab.
;    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  
;-

IF keyword_set(help) THEN BEGIN
  doc_library,'dustem_fit_intensity_example'
  goto,the_end
END

fe2ab57b   Annie Hughes   improved comments...
91
92
93
;; ;===================================
;; ;=== SET THE DUST MODEL HERE
;; ;===================================
a1839067   Jean-Philippe Bernard   First commit
94
95
96
IF keyword_set(model) THEN BEGIN
  use_model=strupcase(model)
ENDIF ELSE BEGIN
b71e81d2   Annie Hughes   Tidied up for use...
97
  use_model='DBP90'    ;Example with default keywords uses the DBP90 model
a1839067   Jean-Philippe Bernard   First commit
98
ENDELSE
fe2ab57b   Annie Hughes   improved comments...
99
100
use_polarization=0   ; here we initialize DustEMWrap in no polarization mode since we are only fitting Stokes I
exists=dustem_test_model_exists(use_model,/silent)
6735604d   Annie Hughes   making FITS read ...
101
102
if exists ne 1 then $
   message,'Unknown dust model'
04ff3e4d   Annie Hughes   added comments an...
103

fe2ab57b   Annie Hughes   improved comments...
104
105
106
;; ;===================================
;; ;=== PARSE OTHER INPUTS AND SET SOME BASIC RUN PARAMETERS
;; ;===================================
a6bd0451   Annie Hughes   made prettier for...
107
108
use_verbose=0
if keyword_set(verbose) then use_verbose=1
8561c935   Annie Hughes   minor change
109
110
use_Nitermax=5        ; maximum number of iterations for the fit
IF keyword_set(Nitermax) THEN use_Nitermax=Nitermax
fe2ab57b   Annie Hughes   improved comments...
111
use_window=0          ; default graphics window number to use for plotting the results
04ff3e4d   Annie Hughes   added comments an...
112
113
114
dustem_define_la_common

;=== Set the (model-dependent) parameters that you want to fit (pd),
8561c935   Annie Hughes   minor change
115
116
;=== their initial values (iv)
;=== and whether they are bounded (ulimed,llimed,llims,ulims).
04ff3e4d   Annie Hughes   added comments an...
117
;=== Fixed parameters (fpd) and their values (fiv) are also set here.
8561c935   Annie Hughes   minor change
118
;=== Refer to the DustEM and DustEMWrap User guides for an explanation
04ff3e4d   Annie Hughes   added comments an...
119
120
121
122
123
124
;=== of the physical meaning of dust model and plug-in parameters, and
;=== how to specify them.

;=== Examples are provided for some of the dust models. 
;=== To try them, uncomment the model that you want to try and re-run

fe2ab57b   Annie Hughes   improved comments...
125
126
127
;; ;===================================
;; ;=== AN EXAMPLE FOR DBP90
;; ;===================================
9f66a93f   Annie Hughes   changed philosoph...
128
;=== Here we fit the dust abundances of the DBP90 model, the
fe2ab57b   Annie Hughes   improved comments...
129
130
;=== intensity of the dust-heating radiation field. We also invoke a plug-in
;=== for that fits parameters of synchrotron emission
9f66a93f   Annie Hughes   changed philosoph...
131
;=== The free parameters are all lower-bounded at zero.
fe2ab57b   Annie Hughes   improved comments...
132
133
134
;=== use_model='DBP90' ; you should specify this above (line 93)

;=== pd is the structure of free parameters
9f66a93f   Annie Hughes   changed philosoph...
135
136
137
138
pd = [ $
     '(*!dustem_params).G0', $                           ;G0
     '(*!dustem_params).grains(0).mdust_o_mh',$          ;PAH0 mass fraction
     '(*!dustem_params).grains(1).mdust_o_mh',$          ;VSG mass fraction
fe2ab57b   Annie Hughes   improved comments...
139
140
141
     '(*!dustem_params).grains(2).mdust_o_mh'];,$        ;BG mass fraction
;     'dustem_plugin_synchrotron_1', $                   ;Spectral index of CREs
;     'dustem_plugin_synchrotron_2']                     ;Synchrotron amplitude at 10 mm
9f66a93f   Annie Hughes   changed philosoph...
142

fe2ab57b   Annie Hughes   improved comments...
143
144
145
;=== iv is the vector of initial values for the free parameters
;=== following lines are for a run without fitting the synchrotron
;=== i.e. [ initial values for G0,PAH0,VSG,BG]
b71e81d2   Annie Hughes   Tidied up for use...
146
147
148
149
150
151
152
iv =   [1.6, 2.2e-4, 5.7e-4, 3.4e-3] 

; initial values vector for run including the synchrotron plugin
; [G0,PAH0,VSG,BG,alpha_CR,Amp_syn]
;iv =   [1.6, 2.2e-4, 5.7e-4, 3.4e-3, 2.7,0.01]

; initial values vector for run including the synchrotron plugin and
fe2ab57b   Annie Hughes   improved comments...
153
154
; fixing the G0 and BB continuum parameters (see below)
; [PAH0,VSG,BG,alpha_CR,Amp_syn]
b71e81d2   Annie Hughes   Tidied up for use...
155
156
;iv =   [2.2e-4, 5.7e-4, 3.4e-3, 2.7,0.01]

9f66a93f   Annie Hughes   changed philosoph...
157
Npar=n_elements(pd)
fe2ab57b   Annie Hughes   improved comments...
158
159
160
161
ulimed=replicate(0,Npar) ; flag ON=1, OFF=0
llimed=replicate(1,Npar) ; flag ON=1, OFF=0
llims=replicate(1.e-15,Npar) ; lower limit value for each free parameter
; ulims=replicate(1.e15,Npar) ; upper limit value for each free parameter
9f66a93f   Annie Hughes   changed philosoph...
162
fpd=[] & fiv=[]
04ff3e4d   Annie Hughes   added comments an...
163

cddf70df   Annie Hughes   added example for...
164
165
; example using fixed parameters (ISRF and a NIR continuum)

b71e81d2   Annie Hughes   Tidied up for use...
166
167
168
169
170
171
172
173
; Uncomment the following lines to include these fixed parameters
;fpd = ['(*!dustem_params).G0', $    ;G0
;     'dustem_plugin_continuum_1', $                    ;Temperature of a BB
;     'dustem_plugin_continuum_2']                      ;Peak amplitude of a BB

; fixed values vector 
; [G0,T_BB,Amp_BB]
;fiv=[0.5,750,1.e-2]
04ff3e4d   Annie Hughes   added comments an...
174

cddf70df   Annie Hughes   added example for...
175
;; ;==================================
fe2ab57b   Annie Hughes   improved comments...
176
;; ;=== EXAMPLES FOR OTHER PHYSICAL DUST MODELS
cddf70df   Annie Hughes   added example for...
177
178
179
;; ;=== START BELOW HERE
;; ;==================================

fe2ab57b   Annie Hughes   improved comments...
180
;; ;===================================
cddf70df   Annie Hughes   added example for...
181
;; ;=== AN EXAMPLE FOR DL07
fe2ab57b   Annie Hughes   improved comments...
182
;; ;===================================
cddf70df   Annie Hughes   added example for...
183
184
185
;; ;=== Here we fit the dust abundances of the model and the
;; ;=== intensity of the ISRF (via gas.G0 since the model
;; ;=== includes spinning dust)
04ff3e4d   Annie Hughes   added comments an...
186
;; ;=== The free parameters are all lower-bounded at zero.
fe2ab57b   Annie Hughes   improved comments...
187
188
;; ;=== use_model='DL07' ; you should specify this above (line 93), or in the command line when you run the example
;; pd = [  '(*!dustem_params).gas.G0'], $                 ;G0
04ff3e4d   Annie Hughes   added comments an...
189
190
191
192
;;         '(*!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
9f66a93f   Annie Hughes   changed philosoph...
193
;;         '(*!dustem_params).grains(4).mdust_o_mh']      ;aSil
fe2ab57b   Annie Hughes   improved comments...
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
;; iv =   [1.5 ,5.4e-4, 5.4e-4,1.8e-4,2.33e-3,8.27e-3]
;; 
;; ;=== Uncomment the following lines if you want to fix the ISRF instead of leaving it as a free parameter
;; ;pd = ['(*!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
;; ;iv =   [5.4e-4, 5.4e-4,1.8e-4,2.33e-3,8.27e-3]
;; ;fpd=['(*!dustem_params).gas.G0']
;; ;fiv=[2.]
;; 
;; Npar=n_elements(pd)
;; ulimed=replicate(0,Npar)
;; llimed=replicate(1,Npar)
;; llims=replicate(1.e-15,Npar)

;; ;===================================
;; ;=== AN EXAMPLE FOR MC10
;; ;===================================
cddf70df   Annie Hughes   added example for...
214
215
216
217
218
219
;; ;; ;=== Here we fit the dust abundances of the MC10 model, the
;; ;; ;=== intensity of the dust-heating radiation field as well as a plug-in:
;; ;; ;===  (i) continuum due to a blackbody 
;; ;; ;=== The intensity of the dust-heating radiation field is fixed to
;; ;; ;=== 1.5*G0 and the tmperature of the blackbody is fixed to 1200K
;; ;; ;=== The free parameters in the fit are lower-bounded at zero.
fe2ab57b   Annie Hughes   improved comments...
220
;; ;; ;=== use_model='MC10' ; you should specify this above, or in the command line
cddf70df   Annie Hughes   added example for...
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
;; pd = [ $
;;      '(*!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' $    ;aSilx
;;      ,'dustem_plugin_continuum_2' $                 ;Intensity at peak of the continuum
;;      ]
;; iv =   [ 7.8e-4, 7.8e-4, 1.65e-4, 1.45e-3, 6.7e-3, 0.003]
;; Npar=n_elements(pd)
;; ulimed=replicate(0,Npar)
;; llimed=replicate(1,Npar)
;; llims=replicate(1.e-15,Npar)
;; fpd=[ $
;;     '(*!dustem_params).G0'   $    ; ISRF intensity 
;;     ,'dustem_plugin_continuum_1' $    ;temperature of blackbody the produces the continuum 
;;     ]
;; fiv=[1.5, 1200.]
04ff3e4d   Annie Hughes   added comments an...
239

fe2ab57b   Annie Hughes   improved comments...
240
;; ;===================================
9f66a93f   Annie Hughes   changed philosoph...
241
;; ;=== AN EXAMPLE FOR J13
fe2ab57b   Annie Hughes   improved comments...
242
;; ;===================================
6735604d   Annie Hughes   making FITS read ...
243
;; ;=== Here we fit the dust abundances of the J13 model, the
fe2ab57b   Annie Hughes   improved comments...
244
245
;; ;=== intensity of the dust-heating radiation field as well as the free 
;; ;=== parameters of two plug-ins:
9f66a93f   Annie Hughes   changed philosoph...
246
247
248
249
;; ;=== (i) free-free emission
;; ;=== (ii)continuum due to a blackbody 
;; ;=== The temperature of the blackbody is fixed to 1000K
;; ;=== The free parameters in the fit are all lower-bounded at zero.
fe2ab57b   Annie Hughes   improved comments...
250
;; ;=== use_model='J13' ; you should specify this above, or in the command line
9f66a93f   Annie Hughes   changed philosoph...
251
252
253
254
255
256
257
258
;; pd = [ $
;;      '(*!dustem_params).G0' $                                   ;G0
;;      ,'(*!dustem_params).grains(0).mdust_o_mh'$                  ;CM20 -- power law size distribution
;;      ,'(*!dustem_params).grains(1).mdust_o_mh'$                 ;CM20 -- logN size distribution
;;      ,'(*!dustem_params).grains(2).mdust_o_mh' $                ;aPyM5
;;      ,'(*!dustem_params).grains(3).mdust_o_mh' $                ;aOlM5
;;      ,'dustem_plugin_freefree_1' $                              ;ionized gas temperature
;;      ,'dustem_plugin_freefree_2' $                              ;free-free amplitude
fe2ab57b   Annie Hughes   improved comments...
259
;;      ,'dustem_plugin_continuum_2']                              ;intensity at peak of the BB continuum
9f66a93f   Annie Hughes   changed philosoph...
260
;; iv =   [1.2,1.7e-3, 6.3e-4, 2.55e-3, 2.55e-3, 7500., 0.4, 0.001]         
fe2ab57b   Annie Hughes   improved comments...
261
262
;; fpd=[ 'dustem_plugin_continuum_1'] ; Temperature of the BB
;; fiv=[1000.]                       
6735604d   Annie Hughes   making FITS read ...
263
;; Npar=n_elements(pd)
9f66a93f   Annie Hughes   changed philosoph...
264
265
;; ulimed=replicate(0,Npar)
;; llimed=replicate(1,Npar)
cddf70df   Annie Hughes   added example for...
266
;; llims=replicate(1.e-15,Npar)
a1839067   Jean-Philippe Bernard   First commit
267

fe2ab57b   Annie Hughes   improved comments...
268
269
270
271
;;===================================
;;=== INITIALISE DUSTEM
;;===================================
dustem_init,model=use_model,polarization=use_polarization
a1839067   Jean-Philippe Bernard   First commit
272
!dustem_nocatch=1
a6bd0451   Annie Hughes   made prettier for...
273
!dustem_verbose=use_verbose
2190a3c6   Jean-Philippe Bernard   added a noobj key...
274
IF keyword_set(noobj) THEN !dustem_noobj=1
2d758fdd   Annie Hughes   improved commenti...
275
!EXCEPT=2 ; for debugging
a1839067   Jean-Philippe Bernard   First commit
276

fe2ab57b   Annie Hughes   improved comments...
277
278
279
;;===================================
;;=== READ EXAMPLE SED DATA
;;===================================
a1839067   Jean-Philippe Bernard   First commit
280
dir=!dustem_wrap_soft_dir+'/Data/EXAMPLE_OBSDATA/'
9f66a93f   Annie Hughes   changed philosoph...
281
file=dir+'example_SED_1.xcat'
a1839067   Jean-Philippe Bernard   First commit
282
283
284
IF keyword_set(sed_file) THEN file=sed_file
sed=read_xcat(file,/silent)

a6bd0451   Annie Hughes   made prettier for...
285
286
287
288
289
if keyword_set(wait) then begin
   message,'Finished reading SED data: '+file,/info
   wait,wait
end

fe2ab57b   Annie Hughes   improved comments...
290
;;===================================
b71e81d2   Annie Hughes   Tidied up for use...
291
;;=== ADJUST THE UNCERTAINTIES FROM WITHIN THE CODE (FOR ILLUSTRATION)
fe2ab57b   Annie Hughes   improved comments...
292
;;===================================
a6bd0451   Annie Hughes   made prettier for...
293
ind=where(sed.sigmaII LT (0.2*sed.StokesI)^2,count)
a1839067   Jean-Philippe Bernard   First commit
294
IF count NE 0 THEN sed[ind].sigmaII=(0.2*sed[ind].StokesI)^2
a1839067   Jean-Philippe Bernard   First commit
295

fe2ab57b   Annie Hughes   improved comments...
296
297
298
299
300
;;===================================
;=== SET THE OBSERVATIONAL STRUCTURE
;;===================================
;== sed is passed twice in the call -- the first occurrence (m_sed) is the SED that you
;== wish to fit, the second occurrence (m_show) is the SED that you wish to visualise. 
88872c38   Ilyes Choubani   small update. Cha...
301
dustem_set_data,m_fit=sed,m_show=sed
a1839067   Jean-Philippe Bernard   First commit
302

fe2ab57b   Annie Hughes   improved comments...
303
304
305
;;===================================
;=== INITIALISE DUSTEM WITH INITIAL VALUES AND LIMITS OF ALL PARAMETERS 
;;===================================
8c568178   Annie Hughes   updated for tuto
306
307
dustem_init_params,use_model,pd,iv,fpd=fpd,fiv=fiv,ulimed=ulimed,llimed=llimed,ulims=ulims,llims=llims

a6bd0451   Annie Hughes   made prettier for...
308
309

if keyword_set(wait) then begin
04ff3e4d   Annie Hughes   added comments an...
310
   message,'Finished initializing DustEMWrap, including plugins and fixed parameters',/info
a6bd0451   Annie Hughes   made prettier for...
311
312
   wait,wait
end
a1839067   Jean-Philippe Bernard   First commit
313

fe2ab57b   Annie Hughes   improved comments...
314
315
316
;;===================================
;;=== INFORMATION TO RUN THE FIT
;;===================================
a1839067   Jean-Philippe Bernard   First commit
317
tol=1.e-16     ;fit tolerence
a1839067   Jean-Philippe Bernard   First commit
318

fe2ab57b   Annie Hughes   improved comments...
319
320
321
;;===================================
;;=== INFORMATION TO MAKE THE PLOT
;;===================================
a6bd0451   Annie Hughes   made prettier for...
322
323
yr=[1.00e-4,1.00E2] ; y-axis limits
xr=[1.00E0,6.00e4] ; x-axis limits
04ff3e4d   Annie Hughes   added comments an...
324
tit='FIT INTENSITY EXAMPLE' ; plot title
a6bd0451   Annie Hughes   made prettier for...
325
326
ytit=textoidl('I_\nu (MJy/sr) for N_H=10^{20} H/cm^2') ; y-axis title
xtit=textoidl('\lambda (\mum)') ; x-axis title
a1839067   Jean-Philippe Bernard   First commit
327

fe2ab57b   Annie Hughes   improved comments...
328
329
330
331

;;===================================
;;===  RUN THE FIT
;;===================================
a1839067   Jean-Philippe Bernard   First commit
332
333
334
335
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 $
dc84fd94   Ilyes Choubani   Small corrections...
336
                      ,errors=errors,chi2=chi2,rchi2=rchi2,show_plot=show_plot)
a1839067   Jean-Philippe Bernard   First commit
337
338
t2=systime(0,/sec)

a6bd0451   Annie Hughes   made prettier for...
339
if keyword_set(wait) then begin
04ff3e4d   Annie Hughes   added comments an...
340
   message,'Finished running DustEMWrap, using Niters: '+strtrim(string(use_Nitermax),2),/info
a6bd0451   Annie Hughes   made prettier for...
341
342
343
   message,'Time taken [sec]: '+sigfig(t2-t1,2,/sci),/info
   wait,wait
end
8561c935   Annie Hughes   minor change
344

fe2ab57b   Annie Hughes   improved comments...
345
346
347
;;===================================
;;=== MAKE THE FINAL PLOT
;;===================================
8a2cb251   Jean-Philippe Bernard   modifcations to c...
348
IF !dustem_noobj THEN BEGIN
fe2ab57b   Annie Hughes   improved comments...
349
  dustem_plot_noobj,*(*!dustem_fit).CURRENT_PARAM_VALUES,st=dummy,xr=xr,/xstyle,yr=yr,/ysty,/ylog,/xlog,title=tit+' (Final fit)'
cbdd1393   Ilyes Choubani   modified comments...
350
 ENDIF ELSE BEGIN
80b31cdc   Jean-Philippe Bernard   modified for new ...
351
  dustemwrap_plot,*(*!dustem_fit).CURRENT_PARAM_VALUES,st=dummy,xr=xr,/xstyle,yr=yr,/ysty,/ylog,/xlog,title=tit+' (Final fit)'
cbdd1393   Ilyes Choubani   modified comments...
352
ENDELSE
a6bd0451   Annie Hughes   made prettier for...
353
354
355
356
357
if keyword_set(wait) then begin
   message,'Made the plot of the final results',/info
   wait,wait
end

fe2ab57b   Annie Hughes   improved comments...
358
359
360
;;===================================
;;=== WRITE OUT THE DUSTEMWRAP FITTING RESULTS IN A BINARY FITS FILE
;;===================================
6735604d   Annie Hughes   making FITS read ...
361
362
363
IF keyword_set(fits_save) THEN BEGIN
   message,'Writing out results structure: '+fits_save,/info
   dustem_write_fits_table,filename=fits_save,help=help
fe2ab57b   Annie Hughes   improved comments...
364
365
366
;=== At this point, you could erase all dustem system variables, or exit IDL... all the
;=== information needed to recover the fitting results and remake any plots has been saved in the FITS table
IF keyword_set(wait) THEN BEGIN
6735604d   Annie Hughes   making FITS read ...
367
     message,'Saved the results as FITS in the file: '+fits_save,/info
a6bd0451   Annie Hughes   made prettier for...
368
     wait,wait
9e027842   Jean-Philippe Bernard   updated to new fu...
369
  ENDIF
a1839067   Jean-Philippe Bernard   First commit
370
371
ENDIF

a1839067   Jean-Philippe Bernard   First commit
372

a1839067   Jean-Philippe Bernard   First commit
373
the_end:
6735604d   Annie Hughes   making FITS read ...
374
message,'Finished dustem_fit_intensity_example',/info
a1839067   Jean-Philippe Bernard   First commit
375
376

END