31456
What's New in ENVI 5.4, Service Pack 1
What's New in ENVI 5.4, Service Pack 1
This software release includes the new and enhanced features listed below. See the following
sections:
- Supported Data Types
- Display Tools
- Image Processing
- Programming
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 routine,
ENVIGeneratePointCloudsByDenseImageMatchingTask, 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
routine, ENVIGeneratePointCloudsByDenseImageMatchingTask, 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
Object |
Description |
ENVIBinaryMorphologicalFilterTask |
Perform binary morphological filtering on an
ENVIRaster. |
ENVICastRasterTask |
Convert pixel values in an ENVIRaster to a
different data type; for example, unsigned
integer. |
ENVIExtractRastersFromRasterSeriesTask |
Extract individual rasters from an
ENVIRasterSeries. |
ENVIGrayscaleMorphologicalFilterTask |
Perform grayscale morphological filtering on
an ENVIRaster. |
ENVIPixelwiseBandMathRasterTask |
Apply a mathematical expression to an
ENVIRaster on a pixel-by-pixel basis. |
ENVIROIStatisticsTask |
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
ENVIParameterENVIVector
ENVIParameterENVIVectorArray