MosaicRule

AMD: require(["esri/layers/support/MosaicRule"], (MosaicRule) => { /* code goes here */ });
ESM: import MosaicRule from "@arcgis/core/layers/support/MosaicRule";
Class: esri/layers/support/MosaicRule
Inheritance: MosaicRule Accessor
Since: ArcGIS API for JavaScript 4.0

Specifies the mosaic rule when defining how individual images should be mosaicked. It specifies selection, mosaic method, sort order, overlapping pixel resolution, etc. Mosaic rules are for mosaicking rasters in the mosaic dataset. A mosaic rule is used to define:

  • The selection of rasters that will participate in the mosaic (using where clause).
  • The mosaic method, e.g. how the selected rasters are ordered.
  • The mosaic operation, e.g. how overlapping pixels at the same location are resolved.
See also
Example
new MosaicRule({
  ascending: true,
  method: "center",
  operation: "last"
});

Constructors

new MosaicRule(properties)
Parameter
properties Object
optional

See the properties for a list of all the properties that may be passed into the constructor.

Property Overview

Any properties can be set, retrieved or listened to. See the Working with Properties topic.
Show inherited properties Hide inherited properties
Name Type Summary Class
Boolean

Indicates whether the sort should be ascending.

more details
MosaicRule
String

The name of the class.

more details
Accessor
RasterFunction

The rendering rule applied on items before mosaicking.

more details
MosaicRule
Number[]

An array of raster Ids.

more details
MosaicRule
String

The mosaic method determines how the selected rasters are ordered.

more details
MosaicRule
DimensionalDefinition[]

The multidimensional definitions associated with the ImageryLayer.

more details
MosaicRule
Number[]

Defines a selection using a set of ObjectIDs.

more details
MosaicRule
String

Defines the mosaic operation used to resolve overlapping pixels.

more details
MosaicRule
String

The name of the attribute field that is used with a constant sortValue to define the mosaicking order when the mosaic method is set to attribute.

more details
MosaicRule
String|Number

A constant value defining a reference or base value for the sort field when the mosaic method is set to attribute.

more details
MosaicRule
Point

Defines the viewpoint location on which the ordering is defined based on the distance from the viewpoint and the nadir of rasters.

more details
MosaicRule
String

The where clause determines which rasters will participate in the mosaic.

more details
MosaicRule

Property Details

ascending Boolean

Indicates whether the sort should be ascending. This property applies to all mosaic methods where an ordering is defined except seamline.

Default Value:true
declaredClass Stringreadonly inherited
Since: ArcGIS API for JavaScript 4.7

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

itemRenderingRule RasterFunction

The rendering rule applied on items before mosaicking.

lockRasterIds Number[]

An array of raster Ids. All the rasters with the given list of raster Ids are selected to participate in the mosaic. The rasters will be visible at all pixel sizes regardless of the minimum and maximum pixel size range of the locked rasters.

Default Value:null
Example
let mosaicRule = new MosaicRule();
mosaicRule.method = "lock-raster";
mosaicRule.lockRasterIds = [32,454,14];
method String

The mosaic method determines how the selected rasters are ordered. The mosaic method defines how the mosaicked image is created from these input rasters.

Value Description
none Orders rasters based on the order of objectIds in the mosaic dataset attribute table.
center Enables rasters to be sorted based their ZOrder, then PixelSize, and then by a default order where rasters that have their centers closest to the view center are placed on top.
nadir Enables rasters to be sorted by the ZOrder, then PixelSize, and then by the distance between the nadir position and view center. This is similar to the Closest to Center method but uses the nadir point to a raster, which may be different than the center, especially for oblique imagery.
viewpoint Orders rasters based on the ZOrder, then PixelSize, and then by a user-defined location and nadir location for the rasters using the viewpoint.
attribute Enables raster ordering based on ZOrder, then PixelSize, and then by a defined metadata attribute and its difference from a base value.
lock-raster Enables a user to lock the display of single or multiple rasters based on the lockRasterIds.
northwest Enables raster ordering by ZOrder, then PixelSize, and then by the shortest distance between the center of a raster to the northwest position.
seamline Cuts the raster using the predefined seamline shape for each raster, using optional feathering along the seams, and orders images based on the ZOrder and then the SOrder fields in the attribute table.

Possible Values:"none"|"center"|"nadir"|"viewpoint"|"attribute"|"lock-raster"|"northwest"|"seamline"

Example
let mosaicRule = new MosaicRule();
mosaicRule.method = "lock-raster";
multidimensionalDefinition DimensionalDefinition[]

