ENVIAgCalculateAndRasterizeCropMetricsWithSpectralIndexTask
This task creates a spectral index image and calculates statistics from it and from an associated ENVIAgCrops object. It creates a classification raster showing the relative means of crops or a greyscale raster showing actual mean values of crops. For example, if the input raster is a vegetation index such as NDVI, the crop means describe the health of the crops.
ENVIAgCalculateAndRasterizeCropMetrics is a metatask that automatically runs the following tasks:
You can run ENVIAgCropCountTask or ENVIAgCountAndRasterizeCropsTask to create the ENVIAgCrops object that is required for this task. Or, you can use an ENVIAgCrops file that you created and saved earlier.
This task is part of ENVI Crop Science, which requires a separate license and installation.
Example
This example performs the following steps:
- Opens an orthophoto of a citrus orchard.
- Creates a spectral index raster to make the citrus trees bright against the background. A Modified Triangular Vegetation Index (MTVI) works well in this case and will be used for crop counting. This spectral index is unrelated to the one used to calculate crop metrics.
Tip: See the ENVISpectralIndexRaster topic in ENVI Help for a list of spectral indices. You can run ENVIQuerySpectralIndicesTask to see what indices are available for your particular image.
- Runs ENVIAgCropCount to count the trees and to create an ENVIAgCrops object.
- Runs ENVIAgCalculateAndRasterizeCropMetricsWithSpectralIndex task, using a Normalized Difference Vegetation Index (NDVI) as the basis for calculating metrics.
- Displays a classification raster showing relative NDVI means of the citrus trees, overlaid on the orthophoto.
- Prints the range of NDVI values.
e = ENVI()
File = Filepath('CitrusOrthophoto.dat', $
Subdir=['data','crop_science'], $
Root_Dir=e.Root_Dir)
Raster = e.OpenRaster(File)
MTVIImage = ENVISpectralIndexRaster(Raster, 'MTVI')
outCrops = ENVIAgCropCount(MTVIImage, 2.0, 5.0, $
GAUSSIAN_FACTOR = 0, $
/INCLUDE_EDGES, $
INTENSITY_THRESHOLD = 0.8, $
NUMBER_OF_INCREMENTS = 4, $
PERCENT_OVERLAP = 100.0)
Task = ENVITask('AgCalculateAndRasterizeCropMetricsWithSpectralIndex')
Task.INPUT_RASTER = Raster
Task.INDEX = 'Normalized Difference Vegetation Index'
Task.INPUT_CROPS = outCrops
Task.Execute
DataColl = e.Data
DataColl.Add, Task.OUTPUT_RASTER
View = e.GetView()
Layer = View.CreateLayer(Raster)
Layer.Transparency = 25
Layer2 = View.CreateLayer(Task.OUTPUT_RASTER)
View.Zoom, /FULL_EXTENT
crops = Task.OUTPUT_CROPS
Print, 'Minimum NDVI value for entire image: ',MIN(crops.CROP_MIN)
Print, 'Maximum NDVI value for entire image: ',MAX(crops.CROP_MAX)
Syntax
Result = ENVITask('AgCalculateAndRasterizeCropMetricsWithSpectralIndex')
Input properties (Set, Get): CLASSIFICATION, INDEX, INPUT_CROPS, INPUT_RASTER, OUTPUT_CROPS_URI, OUTPUT_METRIC, OUTPUT_RASTER_URI
Output properties (Get only): OUTPUT_CROPS, OUTPUT_RASTER
Properties marked as "Init" are applied only during the initial creation of the object. Properties marked as "Set" are those that you can set to specific values after the object has been created. 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:
CLASSIFICATION (optional)
Set this property to true (the default value) to create a classification raster where crops are colored according to relative means. For example, a dark green polygon corresponds to a crop with a higher mean value than light-green, yellow, and red polygons. The resulting raster will look similar to the following:
If you set the CLASSIFICATION property to false, the output will be a greyscale raster that is based on the actual mean values of the crops; for example:
INDEX (required)
Specify a string indicating the spectral index from which to calculate crop metrics. See the ENVISpectralIndexRaster topic in ENVI Help for a full list of spectral indices. You can also run ENVIQuerySpectralIndicesTask to see what indices are available for your particular image.
INPUT_CROPS (required)
Specify an input ENVIAgCrops object. You can run ENVIAgCropCountTask or ENVIAgCountAndRasterizeCropsTask to create an ENVIAgCrops object before running this task. Or, you can use an ENVIAgCrops file that you created and saved earlier.
INPUT_RASTER (required)
Specify a multispectral raster that will be used to create the specified spectral index raster.
OUTPUT_CROPS
This is a reference to the output crop data.
OUTPUT_CROPS_URI (optional)
Specify a string with the fully qualified path and filename for OUTPUT_CROPS. If you do not specify this property, the output crop file is only temporary. Once the crop file has no remaining references, ENVI deletes the temporary file.
OUTPUT_METRIC (required)
Set this property to one of the following strings, indicating the metric that the output raster will be based on:
- Crop Minimum
- Crop Maximum
- Crop Mean
- Crop Standard Deviation
- Radius
OUTPUT_RASTER
This is a reference to the output crops classification raster or greyscale raster.
OUTPUT_RASTER_URI (optional)
Specify a string with the fully qualified filename and path of the output raster. If you do not specify this property, the output raster is only temporary. Once the raster has no remaining references, ENVI deletes the temporary file.
Version History
|
1.0
|
Introduced
|
|
1.1
|
Added Crop Minimum, Crop Maximum, Crop Standard Deviation, and Radius options to OUTPUT_METRIC
|
See Also
ENVIAgCalculateCropMetricsTask, ENVIAgCalculateAndRasterizeCropMetricsTask, ENVIAgCrops, ENVIAgCropCountTask, ENVIAgCountAndRasterizeCropsTask