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:
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