X
3550

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