;----------------------------------------------------------------------- ; Savitzky-Golay Smoothing Filter ; Input: hyperspectral file, SG parameters(Nleft, Nright, Order, Degree) ; Output: smoothed hrs file. ; created by Shuai Tong 2012.8 ;----------------------------------------------------------------------- PRO SGFilter, Nleft, Nright, Order, Degree ; REFERENCE: HELP about SAVGOL ; Specify the following parameters!!! Nleft=5 ; lt nb/2 ? Nright=5 ; lt nb/2 ? Order=0 Degree=3 ;OPEN FILE file = DIALOG_PICKFILE(/READ, FILTER = '*.img') print,file ENVI_OPEN_FILE, file, r_fid=fid ENVI_FILE_QUERY, fid, dims=dims, ns=ns, nl=nl, nb=nb ; READ DATA fdata = fltarr(ns,nl,nb) for i=0,nb-1 do begin fdata[*,*,i] = ENVI_GET_DATA(fid=fid, dims=dims, pos=i) endfor ; Savitzky-Golay with XX, Nth degree polynomial: savgolFilter = SAVGOL(Nleft, Nright, Order, Degree) SGdata = CONVOL(transpose(fdata), savgolFilter, /EDGE_TRUNCATE) SGdata = transpose(SGdata) ; output OutName = file_basename(file,'.img')+'_SG.img' ENVI_WRITE_ENVI_FILE, SGdata, out_name=OutName END