The multidimensional definitions associated with the ImageryLayer. Filters the layer by slicing data along defined variables and dimensions such as time, depth, altitude, etc. For example, you can display a particular variable such as temperature or salinity measured at a fixed dimension (e.g. time, depth). These data types are commonly used in atmospheric, oceanographic, and earth sciences. For example, it can be used to display sea temperature at -1000m below sea level for a specific week in the year.

Multiple definitions are consolidated by server into one single where clause. The consolidation rule is:

  • For the same variableName but different dimensionName, it uses the AND operator to connect all dimension conditions for the same variable.
  • For different variableName, it uses the OR operator to connect any variable that meets the dimension conditions.
See also
Example
// Display water salinity at a specific point in time.
// In this case - Nov 30 2009
let mosaicRule = new MosaicRule();
mosaicRule.multidimensionalDefinition = [];
mosaicRule.multidimensionalDefinition.push(new DimensionalDefinition({
  variableName: "Salinity",
  dimensionName: "StdTime",
  values: [1259625600000]
}));

layer.mosaicRule = mosaicRule;
objectIds Number[]

Defines a selection using a set of ObjectIDs. This property applies to all mosaic methods.

operation String

Defines the mosaic operation used to resolve overlapping pixels.

Possible Values

Value Description
first The overlapping areas will contain the cells from the first raster dataset listed in the source.
last The overlapping areas will contain the cells from the last raster dataset listed in the source.
min The overlapping areas will contain the minimum cell values from all the overlapping cells.
max The overlapping areas will contain the maximum cell values from all the overlapping cells.
mean The overlapping areas will contain the mean cell values from all the overlapping cells.
blend The overlapping areas will be a blend of the cell values that overlap. This blend value relies on an algorithm that is weight based and dependent on the distance from the cells to the edge within the overlapping area.
sum The overlapping areas will contain the total sum of the cell values from all the overlapping cells.

Possible Values:"first"|"last"|"min"|"max"|"mean"|"blend"|"sum"

sortField String

The name of the attribute field that is used with a constant sortValue to define the mosaicking order when the mosaic method is set to attribute. The ordering is defined by the absolute value of the difference between the specified sort field value and the sort base value. For example, if the sort field is Month and the sort value is 7 (July), then the ordering is defined by ABS(Month -7).

Default Value:null
sortValue String|Number

A constant value defining a reference or base value for the sort field when the mosaic method is set to attribute.

Default Value:null
viewpoint Point

Defines the viewpoint location on which the ordering is defined based on the distance from the viewpoint and the nadir of rasters.

Example
let mosaicRule = new MosaicRule();
mosaicRule.method = "viewpoint";
mosaicRule.viewpoint = inPoint;
layer.mosaicRule = mosaicRule;
where String

The where clause determines which rasters will participate in the mosaic. This property applies to all mosaic methods. This property will be overridden by the ImageryLayer's definitionExpression property if both properties are set.

Method Overview

Show inherited methods Hide inherited methods
Name Return Type Summary Class

Adds one or more handles which are to be tied to the lifecycle of the object.

more details
Accessor
MosaicRule

Creates a clone of the MosaicRule object.

more details
MosaicRule
*

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product.

more details
MosaicRule
Boolean

Returns true if a named group of handles exist.

more details
Accessor

Removes a group of handles owned by the object.

more details
Accessor
Object

Converts an instance of this class to its ArcGIS portal JSON representation.

more details
MosaicRule

Method Details

addHandles(handleOrHandles, groupKey)inherited
Since: ArcGIS API for JavaScript 4.25

Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

// Handle gets removed when the object is destroyed.
this.addHandles(handle);
Parameters
handleOrHandles WatchHandle|WatchHandle[]

Handles marked for removal once the object is destroyed.

groupKey *
optional

Key identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.

clone(){MosaicRule}

Creates a clone of the MosaicRule object.

Returns
Type Description
MosaicRule A clone of the object that invoked this method.
Example
// Creates a clone of the mosaic rule
let mosaicRule = layer.mosaicRule.clone();
fromJSON(json){*}static

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.

Parameter
json Object

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
Type Description
* Returns a new instance of this class.
hasHandles(groupKey){Boolean}inherited
Since: ArcGIS API for JavaScript 4.25

Returns true if a named group of handles exist.

Parameter
groupKey *
optional

A group key.

Returns
Type Description
Boolean Returns true if a named group of handles exist.
Example
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}
removeHandles(groupKey)inherited
Since: ArcGIS API for JavaScript 4.25

Removes a group of handles owned by the object.

Parameter
groupKey *
optional

A group key or an array or collection of group keys to remove.

Example
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
toJSON(){Object}

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

Returns
Type Description
Object The ArcGIS portal JSON representation of an instance of this class.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.