Blame view

src/idl/dustem_set_data.pro 6.19 KB
266ae799   Ilyes Choubani   General update
1
FUNCTION dustem_set_data,help=help,sed=sed,ext=ext,fpol=fpol,rchi2_weight=rchi2_weight,f_HI=f_HI
427f1205   Jean-Michel Glorian   version 4.2 merged
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
35
36
37
38
39
40
41
42
43
44

;+
; NAME:
;    dustem_set_data
; PURPOSE:
;    Initializes the dustem data structure (!dustem_data)
; CATEGORY:
;    Dustem
; CALLING SEQUENCE:
;    dustem_set_data,spec[,help=]
; INPUTS:
;    spec: array of structures containing a SED
; OPTIONAL INPUT PARAMETERS:
;    None
; OUTPUTS:
;    None
; OPTIONAL OUTPUT PARAMETERS:
;    None
; ACCEPTED KEY-WORDS:
;    help      = If set print this help
; COMMON BLOCKS:
;    None
; SIDE EFFECTS:
;    initializes !dustem_data
;    wavelengths are forced to be the central filter wavelength for
;    photometric data
; RESTRICTIONS:
;    The dustem idl wrapper must be installed
; PROCEDURE:
;    None
; EXAMPLES
;    dustem_init
;    dir=getenv('DUSTEM_SOFT_DIR')+'/src/dustem3.8_web/SEDs/'
;    file=dir+'Gal_composite_spectrum.xcat'
;    spec=read_xcat(file,/silent)
;    dustem_set_data,spec
; MODIFICATION HISTORY:
;    Written by J.-Ph. Bernard
;    see evolution details on the dustem cvs maintained at CESR
;    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.
; 
;    V. Guillet (2012) : dustem_set_data is turned into a function which can be used 
;                        indifferently for sed, ext, polext
09e61d64   Ilyes Choubani   cleaned set_data ...
45
46
;    I. Choubani (2022): Adjusting the function to meet the format criteria set by the current release. 
;    The function uses two main input structures: SED and EXT. Polarization data is included within each. 
427f1205   Jean-Michel Glorian   version 4.2 merged
47
48
;-

4fd64cbb   Ilyes Choubani   dustem_fit_sed_po...
49

427f1205   Jean-Michel Glorian   version 4.2 merged
50
51
52
53
54
IF keyword_set(help) THEN BEGIN
  doc_library,'dustem_set_data'
  goto,the_end
ENDIF

09e61d64   Ilyes Choubani   cleaned set_data ...
55
;Cleaninig data structure
427f1205   Jean-Michel Glorian   version 4.2 merged
56
57
!dustem_data.sed = ptr_new()
!dustem_data.ext = ptr_new()
36e8b879   Jean-Michel Glorian   update from deborah
58

09e61d64   Ilyes Choubani   cleaned set_data ...
59
60
61
62

;SETTING THE DATA STRUCTURES FOR THE FITTING PROCESS - SED

IF keyword_set(sed) THEN BEGIN    
266ae799   Ilyes Choubani   General update
63
64
65
66
    
    
    ;maybe to activate fpol here you need to set it to one? CHECK THIS OUT.           
    if keyword_set(fpol) then xx=dustem_check_data(sed=sed,ist=ist,pst=pst,fpol=fpol,fpst=fpst,qst=qst,ust=ust) else xx=dustem_check_data(sed=sed,ist=ist,pst=pst,fpst=fpst,qst=qst,ust=ust)          
b0cabd3c   Ilyes Choubani   general update
67
    ;stop
4fd64cbb   Ilyes Choubani   dustem_fit_sed_po...
68
    ;=== fill !dustem_data
d012e324   Ilyes Choubani   FIX to the use of...
69
    IF isa(ist) THEN !dustem_data.sed = ptr_new(ist) ;ELSE !dustem_data.sed = ptr_new()   
4fd64cbb   Ilyes Choubani   dustem_fit_sed_po...
70
    ; If f_HI is specified, multiply the data by f_HI
759a527d   Ilyes Choubani   general update
71
    If keyword_set(f_HI) and ptr_valid(!dustem_data.sed) then begin
4fd64cbb   Ilyes Choubani   dustem_fit_sed_po...
72
73
74
        if f_HI gt 0 then (*!dustem_data.sed).values *= f_HI else f_HI = 1.
    endif else f_HI = 1.
    defsysv,'!dustem_f_HI',f_HI
b0cabd3c   Ilyes Choubani   general update
75
76
77
78
79
80
81
82
    if !run_pol then begin
        If isa(pst) then BEGIN        
            ;=== fill !dustem_data
            !dustem_data.polsed = ptr_new(pst)
            ; If f_HI is specified, multiply the data by f_HI
            if keyword_set(f_HI) then if f_HI gt 0 then $
          	(*!dustem_data.polsed).values *= f_HI
        ENDIF
266ae799   Ilyes Choubani   General update
83
84
85
86
87
88
89
        If isa(fpst) then BEGIN        
            ;=== fill !dustem_data
            !dustem_data.polfrac = ptr_new(fpst)
            ; If f_HI is specified, multiply the data by f_HI
            if keyword_set(f_HI) then if f_HI gt 0 then $
          	(*!dustem_data.polfrac).values *= f_HI
        ENDIF
b0cabd3c   Ilyes Choubani   general update
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
        IF isa(qst) THEN BEGIN        
            ;=== fill !dustem_data
            !dustem_data.qsed = ptr_new(qst)
            ; If f_HI is specified, multiply the data by f_HI
            if keyword_set(f_HI) then if f_HI gt 0 then $
          	(*!dustem_data.qsed).values *= f_HI
        ENDIF    
        if isa(ust) then BEGIN
            ;=== fill !dustem_data
            !dustem_data.used = ptr_new(ust)
            ; If f_HI is specified, multiply the data by f_HI
            if keyword_set(f_HI) then if f_HI gt 0 then $
          	(*!dustem_data.used).values *= f_HI
        ENDIF
    endif
