FUNCTION phangs_stellar_continuum_plugin_weight2params,weights,parameter_values=parameter_values,redenning=reddening,amplitude=amplitude, $ force_include_reddening=force_include_reddening,force_include_amplitude=force_include_amplitude,help=help ;+ ; NAME: ; phangs_stellar_continuum_plugin_weight2params ; PURPOSE: ; converts weights (and reddening and amplitude) into parameter decription and parameter value arrays. Only non-zero weights are set. ; CATEGORY: ; DustEM ; CALLING SEQUENCE: ; parameter_description=phangs_stellar_continuum_plugin_weight2params(weights[,parameter_values=][,redenning=][,amplitude=]) ; INPUTS: ; weights = a 2-D weights array (understood has having dimension [Nage,NZ]) ; OPTIONAL INPUT PARAMETERS: ; reddening = reddening value (for null values, use an array [0.] to force setting the keyword) ; amplitude = amplitude value (for null values, use an array [0.] to force setting the keyword) ; OUTPUTS: ; weights = weights array (dim [Nage,NZ]) ; OPTIONAL OUTPUT PARAMETERS: ; parameter_values = parameter values ; ACCEPTED KEY-WORDS: ; force_include_reddening = if set, force including reddening as a parameter, even if redenning=0. ; force_include_amplitude = if set, force including amplitude as a parameter, even if amplitude=0. ; help = if set, print this help ; COMMON BLOCKS: ; None ; SIDE EFFECTS: ; None ; RESTRICTIONS: ; ; PROCEDURE: ; ; EXAMPLES ; ; MODIFICATION HISTORY: ; Written by JPB Jan 2024 ; Evolution details on the DustEMWrap gitlab. ; See http://dustemwrap.irap.omp.eu/ for FAQ and help. ;- IF keyword_set(help) THEN BEGIN doc_library,'phangs_stellar_continuum_plugin_weight2params' parameter_description=0. goto,the_end ENDIF params_str='dustem_plugin_phangs_stellar_continuum_' Nage=(size(weights))[1] NZ=(size(weights))[2] parameter_description=[''] parameter_values=[0.] IF keyword_set(amplitude) or keyword_set(force_include_amplitude) THEN BEGIN IF not keyword_set(amplitude) THEN use_amplitude=0. ELSE use_amplitude=amplitude parameter_description=[parameter_description,params_str+'1'] parameter_values=[parameter_values,use_amplitude] ENDIF IF keyword_set(reddening) or keyword_set(force_include_reddening) THEN BEGIN IF not keyword_set(reddening) THEN use_reddening=0. ELSE use_reddening=reddening parameter_description=[parameter_description,params_str+'2'] parameter_values=[parameter_values,use_reddening] ENDIF ij=lonarr(1,2) pd_offset=n_elements(fpd) weights_offset=2 ;first offset is element#2 of parameters FOR i=0L,Nage-1 DO BEGIN FOR j=0L,NZ-1 DO BEGIN IF weights[i,j] NE 0. THEN BEGIN ij[0,0]=i ij[0,1]=j ind=ij2index(ij,[Nage,Nz])+weights_offset+1 ;+1 because parameters numbering start at 1 parameter_description=[parameter_description,params_str+strtrim(ind[0],2)] parameter_values=[parameter_values,weights[i,j]] ENDIF ENDFOR ENDFOR parameter_description=parameter_description[1:*] parameter_values=parameter_values[1:*] the_end: RETURN,parameter_description END