Blame view

src/idl/dustem_fit_intensity_example.pro 15.2 KB
a1839067   Jean-Philippe Bernard   First commit
1
2
3
4
5
PRO dustem_fit_intensity_example,model=model $
                                ,sed_file=sed_file $
                                ,Nitermax=Nitermax $
                                ,postscript=postscript $
                                ,fits_save_and_restore=fits_save_and_restore $
9e027842   Jean-Philippe Bernard   updated to new fu...
6
7
                                ,help=help $
                                ,wait=wait $
2190a3c6   Jean-Philippe Bernard   added a noobj key...
8
                                ,noobj=noobj $
9e027842   Jean-Philippe Bernard   updated to new fu...
9
                                ,verbose=verbose
a1839067   Jean-Philippe Bernard   First commit
10

a1839067   Jean-Philippe Bernard   First commit
11
12
13
;+
; NAME:
;    dustem_fit_intensity_example  
a6bd0451   Annie Hughes   made prettier for...
14
;
8561c935   Annie Hughes   minor change
15
16
17
18
; 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...
19
; obtained by running this example is likely to be poor.
a6bd0451   Annie Hughes   made prettier for...
20
;  
8561c935   Annie Hughes   minor change
21
22
23
24
25
26
27
28
; 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...
29
;
a1839067   Jean-Philippe Bernard   First commit
30
31
; CATEGORY:
;    DustEMWrap, Distributed, High-Level, User Example
8561c935   Annie Hughes   minor change
32
;
a1839067   Jean-Philippe Bernard   First commit
33
; CALLING SEQUENCE:
04ff3e4d   Annie Hughes   added comments an...
34
;    dustem_fit_intensity_example[,model=][sed_file=][,postscript=][,Nitermax=][,fits_save_and_restore=][,/help,/wait,/verbose]
8561c935   Annie Hughes   minor change
35
;
a1839067   Jean-Philippe Bernard   First commit
36
37
; INPUTS:
;    None
8561c935   Annie Hughes   minor change
38
;
a1839067   Jean-Philippe Bernard   First commit
39
40
; OPTIONAL INPUT PARAMETERS:
;    None
8561c935   Annie Hughes   minor change
41
;
a1839067   Jean-Philippe Bernard   First commit
42
43
; OUTPUTS:
;    None
8561c935   Annie Hughes   minor change
44
;
a1839067   Jean-Philippe Bernard   First commit
45
; OPTIONAL OUTPUT PARAMETERS:
a6bd0451   Annie Hughes   made prettier for...
46
;    Plots, results structure in binary FITS table format
8561c935   Annie Hughes   minor change
47
;
a1839067   Jean-Philippe Bernard   First commit
48
49
; ACCEPTED KEY-WORDS:
;    model = specifies the interstellar dust mixture used by DustEM
b71e81d2   Annie Hughes   Tidied up for use...
50
;           'MC10' model from Compiegne et al 2010 
a1839067   Jean-Philippe Bernard   First commit
51
52
53
54
55
56
57
58
59
60
61
62
63
;           '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_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...
64
;          'Data/EXAMPLE_OBSDATA/example_SED_1.xcat' is used.  
a1839067   Jean-Philippe Bernard   First commit
65
;    postscript = if set, final plot is saved as postscript in the
a6bd0451   Annie Hughes   made prettier for...
66
;                 current working directory
a1839067   Jean-Philippe Bernard   First commit
67
;    Nitermax = maximum number of fit iterations. Default is 5.
a6bd0451   Annie Hughes   made prettier for...
68
69
70
;    fits_save_and_restore = if set, save the fit results in a binary
;               FITS file. The code then restore this file and plots
;               the results using the saved results information.
a1839067   Jean-Philippe Bernard   First commit
71
;    help      = if set, print this help
a6bd0451   Annie Hughes   made prettier for...
72
73
74
;    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...
75
;    noobj     = if set, runs with no object graphics
8561c935   Annie Hughes   minor change
76
;
a1839067   Jean-Philippe Bernard   First commit
77
78
; COMMON BLOCKS:
;    None
8561c935   Annie Hughes   minor change
79
;
a1839067   Jean-Philippe Bernard   First commit
80
81
; SIDE EFFECTS:
;    None
8561c935   Annie Hughes   minor change
82
;
a1839067   Jean-Philippe Bernard   First commit
83
84
85
; RESTRICTIONS:
;    The DustEM fortran code must be installed
;    The DustEMWrap IDL code must be installed
8561c935   Annie Hughes   minor change
86
;
a1839067   Jean-Philippe Bernard   First commit
87
; PROCEDURES AND SUBROUTINES USED:
a2745344   Annie Hughes   updated inline do...
88
;    
a1839067   Jean-Philippe Bernard   First commit
89
90
91
; EXAMPLES
;    dustem_fit_intensity_example
;    dustem_fit_intensity_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile.fits'
16adf9ea   Jean-Philippe Bernard   improved
92
;    dustem_fit_intensity_example,model='DBP90'
8561c935   Annie Hughes   minor change
93
;
a1839067   Jean-Philippe Bernard   First commit
94
95
96
97
98
99
100
101
102
103
104
105
106
107
; 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

