Blame view

src/idl/dustem_init_plugins.pro 3.4 KB
607060e5   Ilyes Choubani   test version
1
PRO dustem_init_plugins, pd, fpd=fpd
e7938fa3   Ilyes Choubani   Corrected02: Impl...
2
3


4750086c   Ilyes Choubani   nouvelle philosph...
4
;INITIALIZING THE SCOPES DATA ARRAYS--------------------
e7938fa3   Ilyes Choubani   Corrected02: Impl...
5
6
7

varvar=create_struct('varvar',ptr_new())

7f2b2149   Jean-Philippe Bernard   a Ilyes
8
plugin_names=['']
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
9
plugind_detect_string='dustem_plugin'
9e6a6a33   Ilyes Choubani   a JP /BUT HAS FAU...
10

83b3ddee   Jean-Philippe Bernard   modified with Ily...
11
Nplugins=0L
607060e5   Ilyes Choubani   test version
12

7f2b2149   Jean-Philippe Bernard   a Ilyes
13
14
15
16
17
18
19
20
for i=0L,n_elements(pd)-1 do begin
    fi=strtrim(strmid(pd(i),0,strlen(plugind_detect_string)),2)
    if fi eq plugind_detect_string then begin
        ftn = strmid((*(*!dustem_fit).param_descs)(i),0) ; String containing the name of the plugin and the keyword used (ie: dustem_create_continuum_2)    
        ii = strsplit(ftn,'_',count=countx)
        ii = ii(countx-1)-1 ; Locating the last underscore to automate the extraction of the plugin's keyword
        ftn = strmid(ftn,14,ii-14) ; String containing the name of the plugin without the associated keyword
        plugin_names=[plugin_names,ftn]
83b3ddee   Jean-Philippe Bernard   modified with Ily...
21
        Nplugins=Nplugins+1
7f2b2149   Jean-Philippe Bernard   a Ilyes
22
23
    ENDIF
ENDFOR
9e6a6a33   Ilyes Choubani   a JP /BUT HAS FAU...
24

607060e5   Ilyes Choubani   test version
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50


IF KEYWORD_SET(fpd) THEN BEGIN
    
    for i=0L,n_elements(fpd)-1 do begin
        fi=strtrim(strmid(fpd(i),0,strlen(plugind_detect_string)),2)
        if fi eq plugind_detect_string then begin
            if isa((*!dustem_fit).fixed_param_descs) then begin
            
                ftn = strmid((*(*!dustem_fit).fixed_param_descs)(i),0) ; String containing the name of the plugin and the keyword used (ie: dustem_create_continuum_2)    
            
            endif else  ftn = strmid((*(*!dustem_fit).param_descs)(i),0) 
            
                
            ii = strsplit(ftn,'_',count=countx)
            ii = ii(countx-1)-1 ; Locating the last underscore to automate the extraction of the plugin's keyword
            ftn = strmid(ftn,14,ii-14) ; String containing the name of the plugin without the associated keyword
            plugin_names=[plugin_names,ftn]
            Nplugins=Nplugins+1
        ENDIF
    ENDFOR

    
ENDIF


83b3ddee   Jean-Philippe Bernard   modified with Ily...
51
52
53
54
55
56
57
58
59
60
61
62
63
IF Nplugins EQ 0 THEN BEGIN
    plugin_names=['NONE']
    Nplugins=1
ENDIF ELSE BEGIN
    plugin_names=plugin_names[1:*]
    order=sort(plugin_names)
    plugin_names=plugin_names[order]
    un=uniq(plugin_names)
    plugin_names=plugin_names[un]
    Nplugins=n_elements(plugin_names)
ENDELSE

message, 'plugin_names is:',/continue
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
64
65
print, plugin_names

83b3ddee   Jean-Philippe Bernard   modified with Ily...
66
message, 'Nplugins is:',/continue
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
67
68
69
print, Nplugins


9e6a6a33   Ilyes Choubani   a JP /BUT HAS FAU...
70
71
72
73
IF Nplugins NE 0 THEN BEGIN
    
    IF Nplugins GT 1 THEN BEGIN ;case of multiple plugins
    
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
74
75
        arr_ptrs=replicate('ptr_new()',Nplugins)
        str_fin=strjoin(("'"+plugin_names+"'"+','+arr_ptrs),',')
9e6a6a33   Ilyes Choubani   a JP /BUT HAS FAU...
76
                
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
77
        str='varvar=create_struct('+str_fin+')'
9e6a6a33   Ilyes Choubani   a JP /BUT HAS FAU...
78
        toto=execute(str)
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
79
        
83b3ddee   Jean-Philippe Bernard   modified with Ily...
80
        message, 'varvar is:',/continue
cbf75ef0   Ilyes Choubani   dustem_init_plugi...
81
82
        print, varvar
        
9e6a6a33   Ilyes Choubani   a JP /BUT HAS FAU...
83
84
85
86
87
88
        defsysv, '!dustem_scope', ptr_new(varvar)
    
   ENDIF ELSE BEGIN ;case of one plugin
   
           varvar=create_struct(plugin_names,ptr_new())
           defsysv, '!dustem_scope', ptr_new(varvar)
83b3ddee   Jean-Philippe Bernard   modified with Ily...
89
    ENDELSE 
9e6a6a33   Ilyes Choubani   a JP /BUT HAS FAU...
90
91
92

ENDIF 

e7938fa3   Ilyes Choubani   Corrected02: Impl...
93
94
defsysv, '!dustem_scope', ptr_new(varvar)
;---------------------------------------------
4750086c   Ilyes Choubani   nouvelle philosph...
95

e7938fa3   Ilyes Choubani   Corrected02: Impl...
96
97
98
99
100
101
                                                                                                         
;INITIALIZING THE PLUGIN DATA ARRAYS----------
tgnms=tag_names(varvar)

for i=0L, n_tags(varvar)-1 do begin

4750086c   Ilyes Choubani   nouvelle philosph...
102
103
    if i eq 0 then strct= create_struct(tgnms(i),ptr_new())
    if i ge 1 then strct= create_struct(strct, tgnms(i),ptr_new())
e7938fa3   Ilyes Choubani   Corrected02: Impl...
104
105
endfor

4750086c   Ilyes Choubani   nouvelle philosph...
106
defsysv, '!dustem_plugin', ptr_new(strct)  ; structure that will contain the spectra associated to each plugin ; how do I insert a whole structure as a fucking tag? 
e7938fa3   Ilyes Choubani   Corrected02: Impl...
107
108
;---------------------------------------------

4750086c   Ilyes Choubani   nouvelle philosph...
109
end