Skip to content
import RasterStretchRenderer from "@arcgis/core/renderers/RasterStretchRenderer.js";
Inheritance:
RasterStretchRendererAccessor
Since
ArcGIS Maps SDK for JavaScript 4.12

RasterStretchRenderer defines the symbology with a gradual ramp of colors for each pixel in a ImageryLayer, ImageryTileLayer, and WCSLayer based on the pixel value. The RasterStretchRenderer works well when you have a large range of values to display, such as in imagery, aerial photographs, or elevation models.

The stretch renderer allows you to define the range of values to be displayed and apply a ColorRamp to those values.

See also

Constructors

Constructor

Constructor
Parameters
ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.

colorRamp

autocast Property
Type
ColorRamp | null | undefined

The stretched values are mapped to this specified color ramp. The color ramp algorithm must set when using this renderer, otherwise the cie-lab AlgorithmicColorRamp.algorithm used by default.

See also

computeGamma

Property
Type
boolean

The computeGamma automatically calculates best gamma value to render exported image based on empirical model. This is applicable to any stretch type when useGamma is true.

Default value
false

customStatistics

Property
Type
RasterBandStatistics[] | null | undefined
Since
ArcGIS Maps SDK for JavaScript 4.31

The input band statistics can be specified through the customStatistics property. If not specified, they will be retrieved from the data. If dynamicRangeAdjustment is true, these values will be ignored.

See also
Examples
for single band stretch
const bandStat = layer.rasterInfo.statistics[0];
const renderer = new RasterStretchRenderer();
renderer.stretchType = "min-max";
renderer.customStatistics = [{
min: valueSlider.values[0],
max: valueSlider.values[1],
avg: bandStat.avg,
stddev: bandStat.stddev
}];
for RGB (e.g. layer.bandIds = [3,2,1])
const stats = layer.rasterInfo.statistics;
const bandIds = layer.bandIds;
const renderer = new RasterStretchRenderer();
renderer.stretchType = "min-max";
renderer.customStatistics = [{
min: redSlider.values[0],
max: redSlider.values[1],
avg: stats[bandIds[0]].avg,
stddev: stats[bandIds[0]].stddev,
}, {
min: greenSlider.values[0],
max: greenSlider.values[1],
avg: stats[bandIds[1]].avg,
stddev: stats[bandIds[1]].stddev,
}, {
min: valueSlider.values[0],
max: valueSlider.values[1],
avg: stats[bandIds[2]].avg,
stddev: stats[bandIds[2]].stddev
}];

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor

The name of the class. The declared class name is formatted as esri.folder.className.

dynamicRangeAdjustment

Property
Type
boolean

When Dynamic Range Adjustment is true, the statistics based on the current display extent are calculated as you zoom and pan around the image. This property only applies to images in 2D MapView.

Default value
false

gamma

Property
Type
number[]

The gamma values to be used if useGamma is set to true. Gamma refers to the degree of contrast between the mid-level gray values of a raster dataset. Gamma does not affect the black or white values in a raster dataset, only the middle values. By applying a gamma correction, you can control the overall brightness of a layer. Gamma stretching is only valid with the none, standard-deviation, and min-max stretch types.

maxPercent

Property
Type
number | null | undefined

Applicable when stretchType is percent-clip. Specifies the percentage of the highest values to exclude from the stretch.

minPercent

Property
Type
number | null | undefined

Applicable when stretchType is percent-clip. Specifies the percentage of the lowest values to exclude from the stretch.

numberOfStandardDeviations

Property
Type
number | null | undefined

Applicable when stretchType is standard-deviation. Specifies the number of standard deviations to use. The values beyond the number of standard deviations become the outputMin and outputMax. The remaining values are linearly stretched between outputMin and outputMax.

outputMax

Property
Type
number | null | undefined

The outputMax denotes the output maximum, which is the highest pixel value. The outputMin and outputMax will set the range of values that will then be linearly contrast stretched. The outputMax value ranges from 0-255.

outputMin

Property
Type
number | null | undefined

The outputMin denotes the output minimum, which is the lowest pixel value. The outputMin and outputMax will set the range of values that will then be linearly contrast stretched. The outputMin value ranges from 0-255.

sigmoidStrengthLevel

Property
Type
number | null | undefined

The sigmoid strength level determines how much of the sigmoidal function will be used in the stretch. A low value such as 1 will only use the middle portion of the curve, which tends to produce dull and faint colors. A high value such as 6 will use the entire curve, which tends to produce bold and sharp colors.

stretchType

Property
Type
RasterStretchType

The stretch type defines a histogram stretch that will be applied to the rasters to enhance their appearance. Stretching improves the appearance of the data by spreading the pixel values along a histogram from the minimum and maximum values defined by their bit depth. For example, an 8-bit raster dataset or mosaic dataset will be stretched from 0 to 255. Different stretches will produce different results in the raster display.

The possible stretch types are listed below.

ValueDescription
noneNo stretch method will be applied, even if statistics exist.
standard-deviationThis stretch type applies a linear stretch between the values defined by the standard deviation value.
histogram-equalizationThe pixel values are stretched to adjust the contrast using the histogram of the data.
min-maxThis stretch type applies a linear stretch based on the output minimum and output maximum pixel values, which are used as the endpoints for the histogram.
percent-clipThis stretch type applies a linear stretch between the defined minPercent and maxPercent pixel values.
sigmoidThe Sigmoid contrast stretch is designed to highlight moderate pixel values in your imagery while maintaining sufficient contrast at the extremes.
Default value
"none"

type

readonly Property
Type
"raster-stretch"

The type of Renderer.

useGamma

Property
Type
boolean

Denotes whether the gamma value should be used. When useGamma is false, the gamma is calculated from the statistics and histogram of the data. The gamma property is required if useGamma is true.

Default value
false

Methods

MethodSignatureClass
fromJSON
inherited static
fromJSON(json: any): any
clone(): RasterStretchRenderer
toJSON
inherited
toJSON(): any

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameters
ParameterTypeDescriptionRequired
json
any

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns
any

Returns a new instance of this class.

clone

Method
Signature
clone (): RasterStretchRenderer

Creates a deep clone of the renderer.

Returns
RasterStretchRenderer

A deep clone of the object that invoked this method.

Example
// Creates a deep clone of the first layer's renderer
let renderer = view.map.layers.at(0).renderer.clone();

toJSON

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns
any

The ArcGIS portal JSON representation of an instance of this class.