How to perform an MNF transform using previous statistics programmatically
This Help Article discusses how to apply a MNF (minimum noise fraction) forward transform to a dataset using previously calculated statistics programmatically. Currently, the documentation for MNF_DOIT does not discuss how you can use previous statistics to perform an MNF transform.
The following code sample can be used to perform a MNF transform to ENVI's sample dataset, "can_tmr.img" located in the \ENVIxx\data directory using previously calculated noise statistics. The noise statistics were calculated from a previous MNF transform on ENVI's sample dataset, "bhtmref.img".
-------------------------------------------------
pro example_mnf_w_previous_stats
compile_opt idl2
;open and query the data file to transform
envi_open_file, 'can_tmr.img', r_fid=fid
if (fid eq -1) then begin
envi_batch_exit
return
endif
envi_file_query, fid, dims=dims, nb=nb
pos = lindgen(nb)
out_name = 'test_can_mnf.img'
;open the previously calculated noise statistics
sta_name = 'bh_noise.sta'
;get the eigenvalues and eigenvectors
;from the noise statistics file
envi_get_statistics, sta_name, eval=eval, evec=evec
;perform the MNF transform using the previously
;calculated eval and evec
envi_doit, 'mnf_doit', $
fid=fid, pos=pos, dims=dims, noise_evec=evec, noise_eval=eval, $
sd_dims=dims, out_name=out_name, $
in_memory=0, sta_name='', /no_plot, $
r_fid=r_fid
end
Review on 12/31/2013 MM