This task uses a trained TensorFlow pixel segmentation model to perform inference on a raster in regions that contain features of interest identified by a grid model (patent pending). The result is a classification image and a grid output vector. An optional output is a class activation raster whose pixel values represent the probability (0 to 1) of matching the feature of interest.
            This task is part of ENVI Deep Learning, which requires a separate license and installation.
            Example
            Sample data files are available on our ENVI Tutorials web page. Click the "Deep Learning" link in the ENVI Tutorial Data section to download a .zip file containing the data. Extract the contents to a local directory. The files are located in Grid_Tutorial_Data\Classification\ under the Models and Rasters subdirectories.
            
            e = ENVI()
             
            
            
            
            RasterURI = 'C:\MyTutorialFiles\california_1_subset_20090623.dat'
            Raster = e.OpenRaster(RasterURI)
             
            
            
            
            PixelModelURI = 'C:\MyTutorialFiles\TrainedPixelModel.h5'
            PixelModel = ENVITensorFlowModel(PixelModelURI)
             
            
            
            
            GridModelURI = 'C:\MyTutorialFiles\TrainedGridModel.h5'
            GridModel = ENVITensorFlowGridModel(GridModelURI)
             
            
            Task = ENVITask('TensorFlowOptimizedPixelClassification')
             
            
            Task.INPUT_RASTER = Raster
            Task.INPUT_PIXEL_MODEL = PixelModel
            Task.INPUT_GRID_MODEL = GridModel
            Task.CONFIDENCE_THRESHOLD = 0.7
            Task.OUTPUT_CLASSIFICATION_RASTER_URI = e.GetTemporaryFilename('.dat', /CLEANUP_ON_EXIT)
            Task.OUTPUT_VECTOR_URI = e.GetTemporaryFilename('.shp', /CLEANUP_ON_EXIT)
             
            
            Task.Execute
             
            
            e.Data.Add, Task.OUTPUT_CLASSIFICATION_RASTER
            e.Data.Add, Task.OUTPUT_VECTOR
             
            
            View = e.GetView()
            Layer1 = View.CreateLayer(Raster)
             
            
            classRaster = Task.OUTPUT_CLASSIFICATION_RASTER
            classRaster.Metadata['data ignore value'] = 0
            classRaster.WriteMetadata
            Layer2 = View.CreateLayer(classRaster)
            Layer3 = View.CreateLayer(Task.OUTPUT_VECTOR)
             
            
            View.Zoom, 1.0, /OUT
            end
            Syntax
            Result = ENVITask('TensorFlowOptimizedPixelClassification')
            Input properties (Set, Get): CONFIDENCE_THRESHOLD, INPUT_RASTER, INPUT_GRID_MODEL, INPUT_PIXEL_MODEL, OUTPUT_CLASS_ACTIVATION_RASTER_URI, OUTPUT_CLASSIFICATION_RASTER_URI, OUTPUT_VECTOR_URI
            Output properties (Get only): OUTPUT_CLASS_ACTIVATION_RASTER, OUTPUT_CLASSIFICATION_RASTER, OUTPUT_VECTOR
            Properties marked as "Set" are those that you can set to specific values. You can also retrieve their current values any time. Properties marked as "Get" are those whose values you can retrieve but not set.
            Methods
            This task inherits the following methods from ENVITask. See the ENVITask topic in ENVI Help.
                             - AddParameter
- Execute
- Parameter
- ParameterNames
- RemoveParameters
Properties
            This task inherits the following properties from ENVITask:
            COMMUTE_ON_DOWNSAMPLE
            COMMUTE_ON_SUBSET
            DESCRIPTION
            DISPLAY_NAME
            NAME
            REVISION
            See the ENVITask topic in ENVI Help for details. 
            This task also contains the following properties:
            CONFIDENCE_THRESHOLD (optional)
            Specify a floating-point threshold value between 0 and 1.0. Bounding boxes with a confidence score less than this value will be discarded before applying the IOU_THRESHOLD. The default value is 0.2. Decreasing this value generally results in more classification bounding boxes throughout the scene. Increasing it results in fewer classification bounding boxes.
            INPUT_RASTER (required)
            Specify the raster to classify.
            INPUT_GRID_MODEL (required)
            Specify a trained TensorFlow grid model that was used to classify features within the input raster.
            INPUT_PIXEL_MODEL (required)
            Specify a trained pixel segmentation model to classify features in grid-detected cells.
            OUTPUT_CLASS_ACTIVATION_RASTER (optional)
            This is a reference to the output class activation raster of filetype ENVI. It is a float raster with one band for each class, including the background class, whose values range from 0 to 1.
            OUTPUT_CLASS_ACTIVATION_RASTER_URI (optional)
            Specify a string with the fully qualified filename and path of the associated OUTPUT_CLASS_ACTIVATION_RASTER. If you do not set this property, the class activation raster will not be created. You must set this property or the OUTPUT_CLASSIFICATION_URI property. You can also set both.
            OUTPUT_CLASSIFICATION_RASTER (optional)
            This is a reference to the output classification raster of filetype ENVI. It is a single-band byte raster whose values range from 0 to the number of classes.
            OUTPUT_CLASSIFICATION_RASTER_URI (optional)
            Specify a string with the fully qualified filename and path of the associated OUTPUT_CLASSIFICATION_RASTER. If you do not set this property, the classification raster will not be created. You must set this property or the OUTPUT_CLASS_ACTIVATION_URI property. You can also set both.
            OUTPUT_VECTOR (required)
            This is a reference to the output vector.
            OUTPUT_VECTOR_URI (optional)
            Specify a string with the fully qualified path and filename for OUTPUT_VECTOR.
            Version History
            
                                                  
                                                      
                        | Deep Learning 3.0 | Introduced | 
                              
            See Also
            TrainTensorFlowGridModel Task, TrainTensorFlowPixelModel Task