This task is a preprocessing step that enhances crops in a single-band raster. The result can be passed to ENVIAgCropCount or AgCountAndRasterizeCrops Task. You can optionally set minimum and maximum pixel value thresholds on the input raster. The task then inverts the remaining pixel values, unless you choose to disable inversion.

This task requires a separate license for the ENVI Crop Science Module; contact your sales representative for more information.

Example


This example performs the following steps:

  1. Opens an orthophoto of a citrus orchard.
  2. Creates a spectral subset consisting of the green band only.
  3. Masks out pixel values greater than 90 in the green band. These are primarily soil pixels that need to be masked out.
  4. Inverts the thresholded green band image to make the citrus trees appear bright.
  5. Displays the result.
; Start the application
e = ENVI()
 
; Open an input file
File = Filepath('CitrusOrthophoto.dat', $
  Subdir=['data','crop_science'], $
  Root_Dir=e.Root_Dir)
Raster = e.OpenRaster(File)
 
; Define a spectral subset consisting of
; the green band
GreenBand = ENVISubsetRaster(Raster, BANDS=1)
 
; Get the task from the catalog of ENVITasks
Task = ENVITask('AgEnhanceCrops')
 
; Define task inputs
Task.INPUT_RASTER = GreenBand
Task.INPUT_MAX = 90 ; to mask out bright soil pixels
Task.INVERSE='true'
 
; Run the task
Task.Execute
 
; Get the collection of objects currently in the Data Manager
DataColl = e.Data
 
; Add the output to the Data Manager
DataColl.Add, Task.OUTPUT_RASTER
 
; Display the result
View = e.GetView()
Layer = View.CreateLayer(Task.OUTPUT_RASTER)

The resulting image still contains shadows, which have a similar brightness to the citrus trees in the inverted green band. It is difficult to remove these pixels without also removing vegetation pixels. See More Examples for a different method of isolating the citrus trees.

Syntax


Result = ENVITask('AgEnhanceCrops')

Input properties (Set, Get): INPUT_MAX, INPUT_MIN, INPUT_RASTER, INVERSE, OUTPUT_RASTER_URI

Output properties (Get only): OUTPUT_RASTER

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:

AddParameter

Execute

Parameter

ParameterNames

RemoveParameter

Properties


This task inherits the following properties from ENVITask:

COMMUTE_ON_DOWNSAMPLE

COMMUTE_ON_SUBSET

DESCRIPTION

DISPLAY_NAME

NAME

REVISION

TAGS

This task also contains the following properties:

INPUT_MAX (optional)

Specify a maximum data value. Pixels greater than this value are set to NaN and will be ignored in subsequent processing. An example is setting a maximum value to remove shadows or bright soil pixels in an inverted green band image. These features have a similar brightness value to healthy vegetation and should be removed to reduce confusion in crop-counting tasks.

INPUT_MIN (optional)

Specify a minimum data value. Pixels less than this value are set to NaN and will be ignored in subsequent processing. An example is setting a mimimum value to remove dark shadows from a spectral index image (such as NDVI) or from a single-band image where INVERSE = 'false'.

INPUT_RASTER (required)

Specify a single-band raster. If you have a multispectral dataset, you must create a spectral subset consisting of only one band.

INVERSE (optional)

Set this property to true (the default value) to invert the data. An example is to invert the values in a green band.

OUTPUT_RASTER

This is a reference to the output raster of filetype ENVI.

OUTPUT_RASTER_URI (optional)

Specify a string with the fully qualified filename and path of the associated OUTPUT_RASTER. If you do not specify this property, or set it to an exclamation symbol (!), a temporary file will be created.

More Examples


This example performs the following steps:

  1. Opens an orthophoto of a citrus orchard.
  2. Creates an Iron Oxide spectral index image to highlight soil pixels.
  3. Masks out pixel values greater than 1.092. These are primarily soil pixels.
  4. Masks out pixel values lower than 0.322. These are primarily shadow pixels.
  5. Inverts the thresholded Iron Oxide image to make the citrus trees appear bright.
  6. Displays the result.
; Start the application
e = ENVI()
 
; Open an input file
  File = Filepath('CitrusOrthophoto.dat', $
  Subdir=['data','crop_science'], $
Root_Dir=e.Root_Dir)
Raster = e.OpenRaster(File)
 
; Create an Iron Oxide spectral index raster
indexRaster = ENVISpectralIndexRaster(Raster, 'Iron Oxide')
 
; Get the task from the catalog of ENVITasks
Task = ENVITask('AgEnhanceCrops')
 
; Define task inputs
Task.INPUT_RASTER = indexRaster
Task.INPUT_MIN = 0.322
Task.INPUT_MAX = 1.092
Task.INVERSE = 'true'
 
; Define outputs
Task.OUTPUT_RASTER_URI = e.GetTemporaryFilename()
 
; Run the task
Task.Execute
 
; Get the collection of objects currently in the Data Manager
DataColl = e.Data
 
; Add the output to the Data Manager
DataColl.Add, Task.OUTPUT_RASTER
 
; Display the result
View = e.GetView()
Layer = View.CreateLayer(Task.OUTPUT_RASTER)

Version History


Crop Science 1.0

Introduced

See Also


ENVIAgEnhanceCrops, ENVIAgCrops, ENVIAgCropCount, AgCropCount Task, ENVIAgCalculateCropMetrics, AgCalculateCropMetrics Task, AgCalculateAndRasterizeCropMetrics Task, AgCalculateAndRasterizeCropMetricsWithSpectralIndex Task, AgCountAndRasterizeCrops Task, AgRasterizeCrops Task