Commit 39cfd6cf646df84e07225acb0f3a2c399a08dfda

Authored by Annie Hughes
2 parents 9c053027 933ab1ab
Exists in master

Merge branch 'master' of https://gitlab.irap.omp.eu/OV-GSO-DC/dustem-wrapper_idl

instrument_description.xcat
@@ -174,11 +174,11 @@ SPASS SPASS1 130174.74 MJy/sr NULL 0.14833333 5. @@ -174,11 +174,11 @@ SPASS SPASS1 130174.74 MJy/sr NULL 0.14833333 5.
174 \========= ZOA-FF (free free from Alves, M. I. R., et al, 2015, MNRAS, 450, 2025) ========== 174 \========= ZOA-FF (free free from Alves, M. I. R., et al, 2015, MNRAS, 450, 2025) ==========
175 \information taken from Alves, M. I. R., et al, 2015, MNRAS, 450, 2025 175 \information taken from Alves, M. I. R., et al, 2015, MNRAS, 450, 2025
176 \flux convention does not really matter (narrow band of ? MHz for 1.4 GHz) 176 \flux convention does not really matter (narrow band of ? MHz for 1.4 GHz)
177 -CHIPASS ZOA_FF1 214286. MJy/sr NULL 0.24 5.0 177 +\CHIPASS ZOA_FF1 214286. MJy/sr NULL 0.24 5.0
178 \========= CHI-PASS ========== 178 \========= CHI-PASS ==========
179 \information taken from Calabretta, M. et al. 2014, PASA, 31, 7 179 \information taken from Calabretta, M. et al. 2014, PASA, 31, 7
180 \flux convention does not really matter (narrow band of ? MHz for 1.4 GHz) 180 \flux convention does not really matter (narrow band of ? MHz for 1.4 GHz)
181 -CHIPASS CHIPASS1 214286. MJy/sr NULL 0.24 5.0 181 +CHIPASS CHIPASS1 214286. MJy/sr NULL 0.24 5.0
182 \========= IRAC ==================================================================================================== 182 \========= IRAC ====================================================================================================
183 \resolution taken to be 1.7, 1.7, 1.9, 2" (eg Meixner et al) 183 \resolution taken to be 1.7, 1.7, 1.9, 2" (eg Meixner et al)
184 IRAC IRAC1 3.55000 MJy/sr IRAC 0.000472222 184 IRAC IRAC1 3.55000 MJy/sr IRAC 0.000472222
src/idl/Markwardt_for_Dustemwrap/dustem_mpfit.pro
@@ -3571,7 +3571,19 @@ function dustem_mpfit, fcn, xall, FUNCTARGS=fcnargs, SCALE_FCN=scalfcn, $ @@ -3571,7 +3571,19 @@ function dustem_mpfit, fcn, xall, FUNCTARGS=fcnargs, SCALE_FCN=scalfcn, $
3571 ;#iterations 3571 ;#iterations
3572 !dustem_iter.act=iter 3572 !dustem_iter.act=iter
3573 ;#current parameter values 3573 ;#current parameter values
3574 - (*!dustem_fit).current_param_values=ptr_new(x*(*(*!dustem_fit).param_init_values));So that parameters aren't just passed directly from MPFIT. ALSO allows to test with !dustem_current 3574 + ;JPB: Below is because whene there are fixed parameters, x and (*!dustem_fit) don't have same number of elements.
  3575 + ;JPB: in principle, we should not have modified the code of mpfit for dustem.
  3576 + ;JPB: The same should be achievable using keywords as iterproc
  3577 + IF keyword_set(parinfo) THEN BEGIN
  3578 + xx=dblarr(n_elements(parinfo))
  3579 + ind1=where(parinfo.fixed EQ 0,count1,complement=ind2,Ncomplement=count2)
  3580 + IF count1 NE 0 THEN xx[ind1]=x
  3581 + IF count2 NE 0 THEN xx[ind2]=parinfo[ind2].value
  3582 + ENDIF ELSE BEGIN
  3583 + xx=x
  3584 + ENDELSE
  3585 + ;stop
  3586 + (*!dustem_fit).current_param_values=ptr_new(xx*(*(*!dustem_fit).param_init_values));So that parameters aren't just passed directly from MPFIT. ALSO allows to test with !dustem_current