IF keyword_set(model) THEN BEGIN
  use_model=strupcase(model)
ENDIF ELSE BEGIN
b71e81d2   Annie Hughes   Tidied up for use...
108
  use_model='DBP90'    ;Example with default keywords uses the DBP90 model
a1839067   Jean-Philippe Bernard   First commit
109
110
ENDELSE

04ff3e4d   Annie Hughes   added comments an...
111
112
113
114
115
116
117
118
known_mdls=['MC10','DBP90','DL01','WD01_RV5P5B','DL07','J13','G17_MODELA','G17_MODELB','G17_MODELC','G17_MODELD'] 
test_model = where(known_mdls eq use_model,ct)
if ct eq 0 then begin
   message,'ISM dust model '+use_model+' unknown',/continue
   message,'Known models are MC10,DBP90,DL01,WD01_RV5P5B,DL07,J13,G17_MODELA,G17_MODELB,G17_MODELC,G17_MODELD',/continue
   stop
end

a6bd0451   Annie Hughes   made prettier for...
119
120
121
122
use_polarization=0   ; initialize Dustemwrap in no polarization mode 
use_window=2          ; default graphics window number to use for plotting the results
use_verbose=0
if keyword_set(verbose) then use_verbose=1
8561c935   Annie Hughes   minor change
123
124
use_Nitermax=5        ; maximum number of iterations for the fit
IF keyword_set(Nitermax) THEN use_Nitermax=Nitermax
a1839067   Jean-Philippe Bernard   First commit
125

04ff3e4d   Annie Hughes   added comments an...
126
127
128
dustem_define_la_common

;=== Set the (model-dependent) parameters that you want to fit (pd),
8561c935   Annie Hughes   minor change
129
130
;=== their initial values (iv)
;=== and whether they are bounded (ulimed,llimed,llims,ulims).
04ff3e4d   Annie Hughes   added comments an...
131
;=== Fixed parameters (fpd) and their values (fiv) are also set here.
8561c935   Annie Hughes   minor change
132
;=== Refer to the DustEM and DustEMWrap User guides for an explanation
04ff3e4d   Annie Hughes   added comments an...
133
134
135
136
137
138
;=== 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

9f66a93f   Annie Hughes   changed philosoph...
139
140
;=== AN EXAMPLE FOR DBP90
;=== Here we fit the dust abundances of the DBP90 model, the
b71e81d2   Annie Hughes   Tidied up for use...
141
;=== intensity of the dust-heating radiation field, as well as several plug-ins:
9f66a93f   Annie Hughes   changed philosoph...
142
143
144
145
;=== (i) continuum due to a blackbody  
;=== (ii) free-free emission
;=== (iii) synchrotron emission
;=== The free parameters are all lower-bounded at zero.
b71e81d2   Annie Hughes   Tidied up for use...
146
;=== use_model='DBP90' ; you should specify this above!
9f66a93f   Annie Hughes   changed philosoph...
147
148
149
150
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
b71e81d2   Annie Hughes   Tidied up for use...
151
     '(*!dustem_params).grains(2).mdust_o_mh'];,$         ;BG mass fraction
