This software release includes the new and enhanced features listed below. See the following sections:

Supported Data Types


ENVI supports the following sensors and data types:

  • ADS80 Level-2 products (ENVI previously supported only Level-1 products)
  • Landsat 8 Surface Reflectance data
  • PlanetScope
  • Sentinel-2 Level-2A, including files distributed by Amazon Web Services
  • Sentinel-3 Ocean and Land Colour Instrument (OLCI) and Sea and Land Surface Temperature Radiometer (SLSTR)
  • UrtheCast Theia

With the classified ENVI DoD plug-in, ENVI can read NITF files with replacement sensor model (RSM) georeferencing. It will save the RSM spatial reference to an ENVI header file, and it can repopulate a new NITF file with the same spatial reference information.

ADS80 tiled files now open as one image instead of as individual TIFF files. Use the File > Open menu option and select an .ads file.

ENVI reads reflectance gain and offset metadata from SPOT-7 and Pleiades DIMAP V2 imagery. You can calibrate these images to top-of-atmosphere reflectance using the Radiometric Calibration tool.

Display Tools


When setting a default stretch for images in ENVI format, you can specify optional minimum and maximum values to apply. If you do not specify a range of values, then the default maximum and minimum values will be calculated using 2% and 98% thresholds from the image histogram. This feature has always applied to Linear stretches. Now it includes Square Root, Gaussian, Equalization, and Logarithmic stretches.

Image Processing


ENVI supports ArcGIS versions 10.4 and 10.5.

ADS80 images can be used with the ENVI Photogrammetry Module.

The Generate Point Clouds and DSM by Dense Image Matching tool (available with the ENVI Photogrammetry Module) has two new parameters:

  • Terrain Type: Choose whether the input image contains mostly flat or mountainous terrain. The associated API task, GeneratePointCloudsByDenseImageMatching, has a new TERRAIN_TYPE parameter.
  • Refine Point Clouds: If this is set to Yes, the output point clouds will have smoothed height values but will not contain any intensity or color information. The associated API task, GeneratePointCloudsByDenseImageMatching, has a new REFINE_POINT_CLOUDS parameter.

Masking updates:

  • A new Data Ignore Value field is available in the Save File As Parameters dialog when you save an image to disk. This allows you to select a specific pixel value that ENVI should ignore when processing an image or computing statistics. Click the Find Suitable Data Ignore Value button to automatically find a suitable value to use, based on the image statistics and data type.
  • The Apply Mask tool was removed from the ENVI Toolbox. Instead, use the Mask button in the File Selection dialog to select a masked raster. See the Masks help topic for details. Also, the Build Mask tool was renamed to Build Raster Mask.
  • A new Masks help topic describes how to create and apply masks in the ENVI user interface and API.

  • Most ENVITasks now support the use of masks.

Programming


The ENVI API Programming Guide in the ENVI Help has a new Metatasks topic with a working example of how to create "a task of tasks" using the ENVI API.

The ENVI routine has a new API_VERSION property. Its value represents the semantic version for the ENVI API. This version number is different from the marketing version number (for example, 5.4.1). Semantic versioning provides a quick way to extract information about a new software release using a convention of X.Y.Z, where:

  • X represents the major version. An incremented value indicates that API additions and updates are not backward-compatible.
  • Y represents the minor version. An incremented value indicates that API additions and updates are backward-compatible.
  • Z represents the patch number. An incremented value indicates bug fixes that do not affect the API.

Backward-Compatibility Notes

IDL 8.6.1 introduces better error messages from JSON_PARSE on malformed input, including contextual information. This feature introduced a new member variable to the IDLffJson class, which can cause problems with save files built in IDL 8.6 or earlier. If your save file includes the JSON_PARSE or JSON_SERIALIZE function, then loading that save file into IDL 8.6.1 will replace the definition of the IDLffJson class with the older version, and subsequent calls to JSON_PARSE and JSON_SERIALIZE will cause a runtime error due to an unknown member variable. The fix is to rebuild your save file in IDL 8.6.1, or to explicitly call RESTORE on your save file with the /SKIP_EXISTING keyword to prevent the replacement of the class definition.

