arcgis.raster module

The arcgis.raster module containing classes and raster analysis functions for working with raster data and imagery layers.

Raster data is made up of a grid of cells, where each cell or pixel can have a value. Raster data is useful for storing data that varies continuously, as in a satellite image, a surface of chemical concentrations, or an elevation surface.

Use arcgis.raster.analytics.is_supported(gis) to check if raster analysis is supported in your GIS.

ImageryLayer

class arcgis.raster.ImageryLayer(url, gis=None)
attribute_table(rendering_rule=None)

The attribute_table method returns categorical mapping of pixel values (for example, a class, group, category, or membership).

Arguments Description
rendering_rule Specifies the rendering rule for how the requested image should be processed. The response is updated Layer info that reflects a custom processing as defined by the rendering rule. For example, if renderingRule contains an attributeTable function, the response will indicate “hasRasterAttributeTable”: true; if the renderingRule contains functions that alter the number of bands, the response will indicate a correct bandCount value.
Returns:dictionary
blend()

overlapping pixels at the same location are resolved by blending all overlapping pixels

Returns:this imagery layer with mosaic operation set to ‘blend’
catalog_item(id)

The Raster Catalog Item property represents a single raster catalog item

Arguments Description
id required integer. The id is the ‘raster id’.
colormap()

The colormap method returns RGB color representation of pixel values. This method is supported if the hasColormap property of the layer is true.

compute_class_stats(descriptions, mosaic_rule='defaultMosaicMethod', rendering_rule=None, pixel_size=None)

Compute class statistics signatures (used by the maximum likelihood classifier)

Argument Description
descriptions

Required list. Class descriptions are training site polygons and their class descriptions. The structure of the geometry is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API.

