This routine is obsolete and has been replaced with the QuerySpectralIndices task.
This function returns the number of vegetation indices that can be calculated on an input data file. It can optionally return the names of these indices, a classification describing the purpose of the index, or, if no indices are available, a descriptive error specifying the reason why.
Syntax
Result = ENVI_VEG_INDEX_AVAILABLE_INDICES (FID [, ERROR_STRING=string] [, VI_LIST=array] [, VI_NAMES=string] [, VI_TYPE=array])
Arguments
FID
Use this keyword to specify the file ID for the input file.
Keywords
ERROR_STRING (optional)
Set this keyword to a named variable in which to return a descriptive error string describing the reason that no vegetation indices are available, if the return value of the function is 0. Otherwise, this keyword is undefined.
VI_LIST (optional)
Set this keyword to a named variable in which to return an array of long integers containing the numeric indices associated with each vegetation index available for calculation, if any. These indices can be used to specify the desired subset of indices for the ENVI_VEG_INDEX_DOIT procedure to calculate. If the ENVI_VEG_INDEX_AVAILABLE_INDICES return value is 0, this keyword is undefined.
VI_NAMES (optional)
Set this keyword to a named variable in which to return a string array containing the names of all vegetation indices available for calculation, if any. If the ENVI_VEG_INDEX_AVAILABLE_INDICES return value is 0, this keyword is undefined.
VI_TYPE (optional)
Set this keyword to a named variable in which to return a string containing the names of the categories for all vegetation indices available for calculation. If the ENVI_VEG_INDEX_AVAILABLE_INDICES return value is 0, this keyword is undefined.
Example
The following example code shows how to calculate a subset of VIs.
PRO EXAMPLE_VEG_INDEX_2
compile_opt IDL2
envi, /restore_base_save_files
envi_batch_init, log_file='batch.txt'
envi_open_file, envi_pickfile(), r_fid=fid
if (fid eq -1) then begin
envi_batch_exit
return
endif
if (~ENVI_VEG_INDEX_AVAILABLE_INDICES(fid, vi_list=vi_list, $
vi_names=vi_names, vi_type=vi_type, $
error_string=error_string)) then begin
print, error_string
envi_batch_exit
return
endif
vi_subset = where(vi_type eq 'Broadband Greenness', count)
if (count eq 0) then begin
print, 'Error: No broadband greenness indices are available.'
envi_batch_exit
return
endif
envi_doit, 'envi_veg_index_doit', fid=fid, in_memory=0, $
out_name='veg_indices.dat', vi_list=vi_list[vi_subset]
envi_batch_exit
END