Blame view

src/idl/dustem_fit_intensity_example.pro 15.2 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 $
91a8f7ba   Wilma Kiviaho   added plot_all ke...
8
                                ,plot_all=plot_all $
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:
fe2ab57b   Annie Hughes   improved comments...
34
;    dustem_fit_intensity_example[,model=][sed_file=][,Nitermax=][,fits_save=][,/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
;
fe2ab57b   Annie Hughes   improved comments...
48
; ACCEPTED KEY-WORDS
6735604d   Annie Hughes   making FITS read ...
49
50
51
;    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
52
53
;    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...
54
;          'Data/EXAMPLE_OBSDATA/example_SED_1.xcat' is used.  
a1839067   Jean-Philippe Bernard   First commit
55
;    Nitermax = maximum number of fit iterations. Default is 5.
fe2ab57b   Annie Hughes   improved comments...
56
;    fits_save = if set, save the DustEMWrap fitting results in a binary
6735604d   Annie Hughes   making FITS read ...
57
;               FITS file. 
a1839067   Jean-Philippe Bernard   First commit
58
;    help      = if set, print this help
a6bd0451   Annie Hughes   made prettier for...
59
60
;    wait      = if set, wait this many seconds between each step of
;                the code (for illustration purposes)
91a8f7ba   Wilma Kiviaho   added plot_all ke...
61
;    verbose   = if set, subroutines will run in verbose mode
2190a3c6   Jean-Philippe Bernard   added a noobj key...
62
;    noobj     = if set, runs with no object graphics
91a8f7ba   Wilma Kiviaho   added plot_all ke...
63
;    plot_all  = if set, will show all intermediate plotting outputs (default OFF)
8561c935   Annie Hughes   minor change
64
;
a1839067   Jean-Philippe Bernard   First commit
65
66
; COMMON BLOCKS:
;    None
8561c935   Annie Hughes   minor change
67
;
a1839067   Jean-Philippe Bernard   First commit
68
69
; SIDE EFFECTS:
;    None
8561c935   Annie Hughes   minor change
70
;
a1839067   Jean-Philippe Bernard   First commit
71
72
73
; RESTRICTIONS:
;    The DustEM fortran code must be installed
;    The DustEMWrap IDL code must be installed
8561c935   Annie Hughes   minor change
74
;
a1839067   Jean-Philippe Bernard   First commit
75
; PROCEDURES AND SUBROUTINES USED:
a2745344   Annie Hughes   updated inline do...
76
;    
a1839067   Jean-Philippe Bernard   First commit
77
78
; EXAMPLES
;    dustem_fit_intensity_example
6735604d   Annie Hughes   making FITS read ...
79
;    dustem_fit_intensity_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
16adf9ea   Jean-Philippe Bernard   improved
80
;    dustem_fit_intensity_example,model='DBP90'
6735604d   Annie Hughes   making FITS read ...
81
;
a1839067   Jean-Philippe Bernard   First commit
82
83
84
85
86
87
88
89
90
91
92
; 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...
93
94
95
;; ;===================================
;; ;=== SET THE DUST MODEL HERE
;; ;===================================
a1839067   Jean-Philippe Bernard   First commit
96
97
98
IF keyword_set(model) THEN BEGIN
  use_model=strupcase(model)
ENDIF ELSE BEGIN
b71e81d2   Annie Hughes   Tidied up for use...
99
  use_model='DBP90'    ;Example with default keywords uses the DBP90 model
a1839067   Jean-Philippe Bernard   First commit
100
ENDELSE
fe2ab57b   Annie Hughes   improved comments...
101
102
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 ...
103
104
if exists ne 1 then $
   message,'Unknown dust model'
04ff3e4d   Annie Hughes   added comments an...
105

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

;=== Set the (model-dependent) parameters that you want to fit (pd),
8561c935   Annie Hughes   minor change
119
120
;=== their initial values (iv)
;=== and whether they are bounded (ulimed,llimed,llims,ulims).
04ff3e4d   Annie Hughes   added comments an...
121
;=== Fixed parameters (fpd) and their values (fiv) are also set here.
8561c935   Annie Hughes   minor change
122
;=== Refer to the DustEM and DustEMWrap User guides for an explanation
04ff3e4d   Annie Hughes   added comments an...
123
124
125
126
127
128
;=== 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...
129
130
131
;; ;===================================
;; ;=== AN EXAMPLE FOR DBP90
;; ;===================================
9f66a93f   Annie Hughes   changed philosoph...
132
;=== Here we fit the dust abundances of the DBP90 model, the
fe2ab57b   Annie Hughes   improved comments...
133
134
;=== 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...
135
;=== The free parameters are all lower-bounded at zero.
fe2ab57b   Annie Hughes   improved comments...
136
137
138
;=== use_model='DBP90' ; you should specify this above (line 93)

;=== pd is the structure of free parameters
9f66a93f   Annie Hughes   changed philosoph...
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',$          ;VSG mass fraction
fe2ab57b   Annie Hughes   improved comments...
143
144
145
     '(*!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...
146

fe2ab57b   Annie Hughes   improved comments...
147
148
149
;=== 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...
150
151
152
153
154
155
156
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...
157
158
; fixing the G0 and BB continuum parameters (see below)
; [PAH0,VSG,BG,alpha_CR,Amp_syn]
b71e81d2   Annie Hughes   Tidied up for use...
159
160
;iv =   [2.2e-4, 5.7e-4, 3.4e-3, 2.7,0.01]

9f66a93f   Annie Hughes   changed philosoph...
161
Npar=n_elements(pd)
fe2ab57b   Annie Hughes   improved comments...
162
163
164
165
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...
166
fpd=[] & fiv=[]
04ff3e4d   Annie Hughes   added comments an...
167

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

b71e81d2   Annie Hughes   Tidied up for use...
170
171
172
173
174
175
176
177
; 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...
178

cddf70df   Annie Hughes   added example for...
179
;; ;==================================
fe2ab57b   Annie Hughes   improved comments...
180
;; ;=== EXAMPLES FOR OTHER PHYSICAL DUST MODELS
cddf70df   Annie Hughes   added example for...
181
182
183
;; ;=== START BELOW HERE
;; ;==================================

fe2ab57b   Annie Hughes   improved comments...
184
;; ;===================================
cddf70df   Annie Hughes   added example for...
185
;; ;=== AN EXAMPLE FOR DL07
fe2ab57b   Annie Hughes   improved comments...
186
;; ;===================================
cddf70df   Annie Hughes   added example for...
187
188
189
;; ;=== 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...
190
;; ;=== The free parameters are all lower-bounded at zero.
fe2ab57b   Annie Hughes   improved comments...
191
192
;; ;=== 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...
193
194
195
196
;;         '(*!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...
197
;;         '(*!dustem_params).grains(4).mdust_o_mh']      ;aSil
fe2ab57b   Annie Hughes   improved comments...
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
;; 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...
218
219
220
221
222
223
;; ;; ;=== 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...
224
;; ;; ;=== use_model='MC10' ; you should specify this above, or in the command line
cddf70df   Annie Hughes   added example for...
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
;; 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...
243