Syntax:
{
“classes”: [ // An list of classes
{
“id” : <id>, “name” : “<name>”, “geometry” : <geometry> //polygon

}, {

“id” : <id>, “name” : “<name>”,

“geometry” : <geometry> //polygon

]

}

mosaic_rule optional string. Specifies the mosaic rule when defining how individual images should be mosaicked. When a mosaic rule is not specified, the default mosaic rule of the image layer will be used (as advertised in the root resource: defaultMosaicMethod, mosaicOperator, sortField, sortValue). See Mosaic rule objects help for more information: http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r3000000s4000000
rendering_rule optional dictionary. Specifies the rendering rule for how the requested image should be rendered. See the raster function objects for the JSON syntax and examples. http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Raster_function_objects/02r3000000rv000000/
pixel_size

optional list or dictionary. The pixel level being used (or the resolution being looked at). If pixel size is not specified, then pixel_size will default to the base resolution of the dataset. The structure of the pixel_size parameter is the same as the structure of the point object returned by the ArcGIS REST API. In addition to the JSON structure, you can specify the pixel size with a comma-separated syntax.

Syntax:
JSON structure: pixelSize={point} Point simple syntax: pixelSize=<x>,<y>
Examples:
pixelSize={“x”: 0.18, “y”: 0.18} pixelSize=0.18,0.18
Returns:dictionary
compute_histograms(geometry, mosaic_rule=None, rendering_rule=None, pixel_size=None)

The compute_histograms operation is performed on an imagery layer method. This operation is supported by any imagery layer published with mosaic datasets or a raster dataset. The result of this operation contains both statistics and histograms computed from the given extent.

Arguments Description
geometry required Polygon or Extent. A geometry that defines the geometry within which the histogram is computed. The geometry can be an envelope or a polygon
mosaic_rule optional string. Specifies the mosaic rule when defining how individual images should be mosaicked. When a mosaic rule is not specified, the default mosaic rule of the image layer will be used (as advertised in the root resource: defaultMosaicMethod, mosaicOperator, sortField, sortValue). See Mosaic rule objects help for more information: http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r3000000s4000000
rendering_rule Specifies the rendering rule for how the requested image should be processed. The response is updated Layer info that reflects a custom processing as defined by the rendering rule. For example, if renderingRule contains an attributeTable function, the response will indicate “hasRasterAttributeTable”: true; if the renderingRule contains functions that alter the number of bands, the response will indicate a correct bandCount value.
pixel_size

optional list or dictionary. The pixel level being used (or the resolution being looked at). If pixel size is not specified, then pixel_size will default to the base resolution of the dataset. The structure of the pixel_size parameter is the same as the structure of the point object returned by the ArcGIS REST API. In addition to the JSON structure, you can specify the pixel size with a comma-separated syntax.

Syntax:
JSON structure: pixelSize={point} Point simple syntax: pixelSize=<x>,<y>
Examples:
pixelSize={“x”: 0.18, “y”: 0.18} pixelSize=0.18,0.18
Returns:dict
compute_stats_and_histograms(geometry, mosaic_rule=None, rendering_rule=None, pixel_size=None)

The result of this operation contains both statistics and histograms computed from the given extent.

Argument Description
geometry required Polygon or Extent. A geometry that defines the geometry within which the histogram is computed. The geometry can be an envelope or a polygon
mosaic_rule optional dictionary. Specifies the mosaic rule when defining how individual images should be mosaicked. When a mosaic rule is not specified, the default mosaic rule of the image layer will be used (as advertised in the root resource: defaultMosaicMethod, mosaicOperator, sortField, sortValue).
rendering_rule optional dictionary. Specifies the rendering rule for how the requested image should be rendered.
pixel_size optional string or dict. The pixel level being used (or the resolution being looked at). If pixel size is not specified, then pixel_size will default to the base resolution of the dataset. The raster at the specified pixel size in the mosaic dataset will be used for histogram calculation.
Returns:dictionary
compute_tie_points(raster_id, geodata_transforms)

The result of this operation contains tie points that can be used to match the source image to the reference image. The reference image is configured by the image layer publisher. For more information, see Fundamentals for georeferencing a raster dataset.

Argument Description
raster_id required integer. Source raster ID.
geodata_transforms required dictionary. The geodata transformation that provides a rough fit of the source image to the reference image. For example, a first order polynomial transformation that fits the source image to the expected location.
Returns:dictionary
export_image(bbox=None, image_sr=None, bbox_sr=None, size=None, time=None, export_format='jpgpng', pixel_type=None, no_data=None, no_data_interpretation='esriNoDataMatchAny', interpolation=None, compression=None, compression_quality=None, band_ids=None, mosaic_rule=None, rendering_rule=None, f='json', save_folder=None, save_file=None, compression_tolerance=None, adjust_aspect_ratio=None, lerc_version=None)

The export_image operation is performed on an imagery layer. The result of this operation is an image method. This method provides information about the exported image, such as its URL, extent, width, and height. In addition to the usual response formats of HTML and JSON, you can also request the image format while performing this operation. When you perform an export with the image format , the server responds by directly streaming the image bytes to the client. With this approach, you don’t get any information associated with the exported image other than the image itself.

Arguments Description
bbox

Optional dict or string. The extent (bounding box) of the exported image. Unless the bbox_sr parameter has been specified, the bbox is assumed to be in the spatial reference of the imagery layer.

The bbox should be specified as an arcgis.geometry.Envelope object, it’s json representation or as a list or string with this format: ‘<xmin>, <ymin>, <xmax>, <ymax>’ If omitted, the extent of the imagery layer is used

image_sr optional string, SpatialReference. The spatial reference of the exported image. The spatial reference can be specified as either a well-known ID, it’s json representation or as an arcgis.geometry.SpatialReference object. If the image_sr is not specified, the image will be exported in the spatial reference of the imagery layer.
bbox_sr optional string, SpatialReference. The spatial reference of the bbox. The spatial reference can be specified as either a well-known ID, it’s json representation or as an arcgis.geometry.SpatialReference object. If the image_sr is not specified, bbox is assumed to be in the spatial reference of the imagery layer.
size optional list. The size (width * height) of the exported image in pixels. If size is not specified, an image with a default size of 400 * 400 will be exported. Syntax: list of [width, height]
time

optional datetime.date, datetime.datetime or timestamp string. The time instant or the time extent of the exported image. Time instant specified as datetime.date, datetime.datetime or timestamp in milliseconds since epoch Syntax: time=<timeInstant>

Time extent specified as list of [<startTime>, <endTime>] For time extents one of <startTime> or <endTime> could be None. A None value specified for start time or end time will represent infinity for start or end time respectively. Syntax: time=[<startTime>, <endTime>] ; specified as datetime.date, datetime.datetime or timestamp

export_format

optional string. The format of the exported image. The default format is jpgpng. The jpgpng format returns a JPG if there are no transparent pixels in the requested extent; otherwise, it returns a PNG (png32).

Values: jpgpng,png,png8,png24,jpg,bmp,gif,tiff,png32,bip,bsq,lerc

pixel_type optional string. The pixel type, also known as data type, pertains to the type of values stored in the raster, such as signed integer, unsigned integer, or floating point. Integers are whole numbers, whereas floating points have decimals.
no_data optional float. The pixel value representing no information.
no_data_interpretation optional string. Interpretation of the no_data setting. The default is NoDataMatchAny when no_data is a number, and NoDataMatchAll when no_data is a comma-delimited string: NoDataMatchAny,NoDataMatchAll.
interpolation optional string. The resampling process of extrapolating the pixel values while transforming the raster dataset when it undergoes warping or when it changes coordinate space. One of: RSP_BilinearInterpolation, RSP_CubicConvolution, RSP_Majority, RSP_NearestNeighbor
compression optional string. Controls how to compress the image when exporting to TIFF format: None, JPEG, LZ77. It does not control compression on other formats.
compression_quality optional integer. Controls how much loss the image will be subjected to by the compression algorithm. Valid value ranges of compression quality are from 0 to 100.
band_ids optional list. If there are multiple bands, you can specify a single band to export, or you can change the band combination (red, green, blue) by specifying the band number. Band number is 0 based. Specified as list of ints, eg [2,1,0]
mosaic_rule optional dict. Specifies the mosaic rule when defining how individual images should be mosaicked. When a mosaic rule is not specified, the default mosaic rule of the image layer will be used (as advertised in the root resource: defaultMosaicMethod, mosaicOperator, sortField, sortValue).
rendering_rule optional dict. Specifies the rendering rule for how the requested image should be rendered.
f optional string. The response format. default is json Values: json,image,kmz If image format is chosen, the bytes of the exported image are returned unless save_folder and save_file parameters are also passed, in which case the image is written to the specified file
save_folder optional string. The folder in which the exported image is saved when f=image
save_file optional string. The file in which the exported image is saved when f=image
compression_tolerance optional float. Controls the tolerance of the lerc compression algorithm. The tolerance defines the maximum possible error of pixel values in the compressed image. Example: compression_tolerance=0.5 is loseless for 8 and 16 bit images, but has an accuracy of +-0.5 for floating point data. The compression tolerance works for the LERC format only.
adjust_aspect_ratio optional boolean. Indicates whether to adjust the aspect ratio or not. By default adjust_aspect_ratio is true, that means the actual bbox will be adjusted to match the width/height ratio of size paramter, and the response image has square pixels.
lerc_version optional integer. The version of the Lerc format if the user sets the format as lerc. Values: 1 or 2 If a version is specified, the server returns the matching version, or otherwise the highest version available.
Returns:dict or string
extent

Area of interest. Used for displaying the imagery layer when queried

filter_by(where=None, geometry=None, time=None, lock_rasters=True)

Filters the layer by where clause, geometry and temporal filters

Arguments Description
where optional string. A where clause on this layer to filter the imagery layer by the selection sql statement. Any legal SQL where clause operating on the fields in the raster
geometry optional arcgis.geometry.filters. To filter results by a spatial relationship with another geometry
time

optional datetime, date, or timestamp. A temporal filter to this layer to filter the imagery layer by time using the specified time instant or the time extent.

Syntax: time_filter=<timeInstant>

Time extent specified as list of [<startTime>, <endTime>] For time extents one of <startTime> or <endTime> could be None. A None value specified for start time or end time will represent infinity for start or end time respectively. Syntax: time_filter=[<startTime>, <endTime>] ; specified as datetime.date, datetime.datetime or timestamp in milliseconds

lock_rasters optional boolean. If True, the LockRaster mosaic rule will be applied to the layer, unless overridden
Returns:ImageryLayer with filtered images meeting the filter criteria
filtered_rasters()

The object ids of the filtered rasters in this imagery layer, by applying the where clause, spatial and temporal filters. If no rasters are filtered, returns None. If all rasters are filtered, returns empty list

first()

overlapping pixels at the same location are resolved by picking the first image :return: this imagery layer with mosaic operation set to ‘first’

classmethod fromitem(item)
get_download_info(raster_ids, polygon=None, extent=None, out_format=None)

The Download Rasters operation returns information (the file ID) that can be used to download the raw raster files that are associated with a specified set of rasters in the raster catalog.

Argument Description
raster_ids required string. A comma-separated list of raster IDs whose files are to be downloaded.
polygon optional Polygon, The geometry to apply for clipping
extent optional string. The geometry to apply for clipping example: “-104,35.6,-94.32,41”
out_format

optional string. The format of the rasters returned. If not specified, the rasters will be in their native format. The format applies when the clip geometry is also specified, and the format will be honored only when the raster is clipped.

To force the Download Rasters operation to convert source images to a different format, append :Conversion after format string. Valid formats include: TIFF, Imagine Image, JPEG, BIL, BSQ, BIP, ENVI, JP2, GIF, BMP, and PNG. Example: out_format=’TIFF’

get_raster_file(download_info, out_folder=None)

The Raster File method represents a single raw raster file. The download_info is obtained by using the get_download_info operation.

Argument Description
download_info required dictionary. This is derived from the get_downlad_info().
out_folder optional string. Path to the file save location. If the value is None, the OS temporary directory is used.
Returns:list of files downloaded
get_samples(geometry, geometry_type=None, sample_distance=None, sample_count=None, mosaic_rule=None, pixel_size=None, return_first_value_only=None, interpolation=None, out_fields=None)

The get_samples operation is supported by both mosaic dataset and raster dataset imagery layers. The result of this operation includes sample point locations, pixel values, and corresponding spatial resolutions of the source data for a given geometry. When the input geometry is a polyline, envelope, or polygon, sampling is based on sample_count or sample_distance; when the input geometry is a point or multipoint, the point or points are used directly. The number of sample locations in the response is based on the sample_distance or sample_count parameter and cannot exceed the limit of the image layer (the default is 1000, which is an approximate limit).

Argument Description
geometry A geometry that defines the location(s) to be sampled. The structure of the geometry is the same as the structure of the JSON geometry objects returned by the ArcGIS REST API. Applicable geometry types are point, multipoint, polyline, polygon, and envelope. When spatial reference is omitted in the input geometry, it will be assumed to be the spatial reference of the image layer.
geometry_type optional string. The type of geometry specified by the geometry parameter. The geometry type can be point, multipoint, polyline, polygon, or envelope.
sample_distance optional float. The distance interval used to sample points from the provided path. The unit is the same as the input geometry. If neither sample_count nor sample_distance is provided, no densification can be done for paths (polylines), and a default sample_count (100) is used for areas (polygons or envelopes).
sample_count optional integer. The approximate number of sample locations from the provided path. If neither sample_count nor sample_distance is provided, no densification can be done for paths (polylines), and a default sample_count (100) is used for areas (polygons or envelopes).
mosaic_rule optional dictionary. Specifies the mosaic rule when defining how individual images should be mosaicked. When a mosaic rule is not specified, the default mosaic rule of the image layer will be used (as advertised in the root resource: defaultMosaicMethod, mosaicOperator, sortField, sortValue).
pixel_size optional string or dict. The pixel level being used (or the resolution being looked at). If pixel size is not specified, then pixel_size will default to the base resolution of the dataset. The raster at the specified pixel size in the mosaic dataset will be used for histogram calculation.
return_first_value_only optional boolean. Indicates whether to return all values at a point, or return the first non-NoData value based on the current mosaic rule. The default is true.
interpolation

optional string. The resampling method. Default is nearest neighbor. Values: RSP_BilinearInterpolation,RSP_CubicConvolution,

RSP_Majority,RSP_NearestNeighbor
out_fields optional string. The list of fields to be included in the response. This list is a comma-delimited list of field names. You can also specify the wildcard character (*) as the value of this parameter to include all the field values in the results.
histograms

Returns the histograms of each band in the imagery layer as a list of dictionaries corresponding to each band. If not histograms is found, returns None. In this case, call the compute_histograms() :return:

my_hist = imagery_layer.histograms()

Structure of the return value: [

{ #band 1
“size”:256, “min”:560, “max”:24568, counts: [10,99,56,42200,125,….] #length of this list corresponds ‘size’

} { #band 3

“size”:256, #number of bins “min”:8000, “max”:15668, counts: [45,9,690,86580,857,….] #length of this list corresponds ‘size’

]

identify(geometry, mosaic_rule=None, rendering_rules=None, pixel_size=None, time_extent=None, return_geometry=False, return_catalog_items=True)

It identifies the content of an image layer for a given location and a given mosaic rule. The location can be a point or a polygon.

The identify operation is supported by both mosaic dataset and raster dataset image services.

The result of this operation includes the pixel value of the mosaic for a given mosaic rule, a resolution (pixel size), and a set of catalog items that overlap the given geometry. The single pixel value is that of the mosaic at the centroid of the specified location. If there are multiple rasters overlapping the location, the visibility of a raster is determined by the order of the rasters defined in the mosaic rule. It also contains a set of catalog items that overlap the given geometry. The catalog items are ordered based on the mosaic rule. A list of catalog item visibilities gives the percentage contribution of the item to overall mosaic.

Arguments Description
geometry required dictionary/Point/Polygon. A geometry that defines the location to be identified. The location can be a point or polygon.
mosaic_rule optional string or dict. Specifies the mosaic rule when defining how individual images should be mosaicked. When a mosaic rule is not specified, the default mosaic rule of the image layer will be used (as advertised in the root resource: defaultMosaicMethod, mosaicOperator, sortField, sortValue).
rendering_rules optional dictionary/list. Specifies the rendering rule for how the requested image should be rendered.
pixel_size

optional string or dict. The pixel level being identified (or the resolution being looked at). Syntax:

  • JSON structure: pixelSize={point}
  • Point simple syntax: pixelSize=<x>,<y>
time_extent optional list of datetime objects or datetime object. The time instant or time extent of the raster to be identified. This parameter is only valid if the image layer supports time.
return_geometry optional boolean. Default is False. Indicates whether or not to return the raster catalog item’s footprint. Set it to false when the catalog item’s footprint is not needed to improve the identify operation’s response time.
return_catalog_items optional boolean. Indicates whether or not to return raster catalog items. Set it to false when catalog items are not needed to improve the identify operation’s performance significantly. When set to false, neither the geometry nor attributes of catalog items will be returned.
Returns:dictionary
key_properties(rendering_rule=None)

returns key properties of the imagery layer, such as band properties

Argument Description
rendering_rule optional dictionary. Specifies the rendering rule for how the requested image should be rendered.
Returns:key properties of the imagery layer
last()

overlapping pixels at the same location are resolved by picking the last image

Returns:this imagery layer with mosaic operation set to ‘last’
legend(band_ids=None, rendering_rule=None, as_html=False)

The legend information includes the symbol images and labels for each symbol. Each symbol is generally an image of size 20 x 20 pixels at 96 DPI. Symbol sizes may vary slightly for some renderer types (e.g., Vector Field Renderer). Additional information in the legend response will include the layer name, layer type, label, and content type. The legend symbols include the base64 encoded imageData. The symbols returned in response to an image layer legend request reflect the default renderer of the image layer or the renderer defined by the rendering rule and band Ids.

Argument Description
band_ids optional string. If there are multiple bands, you can specify a single band, or you can change the band combination (red, green, blue) by specifying the band ID. Band ID is 0 based. Example: bandIds=2,1,0
rendering_rule optional dictionary. Specifies the rendering rule for how the requested image should be rendered.
as_html optional bool. Returns an HTML table if True
Returns:legend as a dictionary by default, or as an HTML table if as_html is True
max()

overlapping pixels at the same location are resolved by picking the max pixel value

Returns:this imagery layer with mosaic operation set to ‘max’
mean()

overlapping pixels at the same location are resolved by choosing the mean of all overlapping pixels

Returns:this imagery layer with mosaic operation set to ‘mean’
measure(from_geometry, to_geometry=None, measure_operation=None, pixel_size=None, mosaic_rule=None, linear_unit=None, angular_unit=None, area_unit=None)

The function lets a user measure distance, direction, area, perimeter, and height from an image layer. The result of this operation includes the name of the raster dataset being used, sensor name, and measured values. The measure operation can be supported by image services from raster datasets and mosaic datasets. Spatial reference is required to perform basic measurement (distance, area, and so on). Sensor metadata (geodata transformation) needs to be present in the data source used by an image layer to enable height measurement (for example, imagery with RPCs). The mosaic dataset or Layer needs to include DEM to perform 3D measure.

Arguments Description
from_geometry required Geomerty or dictionary. A geometry that defines the “from” location of the measurement.
to_geometry optional Geomerty. A geometry that defines the “to” location of the measurement. The type of geometry must be the same as from_geometry.
measure_operation

optional string or dict. Specifies the type of measure being performed.

Values: Point, DistanceAndAngle,AreaAndPerimeter,HeightFromBaseAndTop, HeightFromBaseAndTopShadow, HeightFromTopAndTopShadow,Centroid, Point3D,DistanceAndAngle3D, AreaAndPerimeter3D,Centroid3D

Different measureOperation types require different from and to geometries:

  • Point and Point3D-Require only from_geometry, type: {Point}
  • DistanceAndAngle, DistanceAndAngle3D,

HeightFromBaseAndTop, HeightFromBaseAndTopShadow, and HeightFromTopAndTopShadow - Require both from_geometry and to_geometry, type: {Point} - AreaAndPerimeter,

AreaAndPerimeter3D, Centroid, and Centroid3D - Require only from_geometry, type: {Polygon}, {Envelope}

Supported measure operations can be derived from the mensurationCapabilities in the image layer root resource. Basic capability supports Point, DistanceAndAngle, AreaAndPerimeter, and Centroid. Basic and 3Dcapabilities support Point3D, DistanceAndAngle3D,AreaAndPerimeter3D, and Centroid3D. Base-Top Height capability supports HeightFromBaseAndTop. Top-Top Shadow Height capability supports HeightFromTopAndTopShadow. Base-Top Shadow Height capability supports HeightFromBaseAndTopShadow.

pixel_size

optional string or dict. The pixel level (resolution) being measured. If pixel size is not specified, pixel_size will default to the base resolution of the image layer. The raster at the specified pixel size in the mosaic dataset will be used for measurement. Syntax:

  • JSON structure: pixelSize={point}
  • Point simple syntax: pixelSize=<x>,<y>

Example: pixel_size=0.18,0.18

mosaic_rule optional string or dict. Specifies the mosaic rule when defining how individual images should be mosaicked. When a mosaic rule is not specified, the default mosaic rule of the image layer will be used (as advertised in the root resource: defaultMosaicMethod, mosaicOperator, sortField, sortValue). The first visible image is used by measure.
linear_unit optional string. The linear unit in which height, length, or perimeters will be calculated. It can be any of the following U constant. If the unit is not specified, the default is Meters. The list of valid Units constants include: Inches,Feet,Yards,Miles,NauticalMiles, Millimeters,Centimeters,Decimeters,Meters, Kilometers
angular_unit optional string. The angular unit in which directions of line segments will be calculated. It can be one of the following DirectionUnits constants: DURadians, DUDecimalDegrees If the unit is not specified, the default is DUDecimalDegrees.
area_unit optional string. The area unit in which areas of polygons will be calculated. It can be any AreaUnits constant. If the unit is not specified, the default is SquareMeters. The list of valid AreaUnits constants include: SquareInches,SquareFeet,SquareYards,Acres, SquareMiles,SquareMillimeters,SquareCentimeters, SquareDecimeters,SquareMeters,Ares,Hectares, SquareKilometers
Returns:dictionary
min()

overlapping pixels at the same location are resolved by picking the min pixel value

Returns:this imagery layer with mosaic operation set to ‘min’
mosaic_by(method=None, sort_by=None, sort_val=None, lock_rasters=None, viewpt=None, asc=True, where=None, fids=None, muldidef=None, op='first')

Defines how individual images in this layer 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.
Argument Description
method optional string. Determines how the selected rasters are ordered. str, can be none,center,nadir,northwest,seamline,viewpoint, attribute,lock-raster required if method is: center,nadir,northwest,seamline, optional otherwise. If no method is passed “none” method is used, which uses the order of records to sort If sort_by and optionally sort_val parameters are specified, “attribute” method is used If lock_rasters are specified, “lock-raster” method is used If a viewpt parameter is passed, “viewpoint” method is used.
sort_by optional string. field name when sorting by attributes
sort_val optional string. A constant value defining a reference or base value for the sort field when sorting by attributes
lock_rasters optional, 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.
viewpt optional point, used as view point for viewpoint mosaicking method
asc optional bool, indicate whether to use ascending or descending order. Default is ascending order.
where optional string. where clause to define a subset of rasters used in the mosaic, be aware that the rasters may not be visible at all scales
fids optional list of objectids, use the raster id list to define a subset of rasters used in the mosaic, be aware that the rasters may not be visible at all scales.
muldidef optional dict. multidemensional definition used for filtering by variable/dimensions. See http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r300000290000000
op optional string, first,last,min,max,mean,blend,sum mosaic operation to resolve overlap pixel values: from first or last raster, use the min, max or mean of the pixel values, or blend them.
Returns:a mosaic rule defined in the format at http://resources.arcgis.com/en/help/arcgis-rest-api/#/Mosaic_rule_objects/02r3000000s4000000/

Also see http://desktop.arcgis.com/en/arcmap/latest/manage-data/raster-and-images/understanding-the-mosaicking-rules-for-a-mosaic-dataset.htm#ESRI_SECTION1_ABDC9F3F6F724A4F8079051565DC59E

mosaic_rule

The mosaic rule used by the imagery layer to define: * The selection of rasters that will participate in the mosaic * 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.

Set by calling the mosaic_by or filter_by methods on the layer

multidimensional_info

The multidimensional_info property returns multidimensional informtion of the Layer. This property is supported if the hasMultidimensions property of the Layer is true. Common data sources for multidimensional image services are mosaic datasets created from netCDF, GRIB, and HDF data.

project(geometries, in_sr, out_sr)

The project operation is performed on an image layer method. This operation projects an array of input geometries from the input spatial reference to the output spatial reference. The response order of geometries is in the same order as they were requested.

Arguments Description
geometries required dictionary. The array of geometries to be projected.
in_sr required string, dictionary, SpatialReference. The in_sr can accept a multitudes of values. These can be a WKID, image coordinate system (ICSID), or image coordinate system in json/dict format. Additionally the arcgis.geometry.SpatialReference object is also a valid entry. .. note :: An image coordinate system ID can be specified using 0:icsid; for example, 0:64. The extra 0: is used to avoid conflicts with wkid
out_sr required string, dictionary, SpatialReference. The in_sr can accept a multitudes of values. These can be a WKID, image coordinate system (ICSID), or image coordinate system in json/dict format. Additionally the arcgis.geometry.SpatialReference object is also a valid entry. .. note :: An image coordinate system ID can be specified using 0:icsid; for example, 0:64. The extra 0: is used to avoid conflicts with wkid
Returns:dictionary
properties

The properties of this object

query(where=None, out_fields='*', time_filter=None, geometry_filter=None, return_geometry=True, return_ids_only=False, return_count_only=False, pixel_size=None, order_by_fields=None, return_distinct_values=None, out_statistics=None, group_by_fields_for_statistics=None, out_sr=None, return_all_records=False, object_ids=None, multi_dimensional_def=None, result_offset=None, result_record_count=None, max_allowable_offset=None, true_curves=False)
queries an imagery layer by applying the filter specified by the user. The result of this operation is
either a set of features or an array of raster IDs (if return_ids_only is set to True), count (if return_count_only is set to True), or a set of field statistics (if out_statistics is used).
Arguments Description
where optional string. A where clause on this layer to filter the imagery layer by the selection sql statement. Any legal SQL where clause operating on the fields in the raster
out_fields optional string. The attribute fields to return, comma-delimited list of field names.
time_filter

optional datetime.date, datetime.datetime or timestamp in milliseconds. The time instant or the time extent of the exported image.

Syntax: time_filter=<timeInstant>

Time extent specified as list of [<startTime>, <endTime>] For time extents one of <startTime> or <endTime> could be None. A None value specified for start time or end time will represent infinity for start or end time respectively. Syntax: time_filter=[<startTime>, <endTime>] ; specified as datetime.date, datetime.datetime or timestamp in milliseconds

geometry_filter optional arcgis.geometry.filters. Spatial filter from arcgis.geometry.filters module to filter results by a spatial relationship with another geometry.
return_geometry optional boolean. True means a geometry will be returned, else just the attributes
return_ids_only optional boolean. False is default. True means only OBJECTIDs will be returned
return_count_only optional boolean. If True, then an integer is returned only based on the sql statement
pixel_size optional dict or list. Query visible rasters at a given pixel size. If pixel_size is not specified, rasters at all resolutions can be queried.
order_by_fields optional string. Order results by one or more field names. Use ASC or DESC for ascending or descending order, respectively.
return_distinct_values optional boolean. If true, returns distinct values based on the fields specified in out_fields. This parameter applies only if the supportsAdvancedQueries property of the image layer is true.
out_statistics optional dict or string. The definitions for one or more field-based statistics to be calculated.
group_by_fields_for_statistics optional dict/string. One or more field names using the values that need to be grouped for calculating the statistics.
out_sr optional dict, SpatialReference. If the returning geometry needs to be in a different spatial reference, provide the function with the desired WKID.
return_all_records optional boolean. If True(default) all records will be returned. False means only the limit of records will be returned.
object_ids optional string. The object IDs of this raster catalog to be queried. When this parameter is specified, any other filter parameters (including where) are ignored. When this parameter is specified, setting return_ids_only=true is invalid. Syntax: objectIds=<objectId1>, <objectId2> Example: objectIds=37, 462
multi_dimensional_def optional dict. The filters defined by multiple dimensional definitions.
result_offset optional integer. This option fetches query results by skipping a specified number of records. The query results start from the next record (i.e., resultOffset + 1). The Default value is None.
result_record_count optional integer. This option fetches query results up to the resultRecordCount specified. When resultOffset is specified and this parameter is not, image layer defaults to maxRecordCount. The maximum value for this parameter is the value of the layer’s maxRecordCount property. max_allowable_offset - This option can be used to specify the max_allowable_offset to be used for generalizing geometries returned by the query operation. The max_allowable_offset is in the units of the out_sr. If outSR is not specified, max_allowable_offset is assumed to be in the unit of the spatial reference of the Layer.
true_curves optional boolean. If true, returns true curves in output geometries, otherwise curves get converted to densified polylines or polygons.
Returns:A FeatureSet containing the footprints (features) matching the query when return_geometry is True, else a dictionary containing the expected return type.
rasters

Raster manager for this layer

save(output_name=None, for_viz=False, gis=None)

Persists this imagery layer to the GIS as an Imagery Layer item. If for_viz is True, a new Item is created that uses the applied raster functions for visualization at display resolution using on-the-fly image processing. If for_viz is False, distributed raster analysis is used for generating a new raster information product by applying raster functions at source resolution across the extent of the output imagery layer.

Argument Description
output_name optional string. If not provided, an Imagery Layer item is created by the method and used as the output. You can pass in the name of the output Imagery Layer that should be created by this method to be used as the output for the tool. Alternatively, if for_viz is False, you can pass in an existing Image Layer Item from your GIS to use that instead. A RuntimeError is raised if a layer by that name already exists
for_viz optional boolean. If True, a new Item is created that uses the applied raster functions for visualization at display resolution using on-the-fly image processing. If for_viz is False, distributed raster analysis is used for generating a new raster information product for use in analysis and visualization by applying raster functions at source resolution across the extent of the output imagery layer.
gis optional arcgis.gis.GIS object. The GIS to be used for saving the output
Returns:output_raster - Image layer item
service

The service backing this imagery layer (if user can administer the service)

set_filter(where=None, geometry=None, time=None, lock_rasters=False, clear_filters=False)

Filters the rasters that will be used for applying raster functions.

If lock_rasters is set True, the LockRaster mosaic rule will be applied to the layer, unless overridden

Arguments Description
where optional string. A where clause on this layer to filter the imagery layer by the selection sql statement. Any legal SQL where clause operating on the fields in the raster
geometry optional arcgis.geometry.filters. To filter results by a spatial relationship with another geometry
time

optional datetime, date, or timestamp. A temporal filter to this layer to filter the imagery layer by time using the specified time instant or the time extent.

Syntax: time_filter=<timeInstant>

Time extent specified as list of [<startTime>, <endTime>] For time extents one of <startTime> or <endTime> could be None. A None value specified for start time or end time will represent infinity for start or end time respectively. Syntax: time_filter=[<startTime>, <endTime>] ; specified as datetime.date, datetime.datetime or timestamp in milliseconds

lock_rasters optional boolean. If True, the LockRaster mosaic rule will be applied to the layer, unless overridden
clear_filters optional boolean. If True, the applied filters are cleared
sum()

overlapping pixels at the same location are resolved by adding up all overlapping pixel values

Returns:this imagery layer with mosaic operation set to ‘sum’
tiles

Imagery tile manager for this layer

to_features(field='Value', output_type='Polygon', simplify=True, output_name=None, gis=None)

RasterCatalogItem

class arcgis.raster.RasterCatalogItem(url, imglyr, initialize=True)

Represents a single catalog item on an Image Layer. This class is only to be used with Imagery Layer objects that have ‘Catalog’ in the layer’s capabilities property.

Argument Description
url required string. Web address to the catalog item.
imglyr required ImageryLayer. The imagery layer object.
initialize optional boolean. Default is true. If false, the properties of the item will not be loaded until requested.
ics

The raster ics property returns the image coordinate system of the associated raster in an image layer. The returned ics can be used as the SR parameter.

image(bbox, return_format='JSON', bbox_sr=None, size=None, image_sr=None, image_format='png', pixel_type=None, no_data=None, interpolation=None, compression=75)

The Raster Image method returns a composite image for a single raster catalog item. You can use this method for generating dynamic images based on a single catalog item. This method provides information about the exported image, such as its URL, width and height, and extent. Apart from the usual response formats of html and json, you can also request a format called image for the image. When you specify image as the format, the server responds by directly streaming the image bytes to the client. With this approach, you don’t get any information associated with the image other than the actual image.

Arguments Description
return_format optional string. The response can either be IMAGER or JSON. Image will return the image file to disk where as the JSON value will The default value is JSON.
bbox required string. The extent (bounding box) of the exported image. Unless the bbox_sr parameter has been specified, the bbox is assumed to be in the spatial reference of the image layer. Syntax: <xmin>, <ymin>, <xmax>, <ymax> Example: bbox=-104,35.6,-94.32,41
bbox_sr optional string. The spatial reference of the bbox.
size optional string.The size (width * height) of the exported image in pixels. If the size is not specified, an image with a default size of 400 * 400 will be exported. Syntax: <width>, <height> Example: size=600,550
image_sr optional string/integer. The spatial reference of the image.
format optional string. The format of the exported image. The default format is png. Values: png, png8, png24, jpg, bmp, gif
pixel_type optional string. The pixel type, also known as data type, that pertains to the type of values stored in the raster, such as signed integer, unsigned integer, or floating point. Integers are whole numbers; floating points have decimals. Values: C128, C64, F32, F64, S16, S32, S8, U1, U16, U2, U32, U4, U8, UNKNOWN
no_data optional float. The pixel value representing no information.
interpolation optional string. The resampling process of extrapolating the pixel values while transforming the raster dataset when it undergoes warping or when it changes coordinate space. Values: RSP_BilinearInterpolation, RSP_CubicConvolution, RSP_Majority, RSP_NearestNeighbor
compression optional integer. Controls how much loss the image will be subjected to by the compression algorithm. Valid value ranges of compression quality are from 0 to 100.
info

The info property returns information about the associated raster such as its width, height, number of bands, and pixel type.

key_properties

The raster key_properties property returns key properties of the associated raster in an image layer.

metadata

The metadata property returns metadata of the image layer or a raster catalog item. The output format is always XML.

properties

returns the object properties

thumbnail

returns a thumbnail of the current item

RasterManager

class arcgis.raster.RasterManager(imglyr)

This class allows users to update, add, and delete rasters to an ImageryLayer object. The functions are only available if the layer has ‘Edit’ on it’s capabilities property.

Note

This class is not created by users directly. An instance of this class, called ‘rasters’, is available as a property of an ImageryLayer object. Users call methods on this ‘rasters’ object to update, add and delete rasters from an ImageryLayer

Argument Description
imglyr required ImageryLayer. The imagery layer object where ‘Edit’ is in the capabilities.
add(raster_type, item_ids=None, service_url=None, compute_statistics=False, build_pyramids=False, build_thumbnail=False, minimum_cell_size_factor=None, maximum_cell_size_factor=None, attributes=None, geodata_transforms=None, geodata_transform_apply_method='esriGeodataTransformApplyAppend')

This operation is supported at 10.1 and later. The Add Rasters operation is performed on an image layer method. The Add Rasters operation adds new rasters to an image layer (POST only). The added rasters can either be uploaded items, using the item_ids parameter, or published services, using the service_url parameter. If item_ids is specified, uploaded rasters are copied to the image Layer’s dynamic image workspace location; if the service_url is specified, the image layer adds the URL to the mosaic dataset no raster files are copied. The service_url is required input for the following raster types: Image Layer, Map Service, WCS, and WMS.

Inputs:

item_ids - The upload items (raster files) to be added. Either
item_ids or service_url is needed to perform this operation.

Syntax: item_ids=<itemId1>,<itemId2> Example: item_ids=ib740c7bb-e5d0-4156-9cea-12fa7d3a472c,

ib740c7bb-e2d0-4106-9fea-12fa7d3a482c
service_url - The URL of the service to be added. The image layer

will add this URL to the mosaic dataset. Either item_ids or service_url is needed to perform this operation. The service URL is required for the following raster types: Image Layer, Map Service, WCS, and WMS.

Example: service_url=http://myserver/arcgis/services/Portland/ImageServer
raster_type - The type of raster files being added. Raster types

define the metadata and processing template for raster files to be added. Allowed values are listed in image layer resource.

Example: Raster Dataset,CADRG/ECRG,CIB,DTED,Image Layer,Map Service,NITF,WCS,WMS
compute_statistics - If true, statistics for the rasters will be
computed. The default is false.
Values: false,true
build_pyramids - If true, builds pyramids for the rasters. The
default is false.
Values: false,true
build_thumbnail - If true, generates a thumbnail for the rasters.
The default is false.
Values: false,true
minimum_cell_size_factor - The factor (times raster resolution) used

to populate the MinPS field (maximum cell size above which the raster is visible).

Syntax: minimum_cell_size_factor=<minimum_cell_size_factor> Example: minimum_cell_size_factor=0.1
maximum_cell_size_factor - The factor (times raster resolution) used

to populate MaxPS field (maximum cell size below which raster is visible).

Syntax: maximum_cell_size_factor=<maximum_cell_size_factor> Example: maximum_cell_size_factor=10
attributes - Any attribute for the added rasters.

Syntax: {

“<name1>” : <value1>, “<name2>” : <value2>

} Example: {

“MinPS”: 0, “MaxPS”: 20; “Year” : 2002, “State” : “Florida”

}

geodata_transforms - The geodata transformations applied on the

added rasters. A geodata transformation is a mathematical model that performs a geometric transformation on a raster; it defines how the pixels will be transformed when displayed or accessed. Polynomial, projective, identity, and other transformations are available. The geodata transformations are applied to the dataset that is added.

Syntax: [ {

“geodataTransform” : “<geodataTransformName1>”, “geodataTransformArguments” : {<geodataTransformArguments1>} }, { “geodataTransform” : “<geodataTransformName2>”, “geodataTransformArguments” : {<geodataTransformArguments2>} }

]

The syntax of the geodataTransformArguments property varies based on the specified geodataTransform name. See Geodata Transformations documentation for more details.

geodata_transform_apply_method - This parameter defines how to apply

the provided geodataTransform. The default is esriGeodataTransformApplyAppend.

Values: esriGeodataTransformApplyAppend | esriGeodataTransformApplyReplace | esriGeodataTransformApplyOverwrite
delete(raster_ids)

The Delete Rasters operation deletes one or more rasters in an image layer.

Argument Description
raster_ids required string. The object IDs of a raster catalog items to be removed. This is a comma seperated string. example 1: raster_ids=‘1,2,3,4’ # Multiple IDs example 2: raster_ids=‘10’ # single ID
Returns:dictionary
update(raster_id, files=None, item_ids=None, service_url=None, compute_statistics=False, build_pyramids=False, build_thumbnail=False, minimum_cell_size_factor=None, maximum_cell_size_factor=None, attributes=None, footprint=None, geodata_transforms=None, apply_method='esriGeodataTransformApplyAppend')

The Update Raster operation updates rasters (attributes and footprints, or replaces existing raster files) in an image layer. In most cases, this operation is used to update attributes or footprints of existing rasters in an image layer. In cases where the original raster needs to be replaced, the new raster can either be items uploaded using the items parameter or URLs of published services using the serviceUrl parameter.

Argument Description
raster_ids required integer. The object IDs of a raster catalog items to be updated.
files optional list. Local source location to the raster to replace the dataset with. Example: [r”<path>data.tiff”]
item_ids optional string. The uploaded items (raster files) being used to replace existing raster.
service_url optional string. The URL of the layer to be uploaded to replace existing raster data. The image layer will add this URL to the mosaic dataset. The serviceUrl is required for the following raster types: Image Layer, Map Service, WCS, and WMS.
compute_statistics If true, statistics for the uploaded raster will be computed. The default is false.
build_pyramids optional boolean. If true, builds pyramids for the uploaded raster. The default is false.
build_thumbnail optional boolean. If true, generates a thumbnail for the uploaded raster. The default is false.
minimum_cell_size_factor optional float. The factor (times raster resolution) used to populate MinPS field (minimum cell size above which raster is visible).
maximum_cell_size_factor optional float. The factor (times raster resolution) used to populate MaxPS field (maximum cell size below which raster is visible).
footprint optional Polygon. A JSON 2D polygon object that defines the footprint of the raster. If the spatial reference is not defined, it will default to the image layer’s spatial reference.
attributes optional dictionary. Any attribute for the uploaded raster.
geodata_transforms optional string. The geodata transformations applied on the updated rasters. A geodata transformation is a mathematical model that performs geometric transformation on a raster. It defines how the pixels will be transformed when displayed or accessed, such as polynomial, projective, or identity transformations. The geodata transformations will be applied to the updated dataset.
apply_method

optional string. Defines how to apply the provided geodataTransform. The default is esriGeodataTransformApplyAppend. Values: esriGeodataTransformApplyAppend,

esriGeodataTransformApplyReplace, esriGeodataTransformApplyOverwrite
Returns:dictionary

ImageryTileManager

class arcgis.raster.ImageryTileManager(imglyr)

Manages the tiles for Cached Imagery Layers.

Note

This class is not created by users directly. An instance of this class, called ‘tiles’, is available as a property of an ImageryLayer object. Users call methods on this ‘tiles’ object to create and access tiles from an ImageryLayer.

Argument Description
imglyr required ImageLayer. The imagery layer object that is cached.
estimate_size(tile_package=False, extent=None, optimize_for_size=True, compression=75, export_by='LevelID', levels=None, aoi=None)

The estimate_size operation is an asynchronous task that allows estimation of the size of the tile package or the cache data set that you download using the Export Tiles operation. This operation can also be used to estimate the tile count in a tile package and determine if it will exceced the maxExportTileCount limit set by the administrator of the layer. The result of this operation is the response size. This job response contains reference to Image Layer Result method that returns the total size of the cache to be exported (in bytes) and the number of tiles that will be exported.

Argument Description
tile_package optional boolean. If the value is true output will be in tile package format and if the value is false Cache Raster data set is returned. The default value is false
extent

optional string. The extent (bounding box) of the tile package or the cache dataset to be exported. If extent does not include a spatial reference, the extent values are assumed to be in the spatial reference of the map. The default value is full extent of the tiled map service.

Syntax: <xmin>, <ymin>, <xmax>, <ymax> Example: -104,35.6,-94.32,41

optimize_for_size optional boolean. Use this parameter to enable compression of JPEG tiles and reduce the size of the downloaded tile package or the cache raster data set. Compressing tiles slightly compromises on the quality of tiles but helps reduce the size of the download. Try out sample compressions to determine the optimal compression before using this feature.
compression optional integer. When optimizeTilesForSize=true you can specify a compression factor. The value must be between 0 and 100. Default is 75.
export_by optional string. The criteria that will be used to select the tile service levels to export. The values can be Level IDs, cache scales or the Resolution (in the case of image services). Values: LevelID,Resolution,Scale Default: LevelID
levels

optional string. Specify the tiled service levels to export. The values should correspond to Level IDs, cache scales or the Resolution as specified in exportBy parameter. The values can be comma separated values or a range.

Example 1: 1,2,3,4,5,6,7,8,9 Example 2: 1-4,7-9

aoi optional polygon. The areaOfInterest polygon allows exporting tiles within the specified polygon areas. This parameter supersedes extent parameter.
Returns:dictionary
export(tile_package=False, extent=None, optimize_for_size=True, compression=75, export_by='LevelID', levels=None, aoi=None)

The export method allows client applications to download map tiles from server for offline use. This operation is performed on a Image Layer that allows clients to export cache tiles. The result of this operation is Image Layer Job. .

export can be enabled in a layer by using ArcGIS Desktop or the ArcGIS Server Administrative Site Directory. In ArcGIS Desktop, make an admin or publisher connection to the server, go to layer properties and enable “Allow Clients to Export Cache Tiles” in advanced caching page of the layer Editor. You can also specify the maximum tiles clients will be allowed to download. The default maximum allowed tile count is 100,000. To enable this capability using the ArcGIS Servers Administrative Site Directory, edit the layer and set the properties exportTilesAllowed=true and maxExportTilesCount=100000.

Argument Description
tile_package optional boolean. Allows exporting either a tile package or a cache raster data set. If the value is true output will be in tile package format and if the value is false Cache Raster data set is returned. The default value is false
extent

optional string. The extent (bounding box) of the tile package or the cache dataset to be exported. If extent does not include a spatial reference, the extent values are assumed to be in the spatial reference of the map. The default value is full extent of the tiled map service.

Syntax: <xmin>, <ymin>, <xmax>, <ymax> Example: -104,35.6,-94.32,41

optimize_for_size optional boolean. Use this parameter to enable compression of JPEG tiles and reduce the size of the downloaded tile package or the cache raster data set. Compressing tiles slightly compromises on the quality of tiles but helps reduce the size of the download. Try out sample compressions to determine the optimal compression before using this feature.
compression optional integer. When optimizeTilesForSize=true you can specify a compression factor. The value must be between 0 and 100. Default is 75.
export_by optional string. The criteria that will be used to select the tile service levels to export. The values can be Level IDs, cache scales or the Resolution (in the case of image services). Values: LevelID,Resolution,Scale Default: LevelID
levels

optional string. Specify the tiled service levels to export. The values should correspond to Level IDs, cache scales or the Resolution as specified in exportBy parameter. The values can be comma separated values or a range.

Example 1: 1,2,3,4,5,6,7,8,9 Example 2: 1-4,7-9

aoi optional polygon. The areaOfInterest polygon allows exporting tiles within the specified polygon areas. This parameter supersedes extent parameter.
image_tile(level, row, column, blank_tile=False)

For cached image services, this method represents a single cached tile for the image. The image bytes for the tile at the specified level, row, and column are directly streamed to the client. If the tile is not found, an HTTP status code of 404 .

Arguments Description
level required integer. The level of detail ID.
row required integer. The row of the cache to pull from.
column required integer. The column of the cache to pull from.
blank_tile optional boolean. Default is False. This parameter applies only to cached image services that are configured with the ability to return blank or missing tiles for areas where cache is not available. When False, the server will return a resource not found (HTTP 404) response instead of a blank or missing tile. When this parameter is not set, the response will contain the header blank-tile : true for a blank/missing tile.
Returns:None or file path (string)

Submodules