The default schema key has changed to envitask_3.1 in task templates. This schema allows you to set the uri_param property on output parameters of API objects that are URI-based. The uri_param property is set to the name of an input parameter of type ENVIURI or ENVIURIArray that you want to associate with the output parameter. This property is used by the ENVIUI::SelectTaskParameters method to automatically populate the URI parameter widgets when it is displayed. The uri_param property is not supported in previous task schema versions.

New Objects

Object

Description

ENVICastRaster

Construct an ENVIRaster from a source raster where pixel values have been converted to a specified data type; for example, unsigned integer.

ENVINITFCSMRasterSpatialRef

This is a reference to a NITF replacement sensor model (RSM) spatial reference object. It is only available with the classified ENVI DoD plug-in.

New ENVITasks

Task

Description

BinaryMorphologicalFilter

Perform binary morphological filtering on an ENVIRaster.

CastRaster

Convert pixel values in an ENVIRaster to a different data type; for example, unsigned integer.

ExtractRastersFromRasterSeries

Extract individual rasters from an ENVIRasterSeries.

GrayscaleMorphologicalFilter

Perform grayscale morphological filtering on an ENVIRaster.

PixelwiseBandMathRaster

Apply a mathematical expression to an ENVIRaster on a pixel-by-pixel basis.

ROIStatistics

Compute statistics from one or more ENVIROIs and their associated raster.

Parameter Classes

The following are new parameter classes for each ENVI data type. They provide better dehydration and rehydration support for DEFAULT or VALUE parameters in task templates. Advanced ENVI API programmers can use these objects to create custom data types for ENVITasks. These replace the ENVITaskParameter routine, which has been deprecated.

ENVIParameterENVIAbortable

ENVIParameterENVIClassifier

ENVIParameterENVIClassifierArray

ENVIParameterENVIConfusionMatrix

ENVIParameterENVIConfusionMatrixArray

ENVIParameterENVICoordSys

ENVIParameterENVICoordSysArray

ENVIParameterENVIExamples

ENVIParameterENVIExamplesArray

ENVIParameterENVIGCPSet

ENVIParameterENVIGCPSetArray

ENVIParameterENVIGeoJSON

ENVIParameterENVIGLTRasterSpatialRef

ENVIParameterENVIGLTRasterSpatialRefArray

ENVIParameterENVIGridDefinition

ENVIParameterENVIGridDefinitionArray

ENVIParameterENVIPointCloud

ENVIParameterENVIPointCloudBase

ENVIParameterENVIPointCloudProductsInfo

ENVIParameterENVIPointCloudQuery

ENVIParameterENVIPointCloudSpatialRef

ENVIParameterENVIPointCloudSpatialRefArray

ENVIParameterENVIPseudoRasterSpatialRef

ENVIParameterENVIPseudoRasterSpatialRefArray

ENVIParameterENVIRaster

ENVIParameterENVIRasterArray

ENVIParameterENVIRasterMetadata

ENVIParameterENVIRasterMetadataArray

ENVIParameterENVIRasterSeries

ENVIParameterENVIRasterSeriesArray

ENVIParameterENVIROI

ENVIParameterENVIROIArray

ENVIParameterENVIRPCRasterSpatialRef

ENVIParameterENVIRPCRasterSpatialRefArray

ENVIParameterENVISpectralLibrary

ENVIParameterENVISpectralLibraryArray

ENVIParameterENVIStandardRasterSpatialRef

ENVIParameterENVIStandardRasterSpatialRefArray

ENVIParameterENVITaskCatalog

ENVIParameterENVITaskInfo

ENVIParameterENVITiePointSet

ENVIParameterENVITiePointSetArray

ENVIParameterENVITime

ENVIParameterENVITimeArray

ENVIParameterENVITrainer

ENVIParameterENVITrainerArray

ENVIParameterENVIURI

ENVIParameterENVIURIArray

ENVIParameterENVIVector

ENVIParameterENVIVectorArray