An ENVI program to create a mean spectrum from a spectral library
This Help Article provides example code which will create a mean spectrum from an input spectral library and output this result to a new ENVI plot window.
Currently, the only tool in ENVI which can be used to create a mean spectrum from multiple input spectra is the Spectral Math tool using an equation such as '(s1+s2) / 2'. However, this tool requires that the user map each input spectrum in the spectral library to an individual 'sn' variable which can be time-consuming for large spectral libraries. The below code will create a mean spectrum from the selected spectral library.
pro create_mean_spectrum
compile_opt idl2
;select the input spectral library
envi_select, fid=fid, dims=dims, pos=pos, title='Select input spectral library'
if (fid[0] eq -1) then return
envi_file_query, fid, ns=ns, nl=nl, wl=wl
;create a mean spectrum
out_profile=fltarr(ns)
for i=0, ns-1 do begin
dims[2] = i
x=envi_get_data(fid=fid, dims=dims, pos=0)
out_profile[i]=mean(x)
dims[1] = dims[1]+1
endfor
;plot the mean spectrum in a new ENVI plot window
x_axis= wl
y_axis = out_profile[*]
envi_plot_data, x_axis, xtitle='Wavelength', y_axis, ytitle='Sample average'
end
Review on 12/31/2013 MM