X
6227

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