fe2ab57b   Annie Hughes   improved comments...
244
;; ;===================================
9f66a93f   Annie Hughes   changed philosoph...
245
;; ;=== AN EXAMPLE FOR J13
fe2ab57b   Annie Hughes   improved comments...
246
;; ;===================================
6735604d   Annie Hughes   making FITS read ...
247
;; ;=== Here we fit the dust abundances of the J13 model, the
fe2ab57b   Annie Hughes   improved comments...
248
249
;; ;=== intensity of the dust-heating radiation field as well as the free 
;; ;=== parameters of two plug-ins:
9f66a93f   Annie Hughes   changed philosoph...
250
251
252
253
;; ;=== (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...
254
;; ;=== use_model='J13' ; you should specify this above, or in the command line
9f66a93f   Annie Hughes   changed philosoph...
255
256
257
258
259
260
261
262
;; 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...
263
;;      ,'dustem_plugin_continuum_2']                              ;intensity at peak of the BB continuum
9f66a93f   Annie Hughes   changed philosoph...
264
;; 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...
265
266
;; fpd=[ 'dustem_plugin_continuum_1'] ; Temperature of the BB
;; fiv=[1000.]                       
6735604d   Annie Hughes   making FITS read ...
267
;; Npar=n_elements(pd)
9f66a93f   Annie Hughes   changed philosoph...
268
269
;; ulimed=replicate(0,Npar)
;; llimed=replicate(1,Npar)
cddf70df   Annie Hughes   added example for...
270
;; llims=replicate(1.e-15,Npar)
a1839067   Jean-Philippe Bernard   First commit
271