8c568178   Annie Hughes   updated for tuto
152
153
;     'dustem_plugin_synchrotron_1', $                    ;Spectral index of CREs
;     'dustem_plugin_synchrotron_2']                      ;Synchrotron amplitude at 10 mm
9f66a93f   Annie Hughes   changed philosoph...
154

b71e81d2   Annie Hughes   Tidied up for use...
155
156
157
158
159
160
161
162
163
; initial values vector for run without synchrotron plugin
; [G0,PAH0,VSG,BG]
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
7ecea017   Annie Hughes   removed stop
164
; fixing the G0 and BB continuum parameters
b71e81d2   Annie Hughes   Tidied up for use...
165
166
;iv =   [2.2e-4, 5.7e-4, 3.4e-3, 2.7,0.01]

9f66a93f   Annie Hughes   changed philosoph...
167
168
169
170
171
Npar=n_elements(pd)
ulimed=replicate(0,Npar)
llimed=replicate(1,Npar) 
llims=replicate(0.,Npar)
fpd=[] & fiv=[]
04ff3e4d   Annie Hughes   added comments an...
172

b71e81d2   Annie Hughes   Tidied up for use...
173
174
175
176
177
178
179
180
181
;Example using fixed parameters (ISRF and a NIR continuum)
; 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...
182

9f66a93f   Annie Hughes   changed philosoph...
183
;; ;=== AN EXAMPLE FOR DL01 (or DL07 or WD01_RV5P5B)
04ff3e4d   Annie Hughes   added comments an...
184
185
186
;; ;=== Here we fit the dust abundances of the model. The
;; ;=== intensity of the dust-heating radiation field is fixed to 1.2*G0.
;; ;=== The free parameters are all lower-bounded at zero.
a2745344   Annie Hughes   updated inline do...
187
188
;; use_model='DL01' ; you should specify this above, or in the
;; command line
04ff3e4d   Annie Hughes   added comments an...
189
190
191
192
193
;; 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
9f66a93f   Annie Hughes   changed philosoph...
194
;;         '(*!dustem_params).grains(4).mdust_o_mh']      ;aSil
04ff3e4d   Annie Hughes   added comments an...
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
;;    iv =   [5.4e-4, 5.4e-4,1.8e-4,2.33e-3,8.27e-3]
;;    Npar=n_elements(pd)
;;    ulimed=replicate(0,Npar)
;;    llimed=replicate(1,Npar)
;;    llims=replicate(0.,Npar)
;;    fpd=['(*!dustem_params).G0']
;;    fiv=[1.2]


;; ;=== AN EXAMPLE FOR MC10
;; ;=== 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.
b71e81d2   Annie Hughes   Tidied up for use...
211
;; use_model='MC10' ; you should specify this above!
04ff3e4d   Annie Hughes   added comments an...
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
   ;; 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(0.,Npar)
   ;; fpd=[ $
   ;;     '(*!dustem_params).G0'   $ ; ISRF intensity (multiplicative factor x G0)
   ;;     ,'dustem_plugin_continuum_1' $ ;temperature of blackbody the produces the continuum 
   ;;     ]
   ;; fiv=[1.5, 1200.]

9f66a93f   Annie Hughes   changed philosoph...
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
;; ;=== AN EXAMPLE FOR J13
;; ;=== Here we fit the dust abundances of the MC10 model, the
;; ;=== intensity of the dust-heating radiation field as well as two plug-ins:
;; ;=== (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.
;; use_model='J13' ; you should specify this !
;; 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
;;      ,'dustem_plugin_continuum_2']                              ;Intensity at peak of the BB continuum
;; iv =   [1.2,1.7e-3, 6.3e-4, 2.55e-3, 2.55e-3, 7500., 0.4, 0.001]         
;; Npar=n_elements(pd)
;; ulimed=replicate(0,Npar)
;; llimed=replicate(1,Npar)
;; llims=replicate(0.,Npar)
;; fpd=[ $
;;     'dustem_plugin_continuum_2'] ; Temperature of the BB
;; fiv=[1000.]                       
04ff3e4d   Annie Hughes   added comments an...
256
257


