This function creates an ENVIRaster with an expanded number of bands. Dimensionality expansion is a mathematical technique to increase multispectral data dimensionality in a nonlinear fashion so that standard hyperspectral linear methods can perform better at both pure-and mixed-pixel detection and classification. These hyperspectral methods include Orthogonal Subspace Projection (OSP), Constrained Energy Minimization (CEM), Matched Filter (MF), and Adaptive Coherence Estimator (ACE). The additional bands are created by computing the square roots, natural logs, auto-correlations (squares), and cross-correlations of the input bands.
The result is a virtual raster, which has some additional considerations with regard to methods and properties. See Virtual Rasters for more information, including how they differ from ENVITasks.
The equivalent task is DimensionalityExpansionRaster.
References
Chang, C.-I., J.-M. Liu, H. Ren, C.-M. Chung, C.-W. Yang, and D.-J. Ma. "Generalized Constrained Energy Minimization Approach to Subpixel Target Detection for Multispectral Imagery." Optical Engineering 39, No. 5 (2000): 1275-1281.
Heinz, D. "Constrained Least Squares Approaches to Target Detection and Image Classification for Remotely Sensed Images." Ph.D. dissertation. University of Maryland Baltimore County (2001).
Heinz, D., and C.-I. Chang. "Fully Constrained Least Squares Linear Spectral Mixture Analysis Method for Material Quantification in Hyperspectral Imagery." IEEE Transactions on Geoscience and Remote Sensing 39, No. 3 (2001): 529-545.
Heinz, D., and C.-I. Chang. "Unsupervised Fully Constrained Least Squares Linear Spectral Mixture Analysis Method for Multispectral Imagery." Proceedings of IGARSS 2000: 1681-1683.
Example
This example creates and adds 18 new bands to a four-band multispectral raster. After the image is displayed in the view, open the Data Manager to see the additional bands.
e = ENVI()
File = FILEPATH('qb_boulder_msi', ROOT_DIR=e.ROOT_DIR, $
SUBDIRECTORY = ['data'])
Raster = e.OpenRaster(File)
dimRaster = ENVIDimensionalityExpansionRaster(Raster)
e.Data.Add, dimRaster
View = e.GetView()
Layer = View.CreateLayer(dimRaster)
Syntax
Result = ENVIDimensionalityExpansionRaster(Input_Raster [, ERROR=variable)
Return Value
This function returns a reference to an ENVIRaster.
Arguments
Input_Raster
Specify an input multispectral ENVIRaster. It should contain integer or floating-point data values greater than 1. If the raster contains reflectance values that range from 0 to 1, the tool will produce meaningless results for the natural log and square root bands. If QUAC or FLAASH were used to produce reflectance images, they automatically scale the pixel values by 10,000 so that no further scaling is necessary.
Methods
Dehydrate
Hydrate
Keywords
ERROR (optional)
Set this keyword to a named variable that will contain any error message issued during execution of this routine. If no error occurs, the ERROR variable will be set to a null string (''). If an error occurs and the routine is a function, then the function result will be undefined.
When this keyword is not set and an error occurs, ENVI returns to the caller and execution halts. In this case, the error message is contained within !ERROR_STATE and can be caught using IDL's CATCH routine. See IDL Help for more information on !ERROR_STATE and CATCH.
See Manage Errors for more information on error handling in ENVI programming.
Version History
API Version
4.3
See Also
ENVIRaster, DimensionalityExpansionRaster Task, DimensionalityExpansionSpectralLibrary Task