SubsetBands

Summary

Creates a raster object that is a subset of a multidimensional or hyperspectral raster based on a selected subset of bands. The output maintains the same band order as the input.

Discussion

The referenced raster dataset for the raster object is temporary. To make it permanent, you can call the raster object's save method.

For more information about how this function works, see the Subset Bands raster function.

Syntax

SubsetBands (raster, {method}, {bands}, {missing_band_action}, {exclude_bad_bands})
ParameterExplanationData Type
raster

The input hyperspectral or multidimensional raster.

Raster
method

Specifies the method that will be used to extract and create the subset of the bands.

  • BY_NAMES—Band names will be used to identify and create the subset of bands for extraction.
  • BY_WAVELENGTHS—Band wavelengths on the electromagnetic spectrum will be used to identify and create the subset of bands for extraction.
  • BY_IDS—The band designation or sequence number will be used to identify and create the subset of bands for extraction.

(The default value is BY_IDS)

String
bands

The bands that will be extracted based on the specified method argument option. The following are examples:

  • Using the BY_NAMES option for the method argument, specify 'band_15 band_13 band_14'.
  • Using the BY_WAVELENGTHS option for the method argument, specify '400-700 900'.
  • Using the BY_IDS option for the method argument, specify '100 105 110 120-130'. Values will be minus by 1 for a 0-based index.

The bands argument is used to specify the bands to extract and depends on the method option specified. The bands are entered as a space-delimited list and can be specified as ranges of bands. For example, when specifying a subset using the BY_IDS option for the method parameter, a value of 20-50 60-100 200 will extract band IDs between (inclusive) 20 and 50, 60 and 100, and a band with an ID of 200.

When specifying the bands parameter value using the BY_WAVELENGTHS option for the method argument, all bands within the wavelength range will be extracted.

When specifying bands by wavelength, the units—such as microns or nanometers—are the same as the input units.

Subsets using the BY_NAMES option must be a list of individual names delimited by a space, such as band_1 band_2 band_3. Range is not supported for the BY_NAMES option.

(The default value is None)

String
missing_band_action

Specifies the action that will occur when a band from the bands argument value is not available.

  • BestMatch—The best available band in place of the missing band based on wavelength will be used.
  • Fail—If the input dataset is missing any band specified in the bands argument, the function will fail.

(The default value is BestMatch)

String
exclude_bad_bands

Specifies whether bands that have been flagged as bad will be excluded.

  • True—Bad bands will be excluded.
  • False—Bad bands will not be excluded.

(The default value is False)

Boolean
Return Value
Data TypeExplanation
Raster

The output subset raster.

Code sample

SubsetBands example 1

This example extracts the bands from the input raster using the BY_IDS option.

extracted_bands = arcpy.ia.SubsetBands(raster=img_lyr, method="BY_IDS", bands="100 105 110 120-130")
SubsetBands example 2

This example extracts the bands from the input raster using the BY_NAMES option.

extracted_bands = arcpy.ia.SubsetBands(raster=img_lyr, method="BY_NAMES", bands="band_15 band_13 band_14")
SubsetBands example 3

This example extracts the bands from the input raster using the BY_WAVELENGTHS option.

extracted_bands = arcpy.ia.SubsetBands(raster=img_lyr, method="BY_WAVELENGTHS", bands="400-700 900")