This software release includes features added in the ENVI 5.3 SP1 and SP2 releases, as well as new and enhanced features listed below.
Installation and Licensing
ENVI licensing is now managed through a third-party solution from Flexera Software. You obtain the license through a portal hosted by Flexera, then you can choose to activate the license on a license server or on an individual node-locked machine. Details about ENVI licensing are documented in a standalone topic outisde of this Help.
By default, ENVI installs under a Harris directory. It was previously Exelis:
- Windows: C:\Program Files\Harris\ENVI54
- Linux: /usr/local/harris/envi54
- Mac: /Applications/harris/envi54
ENVI and IDL have separate installers. If IDL and ENVI are both installed on the same system, the Help application contains the help for both products.
Supported Data Types
ENVI supports the following sensors and data types:
- ADS80 Level-1 products
- GOES-R
- Himawari-8
- NetCDF-3
- TripleSat
Dataset Browser
The Dataset Browser was redesigned to let you easily build new ENVI rasters that contain a combination of scientific data, attributes, and latitude/longitude information from HDF and NetCDF files. Use the File > Open As > Scientific Formats > format menu option to access the Dataset Browser. Here are some other updates:
-
The Dataset Browser user interface has new icons to simplify the process of building new rasters.
-
You can map attributes from the source dataset to standard ENVI header fields.
-
You can add standard ENVI header fields to the new raster with known metadata values.
-
You can add VData fields from HDF4 files to the new raster. Each raster can only have one VData field. You cannot combine VData fields with other datasets.
-
You can select latitude and longitude datasets from the source file and add them to a Geographic Information folder in the Raster Builder. When you display the raster, ENVI georeferences the raster on-the-fly in the Image window, using the latitude and longitude information. It does not actually geocorrect the dataset.
-
You can create a report of the data fields and metadata that comprise a raster. The available formats are text, XML, or JSON. With HDF4 files, JSON is the only available option.
-
ENVI programmers can manually create XML templates for reading data in HDF4 and NetCDF-3 datasets. Previously, templates only worked with HDF5 and NetCDF-4 datasets. Templates are helpful in building the same raster and metadata structure from several scientific data formats. Using a template prevents you from having to use the Dataset Browser to re-define the raster and metadata for every file. See the "Open Scientific Data Formats" topic in ENVI Help for more information.
Image Processing
The Generate Point Clouds and DSM by Dense Image Matching tool generates digital surface models (DSMs) in TIFF format, in addition to point clouds. This tool is part of the ENVI Photogrammetry Module and requires a separate license and installation of that module. This tool runs on Windows 64-bit platforms only.
Use the RPC Orthorectification Using DSM from Dense Image Matching tool to perform RPC orthorectification using a digital surface model (DSM). The DSM is generated from two or more images taken from different view points. It is used as the terrain source to orthorectify the first raster in the input rasters. This tool is part of the ENVI Photogrammetry Module and requires a separate license and installation of that module. This tool runs on Windows 64-bit platforms only.
The RPC Orthorectification Using Reference Image tool was updated to include a new parameter: Output Pixel Size in the X and Y direction, in meters. The default value is derived from the pixel size of the input image.
Use the Edit Classification Image tool to reassign classes in classification images. You can also use this tool with the results of viewshed analysis or thematic change detection.
The Color Point Cloud tool uses red/green/blue (RGB) data from a raster to colorize a LAS file of the same location. Each point of the point cloud receives the RGB value of the raster pixel that has the same location.
The Image Registration workflow has been updated as follows:
-
The base image and warp image are displayed using side-by-side views instead of separate windows.
-
New buttons and controls are provided for reviewing and managing tie points.
-
A new Predict Warp Location option is available. When you click on a feature point in the base image and this option is enabled, ENVI will use an image-matching technique to try to find the corresponding location in the warp image. This prevents you from having to manually select tie points in both images.
Use the Dice Raster tools to separate a raster into tiles based on tile count, distance, pixel count, or a vector shapefile. The Dice Raster tools are in the ENVI Toolbox under Raster Management > Raster Dicer.
Classification
The new ENVI classification framework provides a powerful and flexible way to classify data. You can create and train a classifier on one dataset and apply it to a similar dataset. Traditionally, classifiers are tied to one data source. With the new framework, you can train and evaluate the performance of a classifier once and apply it anywhere, including desktop or enterprise environments. Currently, the classification framework uses the ENVI application programming interface (API).
Here are some of the new features included in the classification framework:
- Softmax Regression classifier: Softmax is a generalization of logistic regression that is used for multi-class classification where classes are mutually exclusive. An example is classifying a satellite image into four different classes such as cloud, water, asphalt, and vegetation.
- Iterative and Gradient Descent trainers: These algorithms minimize classification error by iteratively reducing a loss function until it converges on a minimum value.
- Evaluate a classifier: New API routines are available to compute a confusion matrix and accuracy metrics. Once you train and evaluate a classifier, you can save the classifier to an IDL save file and use it to classify other similar datasets.
- New tutorials: "Classification Tutorial 1: Create an Attribute Image" describes how to create an image that consists of different attributes, which typically improves classification results. "Classification Tutorial 2: Collect Training Data" shows how to interactively define regions of interest (ROIs) that represent known land-cover types. The ROIs serve as ground truth data for supervised classification.
See the "ENVI Classification" topic in ENVI Help for details. Also see the "New Classification ENVITasks" and "New Classification Routines" sections below.
Stretch Types and Histograms
Several updates were made to the ENVI stretch and histogram manipulation tools:
- When you click the new Stretch on View Extent with auto update button, the selected stretch type automatically updates as you pan around the image.
- The Custom Stretch dialog was renamed to Histogram Stretch. It allows better control with red/green/blue histograms (for color images) or with greyscale histograms. You can adjust the minimum and maximum values of the histograms as well as the number of bins.
- The Contrast control works in conjunction with Linear, Equalization, Gaussian, Square Root, and Logarithmic stretch types.
- In previous versions, the stretch type changed to Custom when you adjusted the Contrast setting. The Custom option has since been removed from the Stretch Types drop-down list.
- The Brightness and Contrast controls are enabled when the Custom Histogram Stretch dialog is displayed. As you adjust the Contrast setting, both the minimum and maximum histogram points adjust accordingly in the Custom Histogram Stretch dialog (for red, green, and blue).
- Bipolar Stretch is a new option for the Stretch Types drop-down list.
Display Tools
You can affix certain annotation items to the display so that they remain stationary while you zoom, pan, and rotate. These are called on-the-glass annotations, and they include text, symbols, classification legends, color bars, and scale bars.
The Create Pyramid if None Exists preference was changed to a drop-down list with more options. It offers better flexibility in choosing whether or not to create pyramid files with datasets that have a large number of bands (such as hyperspectral imagery).
Use the Icon Size preference to adjust the size of icons in the ENVI application. If it is set to Automatic (default), ENVI checks your system's default font size and resizes icons accordingly. Other choices are as follows:
- Original - 100%: Icons display at their original size.
- Medium - 140%: Icons display at 140% of their original size.
You can add four new annotation types to the Image window view. These options are available from the Annotations drop-down menu in the toolbar:
- Legends for classification images
- Scale bars for georeferenced images
- Color bars for single-band greyscale images with color tables applied
- Grid lines for georeferenced images
JPG2000 and NITF C8/M8 compressed rasters display and process faster.
Programming
A new "Custom Tasks" tutorial shows how to write a custom task that creates vegetation indices from Sentinel-2A Level-1C imagery. New example files are provided with the tutorial in the /examples/tasks/sentinelexample folder of the ENVI installation path.
Use the envitaskengine executable to run ENVITasks in command-line environments. You can now plug ENVI analytics into applications in different programming languages or environments that share information. The environments must be able to handle standard streams (stdin, stdout, and stderr).
The ENVITask framework has been updated:
- The IGNORE_VALIDATE property for ENVITasks has been deprecated and has no effect on task behavior. All task property values are validated when they are set, and they throw an error with bad input.
- The ENVITask::Validate method has deprecated.
- The CHOICE_LIST, MAX, and MIN properties of ENVITaskParameter may not be present when the TYPE property is set to certain values. Use the QueryProperty method to find out if these properties are available.
- For the TYPE property in ENVITaskParameter, one-element arrays are no longer converted to scalars (and vice-versa).
- In custom task templates, the version key has changed to schema with the ENVI 5.4 release. Its only valid value is envitask 3.0. You can still specify version but its value must be 5.3.2 or earlier.
Dehydrate and Hydrate methods were added to all virtual rasters and data type objects.
If you create a custom task that displays a dialog for selecting parameters for an ENVITask or custom API script, you can include a style sheet to define the individual user interface (UI) elements. Examples of UI elements include file selection boxes, color pickers, and text boxes.
The ENVIGLTRasterSpatialRef routine now acts as a constructor function, allowing you to create a new geographic lookup table (GLT) spatial reference in the ENVI API. You can then open an ENVIRaster using the GLT spatial reference. See the ENVIGLTRasterSpatialRef help topic for details.
Backward-Compatibility Notes
The IGNORE_VALIDATE property for ENVITasks has been deprecated and has no effect on task behavior. All task property values are validated when they are set, and they throw an error with bad input.
The ENVITask::Validate method has deprecated.
The CHOICE_LIST, MAX, and MIN properties of ENVITaskParameter may not be present when the TYPE property is set to certain values. Use the QueryProperty method to find out if these properties are available.
In custom task templates, the version key has changed to schema with the ENVI 5.4 release. Its only valid value is envitask 3.0. You can still specify version but its value must be 5.3.2 or earlier.
For the TYPE property in ENVITaskParameter, one-element arrays are no longer converted to scalars (and vice-versa).
New ENVITasks
Task |
Description |
CalculateCloudMaskForProduct
|
Calculate a cloud mask for the following sensors: Landsat 4-5 TM, Landsat 7 ETM+, Landsat 8, Sentinel-2, and NPP VIIRS reflectance/thermal data. The task automatically performs the radiometric calibration required for the Fmask algorithm. You do not need to calibrate the imagery before running this task.
|
ColorPointCloud |
Color a point cloud using raster data.
|
CreateSubrectsFromDistance
|
Create a 2D array of subrects based on a specified distance. A subrect is a bounding box used to spatially subset a raster.
|
CreateSubrectsFromPixels
|
Create a 2D array of subrects based on a specified number of pixels.
|
CreateSubrectsFromTileCount
|
Create a 2D array of subrects based on a specified number of tiles.
|
CreateSubrectsFromVector
|
Create a 2D array of subrects based on the spatial extent of individual vector records.
|
DiceRasterByDistance
|
Separate a raster into tiles based on a specified distance.
|
DiceRasterByPixel
|
Separate a raster into tiles based on a specified number of pixels.
|
DiceRasterBySubrects
|
Create an array of rasters based on subrects.
|
DiceRasterByTileCount
|
Separate a raster into tiles based on a specified number of tiles.
|
DiceRasterByVector
|
Separate a raster into tiles based on the spatial extent of individual vector records.
|
ExportRastersToDirectory
|
Export multiple virtual rasters to a specified directory on disk.
|
ExportRasterToENVI
|
Export a raster to ENVI file format.
|
FirstOrderEntropyTexture
|
Compute first-order entropy texture on a raster.
|
LabelEntropyTexture
|
Compute first-order entropy texture on the label bands of a rank-strength-texture raster.
|
MirrorRaster |
Flip a raster horizontally, vertically, or both.
|
QueryAllTasks |
Return a hash where each key is the task name and each task name key contains a hash of the task's properties.
|
RankStrengthTexture
|
Compute label rank and strength texture metrics on a raster.
|
RGBToHSIRaster |
Transform the color space of a raster from red/green/blue (RGB) to hue/saturation/intensity (HSI).
|
RPCOrthorectificationUsingDSM FromDenseImageMatching
|
Perform RPC orthorectification using a digital surface model (DSM) generated from a dense image matching method.
|
TransposeRaster |
Interchange rows with columns in a raster.
|
New Classification ENVITasks
Task |
Description |
ApplyGainOffsetToExamples
|
This task applies a gain and offset to the examples in an ENVIExamples object. Its purpose is to get the data into a consistent range of values prior to classification.
|
CalculateConfusionMatrixFromRaster
|
This task returns a reference to an ENVIConfusionMatrix object computed from a classification raster and truth ROIs.
|
ClassifyRaster |
This task classifies a raster using a trained classifier.
|
CreateGradientDescentTrainer
|
This task creates a Gradient Descent trainer that can train a classifier using the TrainClassifier task.
|
CreateIterativeTrainer
|
This task creates an iterative trainer that can train a classifier using the TrainClassifier task.
|
CreateSoftmaxRegressionClassifier
|
This task creates a Softmax Regression classifier.
|
CreateSVMClassifier
|
This task creates a Support Vector Machine (SVM) classifier.
|
EvaluateClassifier
|
This task takes in truth examples, truth class values, and a classifier. It uses the classifier and truth examples (ignoring the truth class values) to calculate predicted class values. Then it computes a confusion matrix and accuracy metrics between the truth and predicted class values.
|
ExtractExamplesFromRaster
|
This task returns a reference to an ENVIExamples object that contains examples, class values, and other properties from an input raster and regions of interest (ROIs).
|
ShuffleExamples |
This task shuffles the examples and class values from an ENVIExamples object to randomize the order of the examples. Random ordering of the examples is important if the examples are split into multiple sets (such as training and evaluation sets).
|
SplitExamples |
This task splits the examples and class values from an ENVIExamples object into two sets of examples and class values. A common scenario is to use one set for training a classifier and the other set for evaluation.
|
TrainClassifier |
This task trains a classifier. It updates the original classifier instead of creating a new output classifier.
|
New Objects and Methods
Object/Method |
Description |
ENVI::RestoreSession
|
Restore an ENVI session file.
|
ENVI::SaveSession
|
Create an ENVI session file that specifies a layout configuration, files loaded into views, and their properties.
|
ENVICalibrateRaster
|
Construct an ENVIRaster from a source raster that has been calibrated to radiance, top-of-atmosphere (TOA) reflectance, or brightness temperatures.
|
ENVIFirstOrderEntropyTextureRaster
|
Construct an ENVIRaster from a source raster where first-order entropy texture has been computed on an input raster.
|
ENVIGeoJSON |
This is a wrapper around a GeoJSON representation that is stored as an IDL Hash. It is required input for tasks such as GeoJSONToROI that need a GeoJSON string.
|
ENVIGridLinesLayer
|
This is a reference to an ENVIGridLinesLayer object. Also see the ENVIView::CreateGridLinesLayer method below.
|
ENVILabelEntropyTextureRaster
|
Construct an ENVIRaster from a source raster where first-order entropy texture has been computed on the label bands of a rank-strength-texture raster.
|
ENVILayerStackRaster
|
Create a layer-stacked ENVIRaster from source rasters that have been regridded to a common spatial grid. The source rasters can be band groups within a metaspectral dataset (such as Landsat, ASTER, or Sentinel-2), or they can come from different raster files.
|
ENVIMirrorRaster
|
Construct an ENVIRaster from a source raster that has been flipped horizontally, vertically, or both.
|
ENVIRankStrengthTextureRaster
|
Construct an ENVIRaster from a source raster for which rank-based strength and label texture metrics have been computed.
|
ENVIRestoreObject
|
This function restores a persistable object from disk, including its saved properties and parameters.
|
ENVIRGBToHSIRaster
|
Construct an ENVIRaster from a source raster that has been transformed from a red/green/blue (RGB) to hue/saturation/intensity (HSI) color space.
|
ENVITaskParameter::QueryProperty
|
Return information about the properties of the parameter.
|
ENVITransposeRaster
|
Construct an ENVIRaster from a source raster that has been transposed.
|
ENVIUI::CreateFromDialog
|
Display a dialog containing a specified user interface (UI) element for selecting object or task parameters. It allows you to preview a user interface element when writing API scripts and custom tasks.
|
ENVIUI::SelectROI
|
Display a dialog for selecting regions of interest (ROIs).
|
ENVIView::CreateGridLinesLayer
|
Create grid lines to overlay on a raster or vector layer.
|
New Classification Routines
Routine |
Description |
ENVIApplyScaleOffsetToExamples
|
This function applies a gain and offset to the examples in an ENVIExamples object. Its purpose is to get the data into a consistent range of values prior to classification.
|
ENVICalculateConfusionMatrixFromRaster
|
This function returns a reference to an ENVIConfusionMatrix object computed from a classification raster and truth regions of interest (ROIs).
|
ENVIClassifyRaster
|
This function classifies a raster using a trained classifier.
|
ENVIConfusionMatrix
|
This function returns a reference to an ENVIConfusionMatrix object, which contains a confusion matrix and classification accuracy metrics that indicate how well a classifier performed.
|
ENVIEvaluateClassifier
|
This function takes in truth examples, truth class values, and a classifier. It uses the classifier and truth examples (ignoring the class values) to calculate predicted class values. Then it computes a confusion matrix and accuracy metrics between the truth and predicted class values.
|
ENVIExamples |
This is a reference to an ENVIExamples object, which contains examples and class values used as input to the training method of a classification trainer and to evaluate the performance of a classifier.
|
ENVIExtractExamplesFromRaster
|
This function creates an ENVIExamples object that contains examples, class values, and other properties from an input raster and regions of interest (ROIs).
|
ENVIGradientDescentTrainer
|
This function uses a Gradient Descent algorithm to train a classifier that reports a gradient; for example, Softmax Regression.
|
ENVIIterativeTrainer
|
This function uses an iterative loop to train a classifier that knows how to update its own weights; for example, Support Vector Machine (SVM).
|
ENVIShuffleExamples
|
This function shuffles examples and class values from an ENVIExamples object in order to create a random distribution of training data used for classification. Random ordering of the examples is important if the examples are split into multiple sets (such as training and evaluation sets).
|
ENVISoftmaxRegressionClassifier
|
This function classifies a dataset using a Softmax regression classifier.
|
ENVISplitExamples
|
This function splits examples and class values from an ENVIExamples object into two sets of examples and class values. A common scenario is to use one set for training a classifier and the other set for evaluation.
|
ENVISVMClassifier
|
This function classifies a dataset using a support vector machine (SVM) classifier.
|
ENVITrainClassifier
|
This function trains a classifier. It updates the original classifier instead of creating a new output classifier.
|