8c568178   Annie Hughes   updated for tuto
258
259
260
261
262
;;Nfix=n_elements(fpd)
;;if n_elements(fiv) ne Nfix then begin
;;   message,'Number of fixed parameters (fpd) does not equal number of initial values of fixed parameters (fiv)',/info
;;   stop
;;end
a1839067   Jean-Philippe Bernard   First commit
263

a6bd0451   Annie Hughes   made prettier for...
264
if keyword_set(wait) then begin
04ff3e4d   Annie Hughes   added comments an...
265
   message,'Finished setting dust model and plug-in parameters: '+use_model,/info
a6bd0451   Annie Hughes   made prettier for...
266
267
   wait,wait
end
a1839067   Jean-Philippe Bernard   First commit
268

a1839067   Jean-Philippe Bernard   First commit
269
;== INITIALISE DUSTEM
a6bd0451   Annie Hughes   made prettier for...
270
dustem_init,model=use_model,polarization=use_polarization
a1839067   Jean-Philippe Bernard   First commit
271
!dustem_nocatch=1
a6bd0451   Annie Hughes   made prettier for...
272
!dustem_verbose=use_verbose
dc84fd94   Ilyes Choubani   Small corrections...
273
;!dustem_show_plot=1
2190a3c6   Jean-Philippe Bernard   added a noobj key...
274
IF keyword_set(noobj) THEN !dustem_noobj=1
a1839067   Jean-Philippe Bernard   First commit
275

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

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

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

;== SET THE OBSERVATIONAL STRUCTURE
a6bd0451   Annie Hughes   made prettier for...
292
;== sed is passed twice -- the first occurrence is the SED that you
04ff3e4d   Annie Hughes   added comments an...
293
;== wish to fit, the second occurrence is the SED that you wish to visualise. 
80783331   Jean-Philippe Bernard   changed
294
dustem_set_data,sed,sed
a1839067   Jean-Philippe Bernard   First commit
295
296
297

;== SET INITIAL VALUES AND LIMITS OF THE PARAMETERS THAT WILL BE
;== ADJUSTED DURING THE FIT
8c568178   Annie Hughes   updated for tuto
298
;dustem_init_parinfo,pd,iv,up_limited=ulimed,lo_limited=llimed,up_limits=ulims,lo_limits=llims
a1839067   Jean-Philippe Bernard   First commit
299
;== INITIALIZE ANY PLUGINS
8c568178   Annie Hughes   updated for tuto
300
;dustem_init_plugins,pd,fpd 
a1839067   Jean-Philippe Bernard   First commit
301
;== INITIALIZE ANY FIXED PARAMETERS FOR PLUGINS
8c568178   Annie Hughes   updated for tuto
302
303
304
305
;if Nfix gt 0 then dustem_init_fixed_params,fpd,fiv
;== INITIALIZE ANY FREE AND FIXED PARAMETERS, PLUGINS
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...
306
307

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

a6bd0451   Annie Hughes   made prettier for...
312
;=== INFORMATION TO RUN THE FIT
a1839067   Jean-Philippe Bernard   First commit
313
tol=1.e-16     ;fit tolerence
a1839067   Jean-Philippe Bernard   First commit
314

a6bd0451   Annie Hughes   made prettier for...
315
316
317
;=== INFORMATION TO MAKE THE PLOT
yr=[1.00e-4,1.00E2] ; y-axis limits
xr=[1.00E0,6.00e4] ; x-axis limits
04ff3e4d   Annie Hughes   added comments an...
318
tit='FIT INTENSITY EXAMPLE' ; plot title
a6bd0451   Annie Hughes   made prettier for...
319
320
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
321

dc84fd94   Ilyes Choubani   Small corrections...
322
323
324
325
;Set show_plot to 0 to hide plot
;Commented or set to 1 is the same since !dustem_show_plot (existing sysvar) is initialized to 1 in dustem_init
;show_plot = 0 

a6bd0451   Annie Hughes   made prettier for...
326
;===  RUN THE FIT
a1839067   Jean-Philippe Bernard   First commit
327
328
329
330
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...
331
                      ,errors=errors,chi2=chi2,rchi2=rchi2,show_plot=show_plot)
a1839067   Jean-Philippe Bernard   First commit
332
333
t2=systime(0,/sec)

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