3575 ; ;#Current parameter errors 3587 ; ;#Current parameter errors
3576 3588
3577 if n_elements(fnorm) GT 0 AND n_elements(fnorm1) GT 0 then begin 3589 if n_elements(fnorm) GT 0 AND n_elements(fnorm1) GT 0 then begin
src/idl/dustem_init_parinfo.pro
@@ -7,7 +7,7 @@ PRO dustem_init_parinfo,pd,iv, $ @@ -7,7 +7,7 @@ PRO dustem_init_parinfo,pd,iv, $
7 7
8 (*!dustem_fit).param_init_values=ptr_new(iv) 8 (*!dustem_fit).param_init_values=ptr_new(iv)
9 9
10 -(*!dustem_fit).current_param_values = ptr_new(iv/iv) 10 +(*!dustem_fit).current_param_values = ptr_new(iv/iv) ;These are normalized to the initial values
11 ;stop 11 ;stop
12 dustem_set_func_ind,pd,iv 12 dustem_set_func_ind,pd,iv
13 13
src/idl/dustem_mpfit_data.pro
@@ -132,6 +132,8 @@ p_min = dustem_mpfitfun(func_name,wav,values,sigma, $ @@ -132,6 +132,8 @@ p_min = dustem_mpfitfun(func_name,wav,values,sigma, $
132 maxiter=use_Nitermax,gtol=gtol,errmsg=errmsg,functargs=_extra,nocatch=nocatch) 132 maxiter=use_Nitermax,gtol=gtol,errmsg=errmsg,functargs=_extra,nocatch=nocatch)
133 133
134 ;stop 134 ;stop
  135 +;!dustem_iter.act=niter_completed
  136 +
135 message,errmsg,/info 137 message,errmsg,/info
136 message,'mpfitfun Status='+strtrim(status,2),/info 138 message,'mpfitfun Status='+strtrim(status,2),/info
137 p_dim=p_min*(*(*!dustem_fit).param_init_values) 139 p_dim=p_min*(*(*!dustem_fit).param_init_values)
@@ -151,7 +153,7 @@ IF !dustem_noobj THEN BEGIN @@ -151,7 +153,7 @@ IF !dustem_noobj THEN BEGIN
151 dustemwrap_plot,p_dim,stp,_extra=_extra 153 dustemwrap_plot,p_dim,stp,_extra=_extra
152 ENDELSE 154 ENDELSE
153 155
154 - the_end: 156 +the_end:
155 RETURN, p_dim 157 RETURN, p_dim
156 158
157 END 159 END
src/idl/dustem_mpfit_run.pro
@@ -111,8 +111,10 @@ FOR i_tag=0,count_data_tag-1 DO BEGIN @@ -111,8 +111,10 @@ FOR i_tag=0,count_data_tag-1 DO BEGIN
111 111
112 'SED' : BEGIN 112 'SED' : BEGIN
113 dustem_sed = dustem_compute_sed(p_dim,st=st,SED_spec=SED_spec) 113 dustem_sed = dustem_compute_sed(p_dim,st=st,SED_spec=SED_spec)
  114 + ;help,*(*!dustem_fit).CURRENT_PARAM_VALUES
  115 + ;stop
114 chi2_sed = total(((*(*!dustem_data).sed).values-dustem_sed)^2/(*(*!dustem_data).sed).sigma^2) 116 chi2_sed = total(((*(*!dustem_data).sed).values-dustem_sed)^2/(*(*!dustem_data).sed).sigma^2)
115 - n_sed = n_elements((*(*!dustem_data).sed).values) 117 + n_sed = n_elements((*(*!dustem_data).sed).values)
116 rchi2_sed = chi2_sed / n_sed 118 rchi2_sed = chi2_sed / n_sed
117 wrchi2_sed = rchi2_sed * (*!fit_rchi2_weight).sed 119 wrchi2_sed = rchi2_sed * (*!fit_rchi2_weight).sed
118 message,"chi2 SED = "+strtrim(chi2_sed,2)+" rchi2 SED = "+strtrim(rchi2_sed,2),/continue;," weighted rchi2 SED=",wrchi2_sed 120 message,"chi2 SED = "+strtrim(chi2_sed,2)+" rchi2 SED = "+strtrim(rchi2_sed,2),/continue;," weighted rchi2 SED=",wrchi2_sed
src/idl/dustem_plugin_stellar_population.pro
@@ -92,10 +92,14 @@ IF keyword_set(key) THEN BEGIN @@ -92,10 +92,14 @@ IF keyword_set(key) THEN BEGIN
92 92
93 ;JPB: This is highly non standard and makes Fawlty go "Segmentation fault" 93 ;JPB: This is highly non standard and makes Fawlty go "Segmentation fault"
94 ;lumclass = (strmid(key,2)).remove(-1) ; extracting the luminosity class strings 94 ;lumclass = (strmid(key,2)).remove(-1) ; extracting the luminosity class strings
  95 + ;IC: Yes but we need to take into account when luminosity class is two characters and not just one. ie: IV instead of V.
  96 + ;But since we only have MS (V) data, (lumclass[i]=strmid(key[i],2,1)) should be ok but I'm correcting it for future input.
95 lumclass=strarr(n_elements(key)) 97 lumclass=strarr(n_elements(key))
96 FOR i=0L,n_elements(key)-1 DO BEGIN 98 FOR i=0L,n_elements(key)-1 DO BEGIN
97 - lumclass[i]=strmid(key[i],2,1) 99 + lumclass[i]=strmid(key[i],2,strlen(key[i])-3)
98 ENDFOR 100 ENDFOR
  101 +
  102 +
