X
4150

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