656e3310   Ilyes Choubani   To Annie: added s...
340

a6bd0451   Annie Hughes   made prettier for...
341
;=== MAKE THE FINAL PLOT
a1839067   Jean-Philippe Bernard   First commit
342
343
344
345
346
347
IF keyword_set(postscript) THEN BEGIN
    dir_ps='./'
    set_plot,'PS'
    ps_file=dir_ps+postscript
    device,filename=ps_file,/color
ENDIF
c9abf9b4   Ilyes Choubani   Uploading stellar...
348

8a2cb251   Jean-Philippe Bernard   modifcations to c...
349
350
IF !dustem_noobj THEN BEGIN
  dustemwrap_plot_noobj,*(*!dustem_fit).CURRENT_PARAM_VALUES,dummy,xr=xr,/xstyle,yr=yr,/ysty,/ylog,/xlog,title=tit+' (Final fit)'
cbdd1393   Ilyes Choubani   modified comments...
351
352
353
 ENDIF ELSE BEGIN
  dustemwrap_plot,*(*!dustem_fit).CURRENT_PARAM_VALUES,dummy,xr=xr,/xstyle,yr=yr,/ysty,/ylog,/xlog,title=tit+' (Final fit)'
ENDELSE
8a2cb251   Jean-Philippe Bernard   modifcations to c...
354

a1839067   Jean-Philippe Bernard   First commit
355
356
357
358
359
360
IF keyword_set(postscript) THEN BEGIN
  set_plot,'X'
  device,/close
  message,'Wrote '+ps_file,/info
ENDIF

a6bd0451   Annie Hughes   made prettier for...
361
362
363
364
365
if keyword_set(wait) then begin
   message,'Made the plot of the final results',/info
   wait,wait
end

a1839067   Jean-Philippe Bernard   First commit
366
IF keyword_set(fits_save_and_restore) THEN BEGIN
a6bd0451   Annie Hughes   made prettier for...
367
368
   message,'Writing out results structure: '+fits_save_and_restore,/info
   dustem_write_fits_table,filename=fits_save_and_restore,help=help
8561c935   Annie Hughes   minor change
369
370
;=== At this point, you could erase all dustem system variables, or exit idl... all the
;=== information needed to recover the results and remake the plots has been saved in the FITS table
21467256   Jean-Philippe Bernard   fixed for polariz...
371
  ;stop
ce972c62   Jean-Philippe Bernard   modified a call w...
372
  dustem_read_fits_table,filename=fits_save_and_restore,dustem_st=dustem_spectra_st
a1839067   Jean-Philippe Bernard   First commit
373
374
  ;==== plot result taken from the saved fits table
  res=*(*!dustem_fit).CURRENT_PARAM_VALUES
8a2cb251   Jean-Philippe Bernard   modifcations to c...
375
  IF !dustem_noobj THEN BEGIN
af3a1896   Jean-Philippe Bernard   improved
376
    dustemwrap_plot_noobj,res,dustem_spectra_st,xr=xr,/xstyle,yr=yr,/ysty,/ylog,/xlog,title=tit+' (From Saved FITS file)'
8a2cb251   Jean-Philippe Bernard   modifcations to c...
377
378
379
  ENDIF ELSE BEGIN
    dustemwrap_plot,res,dustem_spectra_st,xr=xr,/xstyle,yr=yr,/ysty,/ylog,/xlog,title=tit+' (From Saved FITS file)'
  ENDELSE
9e027842   Jean-Philippe Bernard   updated to new fu...
380
  IF keyword_set(wait) THEN BEGIN
a6bd0451   Annie Hughes   made prettier for...
381
382
     message,'Saved the results as FITS in the file: '+fits_save_and_restore+', and made a plot using the data in this file',/info
     wait,wait
9e027842   Jean-Philippe Bernard   updated to new fu...
383
  ENDIF
a1839067   Jean-Philippe Bernard   First commit
384
385
ENDIF

a6bd0451   Annie Hughes   made prettier for...
386
message,'Finished dustem_fit_intensity_example',/info
a1839067   Jean-Philippe Bernard   First commit
387

a1839067   Jean-Philippe Bernard   First commit
388
389
390
the_end:

END