99 params = strmid(key,0,/reverse_offset) ; extracting the indices (in the 'key' array) of the stellar parameters to fit 103 params = strmid(key,0,/reverse_offset) ; extracting the indices (in the 'key' array) of the stellar parameters to fit
100 104
101 ; Locating the O3 stellar population parameters - this new code structure accounts for the presence of different luminosity classes. 105 ; Locating the O3 stellar population parameters - this new code structure accounts for the presence of different luminosity classes.
src/idl/dustem_read_filters.pro
@@ -816,6 +816,30 @@ spass_struct={Name:'SPASS',Nbands:Nband,filter_names:filt_names,central_waveleng @@ -816,6 +816,30 @@ spass_struct={Name:'SPASS',Nbands:Nband,filter_names:filt_names,central_waveleng
816 use_frequencies:use_nu,use_transmissions:use_T,use_wavelengths:use_w,use_wmin:dblarr(Nband),use_wmax:dblarr(Nband),cc_method:'dustem_cc_spass'} 816 use_frequencies:use_nu,use_transmissions:use_T,use_wavelengths:use_w,use_wmin:dblarr(Nband),use_wmax:dblarr(Nband),cc_method:'dustem_cc_spass'}
817 817
818 ;====================================================== 818 ;======================================================
  819 +;==== CHIPASS
  820 +;======================================================
  821 +IF print_messages THEN message,'Reading CHIPASS filters',/continue
  822 +
  823 +Nband=1
  824 +filt_names=['CHIPASS1']
  825 +wfilt_chipass=dustem_filter2wav(filt_names)
  826 +wav_ptr=ptrarr(Nband)
  827 +nu_ptr=ptrarr(Nband) & T_ptr=ptrarr(Nband) & wav_ptr=ptrarr(Nband)
  828 +use_nu=ptrarr(Nband) & use_T=ptrarr(Nband) & use_w=ptrarr(Nband)
  829 +
  830 +;===== This is set on purpose to the SPASS directory.
  831 +st=read_xcat(dir_spass+'SPASS_transmission.xcat',/silent)
  832 +
  833 +freq=st.frequency*1.e9 ;Hz
  834 +Trans=st.transmission
  835 +
  836 +T_ptr(0)=ptr_new(Trans/max(Trans)) & nu_ptr(0)=ptr_new(freq) & wav_ptr(0)=ptr_new(cmic/freq)
  837 +
  838 +chipass_struct={Name:'CHIPASS',Nbands:Nband,filter_names:filt_names,central_wavelengths:wfilt_chipass,central_frequencies:cmic/wfilt_spass, $
  839 + filter_wavelengths:wav_ptr,filter_frequencies:nu_ptr,filter_transmissions:T_ptr, $
  840 + use_frequencies:use_nu,use_transmissions:use_T,use_wavelengths:use_w,use_wmin:dblarr(Nband),use_wmax:dblarr(Nband),cc_method:'dustem_cc_spass'}
  841 +
  842 +;======================================================
819 ;==== NIKA2 843 ;==== NIKA2
820 ;====================================================== 844 ;======================================================
821 IF print_messages THEN message,'Reading NIKA2 filters',/continue 845 IF print_messages THEN message,'Reading NIKA2 filters',/continue
@@ -1045,6 +1069,7 @@ dm_filter_struct={ $ @@ -1045,6 +1069,7 @@ dm_filter_struct={ $
1045 LABOCA:laboca_struct, $ 1069 LABOCA:laboca_struct, $
1046 GISMO:gismo_struct, $ 1070 GISMO:gismo_struct, $
1047 SPASS:spass_struct, $ 1071 SPASS:spass_struct, $
  1072 + CHIPASS:chipass_struct, $
1048 NIKA2:nika2_struct, $ 1073 NIKA2:nika2_struct, $
1049 SCUBA2:scuba2_struct, $ 1074 SCUBA2:scuba2_struct, $
1050 IRS:irs_struct, $ 1075 IRS:irs_struct, $
src/idl/dustem_show_file_dependencies.pro
@@ -72,7 +72,9 @@ dustem_fit_ext_pol_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile3.fi @@ -72,7 +72,9 @@ dustem_fit_ext_pol_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile3.fi
72 dustem_fit_sed_ext_pol_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile4.fits' 72 dustem_fit_sed_ext_pol_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile4.fits'
73 dustem_fit_intensity_mbb_example,Nitermax=1,postscript='/tmp/dustemwrap_postcript_example.ps' 73 dustem_fit_intensity_mbb_example,Nitermax=1,postscript='/tmp/dustemwrap_postcript_example.ps'
74 ;=== for some reason plot goes red here under fawlty 74 ;=== for some reason plot goes red here under fawlty
  75 +;=== and fails when run with only the minimal dustemwrap installed (stellar . txt file is missing)
75 dustem_myisrf_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile5.fits' 76 dustem_myisrf_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile5.fits'
  77 +;=== fails when run with only the minimal dustemwrap installed (stellar . txt file is missing)
76 dustem_stellarpopisrf_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile6.fits' 78 dustem_stellarpopisrf_example,Nitermax=1,fits_save_and_restore='/tmp/mysavefile6.fits'
77 dustem_fit_intensity_example,Nitermax=1,/noobj 79 dustem_fit_intensity_example,Nitermax=1,/noobj
78 80