@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
173 lines (171 loc) • 9.67 kB
TypeScript
import type Extent from "../../geometry/Extent.js";
import type SpatialReference from "../../geometry/SpatialReference.js";
import type RasterBandInfo from "./RasterBandInfo.js";
import type RasterSensorInfo from "./RasterSensorInfo.js";
import type FeatureSet from "../../rest/support/FeatureSet.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { PixelSize, RasterBandStatistics, RasterDataType, RasterHistogram, RasterMultidimensionalInfo, RasterPixelType } from "../raster/types.js";
import type { ExtentProperties } from "../../geometry/Extent.js";
import type { SpatialReferenceProperties } from "../../geometry/SpatialReference.js";
export interface RasterInfoProperties extends Partial<Pick<RasterInfo, "attributeTable" | "bandCount" | "colormap" | "height" | "histograms" | "keyProperties" | "multidimensionalInfo" | "noDataValue" | "pixelSize" | "pixelType" | "statistics" | "width">> {
/** The minimum and maximum X and Y coordinates of a bounding box containing all the raster data. */
extent?: ExtentProperties;
/** The spatial reference of the raster. */
spatialReference?: SpatialReferenceProperties;
}
/**
* Describes general raster data information exposed by the ArcGIS REST API for
* [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/), [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/) and [WCSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WCSLayer/).
* RasterInfo contains information such band count, statistics, data type, dimensions and key properties.
*
* @since 4.12
* @see [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/)
* @see [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/)
* @see [WCSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WCSLayer/)
* @see [Raster info](https://developers.arcgis.com/rest/services-reference/raster-info.htm)
*/
export default class RasterInfo extends JSONSupport {
constructor(properties: RasterInfoProperties);
/**
* The raster attribute table associated with an imagery layer.
* It returns categorical mapping of pixel values such as
* class, group, or category, or membership.
*
* @see [Sample - Raster attribute table](https://developers.arcgis.com/javascript/latest/sample-code/layers-imagery-attribute-table/)
* @see [Raster Attribute Table](https://developers.arcgis.com/rest/services-reference/raster-attribute-table.htm)
* @example
* layer.when(function() {
* // accesses the raster attribute table of the layer
* let rasterAttributes = layer.serviceRasterInfo.attributeTable.features;
* });
*/
accessor attributeTable: FeatureSet | null | undefined;
/** Raster band count. */
accessor bandCount: number;
/**
* This property provides additional information for each band in the raster. Raster products will include information
* such as the color name, wavelength range, the radiance gain, radiance bias, and solar irradiance.
* All other raster datasets will only contain the band index value.
*
* @since 4.27
*/
get bandInfos(): RasterBandInfo[];
/**
* Raster colormap that can be used to display the imagery layer.
* Each element in the array defines the pixel value and the red, green, and blue color values.
*
* @see [Raster colormap](https://developers.arcgis.com/rest/services-reference/colormap.htm)
*/
accessor colormap: number[][] | null | undefined;
/**
* Raster data type controls how the data is rendered by default.
*
* Value | Description |
* ----- | ----------- |
* generic | Uses the application defaults for resampling and stretching.
* elevation | Applies bilinear resampling and a [Min-Max stretch](https://developers.arcgis.com/javascript/latest/references/core/renderers/RasterStretchRenderer/#stretchType).
* thematic | Applies nearest neighbor resampling and a [Standard Deviation stretch](https://developers.arcgis.com/javascript/latest/references/core/renderers/RasterStretchRenderer/#stretchType).
* processed | No stretch is applied.
* scientific | Uses the blue to red color ramp to display the data.
* vector-uv | Uses the U (magnitude component) and V(direction component) components in the vector field renderer.
* vector-magdir | Uses the magnitude and direction in the vector field renderer.
* standard-time | Uses the blue to red color ramp to display the data --- pixel value represents time encoded using OLEDate.
*/
get dataType(): RasterDataType;
/** The minimum and maximum X and Y coordinates of a bounding box containing all the raster data. */
get extent(): Extent;
set extent(value: ExtentProperties);
/**
* Indicates whether the source multidimensional data has been transposed.
* This only applies to [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/) that references multidimensional image service.
*
* @since 4.25
*/
get hasMultidimensionalTranspose(): boolean;
/**
* Raster height (row count) in pixels.
*
* @since 4.15
*/
accessor height: number;
/**
* Raster histograms return basic name-value pairs for number of bins, min and
* max bounding values, counts of pixels in each bin.
*
* @see [Raster histograms](https://developers.arcgis.com/rest/services-reference/histograms.htm)
*/
accessor histograms: RasterHistogram[] | null | undefined;
/**
* Raster key properties.
*
* @see [Raster key properties](https://developers.arcgis.com/rest/services-reference/key-properties.htm)
*/
accessor keyProperties: Record<string, any>;
/**
* Returns the multidimensional information associated with the raster service referenced in an imagery layer.
* If defined, it contains an information on variables and dimensions associated with the service. Multidimensional data is stored as variables where each
* variable is a multidimensional array represents data captured in multiple dimensions like times and depths/heights.
*
* You can filter the multidimensional data with one or multiple dimensional slices by setting the [MosaicRule.multidimensionalDefinition](https://developers.arcgis.com/javascript/latest/references/core/layers/support/MosaicRule/#multidimensionalDefinition)
* property on an [ImageryLayer.mosaicRule](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#mosaicRule) or by setting the `multidimensionalDefinition` property on an [ImageryTileLayer.multidimensionalDefinition](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/#multidimensionalDefinition) or
* a [WCSLayer.multidimensionalDefinition](https://developers.arcgis.com/javascript/latest/references/core/layers/WCSLayer/#multidimensionalDefinition).
*
* @see [ImageryLayer - working with multidimensional raster data](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#multidimensionaldata)
* @see [ImageryTileLayer - working with multidimensional raster data](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/#multidimensionaldata)
* @see [Sample - Transposed multidimensional ImageryTileLayer](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
* @example
* // update the statistics of the layer's stretch renderer.
* const renderer = layer.renderer.clone();
* const dimensions = layer.rasterInfo.multidimensionalInfo;
* // get the salinity variable's statistics
* const salinity = dimensions.variables.find((variable) => variable.name === variableName);
* renderer.customStatistics = salinity.statistics;
* layer.renderer = renderer;
*/
accessor multidimensionalInfo: RasterMultidimensionalInfo | null | undefined;
/**
* The pixel value representing no available information.
* Can be a number (same value for all bands) or array (specific value for each band).
*
* @since 4.15
*/
accessor noDataValue: number | Array<number | null | undefined> | null | undefined;
/**
* Raster pixel size. Specifies the pixel size being identified on the x and y axis.
* Defaults to the base resolution of the dataset when not specified.
*/
accessor pixelSize: PixelSize;
/**
* Pixel type for the raster data source.
*
* Value | Range of values that each cell can contain |
* ----- | ------------------------------------------- |
* unknown | Pixel type is unknown |
* s8 | -128 to 127 |
* s16 | -32768 to 32767 |
* s32 | -2147483648 to 2147483647 |
* u8 | 0 to 255 |
* u16 | 0 to 65535
* u32 | 0 to 4294967295
* f32 | -3.402823466e+38 to 3.402823466e+38
* f64 | 0 to 18446744073709551616
*/
accessor pixelType: RasterPixelType;
/**
* The sensor information associated with an image service referenced by a layer.
*
* @since 4.27
*/
get sensorInfo(): RasterSensorInfo | null | undefined;
/** The spatial reference of the raster. */
get spatialReference(): SpatialReference;
set spatialReference(value: SpatialReferenceProperties);
/** Raster band statistics. These include the minimum value in the raster, maximum value, mean of all values, and standard deviation. */
accessor statistics: RasterBandStatistics[] | null | undefined;
/**
* Raster width (column count) in pixels.
*
* @since 4.15
*/
accessor width: number;
}