Commit 39cfd6cf646df84e07225acb0f3a2c399a08dfda
Exists in
master
Merge branch 'master' of https://gitlab.irap.omp.eu/OV-GSO-DC/dustem-wrapper_idl
Showing
8 changed files
with
54 additions
and
7 deletions
Show diff stats
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 |