452c334e   Ilyes Choubani   Implementation Of...
105
106
ENDIF

09e61d64   Ilyes Choubani   cleaned set_data ...
107
;SETTING THE DATA STRUCTURES FOR THE FITTING PROCESS - EXT
427f1205   Jean-Michel Glorian   version 4.2 merged
108
109

IF keyword_set(ext) THEN BEGIN
09e61d64   Ilyes Choubani   cleaned set_data ...
110
111
    xx=dustem_check_data(ext=ext,exst=exst,pexst=pexst,qexst=qexst,uexst=uexst)
    ;=== fill !dustem_data
d012e324   Ilyes Choubani   FIX to the use of...
112
    IF isa(exst) THEN !dustem_data.ext = ptr_new(exst) ;ELSE !dustem_data.ext = ptr_new() 
759a527d   Ilyes Choubani   general update
113
    
09e61d64   Ilyes Choubani   cleaned set_data ...
114
    ; If f_HI is specified, multiply the data by f_HI
759a527d   Ilyes Choubani   general update
115
    if keyword_set(f_HI) and ptr_valid(!dustem_data.ext) then begin
09e61d64   Ilyes Choubani   cleaned set_data ...
116
117
        if f_HI gt 0 then (*!dustem_data.ext).values *= f_HI else f_HI = 1.
    endif else f_HI = 1.
759a527d   Ilyes Choubani   general update
118
119
    defsysv,'!dustem_f_HI',f_HI        
    
b0cabd3c   Ilyes Choubani   general update
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
    if !run_pol then begin
        if isa(pexst) then BEGIN        
            !dustem_data.polext = ptr_new(pexst)
            ; If f_HI is specified, multiply the data by f_HI
            if keyword_set(f_HI) then if f_HI gt 0 then $
           	(*!dustem_data.polext).values *= f_HI
        ENDIF
        IF isa(qexst) THEN BEGIN        
            ;=== fill !dustem_data
            !dustem_data.qext = ptr_new(qexst)
            ; If f_HI is specified, multiply the data by f_HI
            if keyword_set(f_HI) then if f_HI gt 0 then $
           	(*!dustem_data.qext).values *= f_HI
        ENDIF
        if isa(uexst) then BEGIN 
            ;=== fill !dustem_data
            !dustem_data.uext = ptr_new(uexst)
            ; If f_HI is specified, multiply the data by f_HI
            if keyword_set(f_HI) then if f_HI gt 0 then $
           	(*!dustem_data.uext).values *= f_HI
        ENDIF
    endif
427f1205   Jean-Michel Glorian   version 4.2 merged
142
143
ENDIF

427f1205   Jean-Michel Glorian   version 4.2 merged
144
145
!fit_rchi2_weight.sed=1.
!fit_rchi2_weight.ext=1.
4fd64cbb   Ilyes Choubani   dustem_fit_sed_po...
146

6a714abf   Ilyes Choubani   small fix to dust...
147
148
149
If !run_pol THEN BEGIN
    ;SED
    IF isa(pst) THEN !fit_rchi2_weight.polsed=1.
266ae799   Ilyes Choubani   General update
150
    IF isa(fpst) THEN !fit_rchi2_weight.polfrac=1.
6a714abf   Ilyes Choubani   small fix to dust...
151
152
153
154
155
156
157
158
    IF isa(qst) THEN !fit_rchi2_weight.qsed=1.
    IF isa(ust) THEN !fit_rchi2_weight.used=1.
    
    ;EXT
    IF isa(pexst) THEN !fit_rchi2_weight.polext=1.
    IF isa(qexst) THEN !fit_rchi2_weight.qext=1.
    IF isa(uexst) THEN !fit_rchi2_weight.uext=1.
ENDIF
4fd64cbb   Ilyes Choubani   dustem_fit_sed_po...
159

427f1205   Jean-Michel Glorian   version 4.2 merged
160

09e61d64   Ilyes Choubani   cleaned set_data ...
161
IF keyword_set(rchi2_weight) THEN BEGIN
427f1205   Jean-Michel Glorian   version 4.2 merged
162
163
	!fit_rchi2_weight.sed     = rchi2_weight.sed
	!fit_rchi2_weight.ext     = rchi2_weight.ext
09e61d64   Ilyes Choubani   cleaned set_data ...
164
	
6a714abf   Ilyes Choubani   small fix to dust...
165
166
	IF !run_pol THEN BEGIN
    	IF isa(pst) THEN !fit_rchi2_weight.polsed  = rchi2_weight.polsed
266ae799   Ilyes Choubani   General update
167
    	IF isa(fpst) THEN !fit_rchi2_weight.polfrac = rchi2_weight.polfrac
6a714abf   Ilyes Choubani   small fix to dust...
168
169
170
171
172
173
174
175
    	IF isa(qst) THEN !fit_rchi2_weight.qsed  = rchi2_weight.qsed
    	IF isa(ust) THEN !fit_rchi2_weight.used  = rchi2_weight.used
    	
    	IF isa(pexst) THEN !fit_rchi2_weight.polext  = rchi2_weight.polext
    	IF isa(qexst) THEN !fit_rchi2_weight.qext  = rchi2_weight.qext
    	IF isa(uexst) THEN !fit_rchi2_weight.uext  = rchi2_weight.uext
    ENDIF
    
09e61d64   Ilyes Choubani   cleaned set_data ...
176
ENDIF
427f1205   Jean-Michel Glorian   version 4.2 merged
177
178
179
180
181
182
183

return,ptr_new(obs_st)


the_end:

END