This task performs NNDiffuse pan sharpening using a low-resolution raster and a high-resolution panchromatic raster.

The virtual raster associated with this task is ENVINNDiffusePanSharpeningRaster.

NNDiffuse pan sharpening works best when the spectral response function of each multispectral band has minimal overlap with one another, and the combination of all multispectral bands covers the spectral range of the panchromatic raster.

The following are input raster requirements for running the NNDiffuse pan sharpening algorithm:

  • The pixel size of the low-resolution raster must be an integral multiple of the pixel size of the high-resolution raster. If it is not, then pre-process (resample) the rasters.
  • When the rasters have projection information, it must be in the same projection. If it is not the same, then reproject the rasters.
  • The rasters must be aligned. If the rasters have misalignment, then register the rasters.
  • Ensure that the rasters line up, particularly in the upper-left corner (see the following diagram). When alignment is as little as 1/2 pixel off between the two, pan sharpening accuracy will be affected. If both input rasters have map information, they will be automatically subsetted so that they line up. If the rasters do not line up and do not have map information, then use spatial subsetting.

Reference:

Sun, W., B. Chen, and D.W. Messinger. "Nearest Neighbor Diffusion Based Pan Sharpening Algorithm for Spectral Images." Optical Engineering 53, no. 1 (2014).

Example


; Start the application
e = ENVI()
 
; Open low-resolution raster and high-resolution raster input files
highResFile = Filepath('qb_boulder_pan', Subdir=['data'], $
  Root_Dir=e.Root_Dir)
highResRaster = e.OpenRaster(highResFile)
lowResFile = Filepath('qb_boulder_msi', Subdir=['data'], $
  Root_Dir=e.Root_Dir)
lowResRaster = e.OpenRaster(lowResFile)
 
; Get the NNDiffuse pan-sharpening task from the catalog of ENVITasks
Task = ENVITask('NNDiffusePanSharpening')
 
; Define the inputs
Task.INPUT_LOW_RESOLUTION_RASTER = lowResRaster
Task.INPUT_HIGH_RESOLUTION_RASTER = highResRaster
 
; Run the task
Task.Execute
 
; Display the result
View = e.GetView()
Layer = View.CreateLayer(Task.OUTPUT_RASTER)

Syntax


Result = ENVITask('NNDiffusePanSharpening')

Input properties (Set, Get): INPUT_HIGH_RESOLUTION_RASTER, INPUT_LOW_RESOLUTION_RASTER, INTENSITY_SMOOTHNESS, OUTPUT_RASTER_URI, PIXEL_SIZE_RATIO, SPATIAL_SMOOTHNESS

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_HIGH_RESOLUTION_RASTER (required)

Specify a high-resolution panchromatic raster.

INPUT_LOW_RESOLUTION_RASTER (required)

Specify a low-resolution raster.

INTENSITY_SMOOTHNESS

A positive number that defines the intensity smoothness factor (σ) of the NNDiffuse pan sharpening algorithm. A smaller INTENSITY_SMOOTHNESS value will restrict diffusion and produce sharper images, but will have more noise. For example, a smaller value is good for pan sharpened images that will be used for visualization. A larger INTENSITY_SMOOTHNESS value will produce smoother results with less noise, which is suggested for images that will be used for classification and segmentation purposes. A larger value is also suggested for panchromatic scenes with high contrast (they require less diffusion sensitivity), and with complex scenes (to reduce the possibility of noise). The default is to dynamically adjust to local similarity, as shown in the equation that follows. You can enter a value to override the default, for example, a value in the range 10 x √2 to 20.

where Nj is the difference factor of the nine neighbors given by the following equation:

where Ωj (x,y) defines the diffusion region for each of the nine neighboring super pixels, and (x,y) denotes the position of a pixel in the high-resolution coordinate.

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 to export the associated OUTPUT_RASTER.

  • If you set this property to an asterisk symbol (*), the output raster will be virtual and not written to disk.
  • If you do not specify this property, or set it to an exclamation symbol (!), a temporary file will be created.

PIXEL_SIZE_RATIO (optional)

A scalar number that defines the pixel size ratio of the low-resolution raster and the high-resolution raster. The NNDiffuse pan-sharpening algorithm requires that the pixel size ratio be an integer. If this property is not set, the value is determined from the metadata of the input rasters. For example, the pixel size of Ikonos low-resolution MSI data is 4 meters, and the pixel size of Ikonos high-resolution Pan data is 1 meter. The ratio is 4/1, so the value is 4.

SPATIAL_SMOOTHNESS (optional)

A positive number that defines the spatial smoothness factor (σs) of the NNDiffuse pan sharpening algorithm. SPATIAL_SMOOTHNESS should be set to a value that will resemble a bicubic interpolation kernel. The default value is PIXEL_SIZE_RATIO x 0.62.

Version History


ENVI 5.2

Introduced

ENVI 5.5

OUTPUT_RASTER_URI now supports '*', which allows OUTPUT_RASTER to be virtual output.

API Version


4.2

See Also


ENVITask, GramSchmidtPanSharpening Task, PCPanSharpening Task