How to calculate the maximum and minimum pixel value of a multispectral or time series dataset
This is an example of how to create an image of minimum or maximum pixel values from a multispectral or time series dataset. This example calculates the minimum and maximum for each pixel through a multispectral or time series dataset using IDL's MAX routine.
================================
pro max_min_value
compile_opt IDL2
;select the dataset
fname = envi_pickfile(title = 'Select an input file')
envi_open_file, fname, r_fid=fid
if (fid eq -1) then return
;query the file
envi_file_query, fid, ns=ns, nl=nl, nb=nb, data_type=dt
;set up the pos and dims array
pos=lindgen(nb)
dims = [-1, 0, ns-1, 0, nl-1]
;generate an array to hold the output values
banddata = make_array(ns, nl, nb, type=dt)
;get the data
for i=0, nb-1 do begin
data = ENVI_GET_DATA(fid=fid, dims=dims, pos=[i])
banddata[*, *, i] = data
endfor
;calculate the max/min values
maxdata = max(banddata, dimension=3, min=mindata)
;write out the datafiles and place them in the ABL
envi_write_envi_file, maxdata, out_name='max_values.img'
envi_write_envi_file, mindata, out_name='min_values.img'
end
Review on 12/31/2013 MM