fe2ab57b   Annie Hughes   improved comments...
272
273
274
;;===================================
;;=== INITIALISE DUSTEM
;;===================================
91a8f7ba   Wilma Kiviaho   added plot_all ke...
275
dustem_init,model=use_model,polarization=use_polarization,show=do_all_plots
a1839067   Jean-Philippe Bernard   First commit
276
!dustem_nocatch=1
a6bd0451   Annie Hughes   made prettier for...
277
!dustem_verbose=use_verbose
2190a3c6   Jean-Philippe Bernard   added a noobj key...
278
IF keyword_set(noobj) THEN !dustem_noobj=1
2d758fdd   Annie Hughes   improved commenti...
279
!EXCEPT=2 ; for debugging
a1839067   Jean-Philippe Bernard   First commit
280

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

a6bd0451   Annie Hughes   made prettier for...
289
290
291
292
293
if keyword_set(wait) then begin
   message,'Finished reading SED data: '+file,/info
   wait,wait
end

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

fe2ab57b   Annie Hughes   improved comments...
300
301
302
303
304
;;===================================
;=== 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...
305
dustem_set_data,m_fit=sed,m_show=sed
a1839067   Jean-Philippe Bernard   First commit
306

fe2ab57b   Annie Hughes   improved comments...
307
308
309
;;===================================
;=== INITIALISE DUSTEM WITH INITIAL VALUES AND LIMITS OF ALL PARAMETERS 
;;===================================
8c568178   Annie Hughes   updated for tuto
310
311
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...
312
313

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

fe2ab57b   Annie Hughes   improved comments...
318
319
320
;;===================================
;;=== INFORMATION TO RUN THE FIT
;;===================================
a1839067   Jean-Philippe Bernard   First commit
321
tol=1.e-16     ;fit tolerence
a1839067   Jean-Philippe Bernard   First commit
322

fe2ab57b   Annie Hughes   improved comments...
323
324
325
;;===================================
;;=== INFORMATION TO MAKE THE PLOT
;;===================================
a6bd0451   Annie Hughes   made prettier for...
326
327
yr=[1.00e-4,1.00E2] ; y-axis limits
xr=[1.00E0,6.00e4] ; x-axis limits
04ff3e4d   Annie Hughes   added comments an...
328
tit='FIT INTENSITY EXAMPLE' ; plot title
a6bd0451   Annie Hughes   made prettier for...
329
330
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
331

fe2ab57b   Annie Hughes   improved comments...
332
333
334
335

;;===================================
;;===  RUN THE FIT
;;===================================
a1839067   Jean-Philippe Bernard   First commit
336
337
338
339
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...
340
                      ,errors=errors,chi2=chi2,rchi2=rchi2,show_plot=show_plot)
a1839067   Jean-Philippe Bernard   First commit
341
342
t2=systime(0,/sec)

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

fe2ab57b   Annie Hughes   improved comments...
349
350
351
;;===================================
;;=== MAKE THE FINAL PLOT
;;===================================
8a2cb251   Jean-Philippe Bernard   modifcations to c...
352
IF !dustem_noobj THEN BEGIN
fe2ab57b   Annie Hughes   improved comments...
353
  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...
354
 ENDIF ELSE BEGIN
80b31cdc   Jean-Philippe Bernard   modified for new ...
355
  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...
356
ENDELSE
a6bd0451   Annie Hughes   made prettier for...
357
358
359
360
361
if keyword_set(wait) then begin
   message,'Made the plot of the final results',/info
   wait,wait
end

fe2ab57b   Annie Hughes   improved comments...
362
363
364
;;===================================
;;=== WRITE OUT THE DUSTEMWRAP FITTING RESULTS IN A BINARY FITS FILE
;;===================================
6735604d   Annie Hughes   making FITS read ...
365
366
367
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...
368
369
370
;=== 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 ...
371
     message,'Saved the results as FITS in the file: '+fits_save,/info
a6bd0451   Annie Hughes   made prettier for...
372
     wait,wait
9e027842   Jean-Philippe Bernard   updated to new fu...
373
  ENDIF
a1839067   Jean-Philippe Bernard   First commit
374
375
ENDIF

a1839067   Jean-Philippe Bernard   First commit
376

a1839067   Jean-Philippe Bernard   First commit
377
the_end:
6735604d   Annie Hughes   making FITS read ...
378
message,'Finished dustem_fit_intensity_example',/info
a1839067   Jean-Philippe Bernard   First commit
379
380

END