Summary
Calculates the values of a raster within the zones of another dataset and reports the results to a table.
Illustration
Usage
A zone is defined as all areas in the input with the same value. The areas do not have to be contiguous. Both raster and feature can be used for the zone input.
This raster analysis portal tool is available when you are signed in to an ArcGIS Enterprise portal that has an ArcGIS Image Server configured for Raster Analysis . When the tool is invoked, ArcGIS Pro serves as a client and the processing occurs in the servers federated with ArcGIS Enterprise. The portal tool accepts layers from your portal as input and creates output in your portal.
The input raster layer supports a layer from the portal, a URI or URL to an image service, or the output from the Make Image Server Layer tool. The input feature layer can be a layer from the portal or a URI or URL to a feature service. This tool does not support local raster data or layers. While you can use local feature data and layers as input to this portal tool, best practice is to use layers from your portal as input.
If the Input Zone Raster or Features (inputZoneRasterOrFeatures in Python) is a raster, it must be an integer raster.
If the zone is a feature, it will be converted to a raster internally using the cell size and cell alignment from the Input Value Raster (inputValueRaster in Python).
When the cell size of the Input Zone Raster or Features and the Input Value Raster are different, the output cell size will be the Maximum Of Inputs value, and the value raster image service will be used as the snap raster internally. If the cell size is the same but the cells are not aligned, the value raster will be used as the snap raster internally. Either of these cases will trigger an internal resampling before the zonal operation is performed.
When the zone and value inputs are both rasters of the same cell size and the cells are aligned, they will be used directly in the tool and will not be resampled internally during tool execution.
If the Input Zone Raster or Features is a feature, for any of the zone features that do not overlap any cell centers of the value raster, those zones will not be converted to the internal zone raster. As a result, those zones will not be represented in the output. You can manage this by determining an appropriate value for the Cell Size environment that will preserve the desired level of detail of the feature zones, and specify it in the analysis environment. Specifying a smaller cell size will generate a larger output raster. The higher resolution output will not necessarily be as high quality a result as it seems, since the additional detail does not actually exist in the Input Value Raster.
If the Input Zone Raster or Features has overlapping features, the zonal analysis will be performed for each individual feature.
If the Input Zone Raster or Features is a point feature, it is possible to have more than one point contained within any particular cell of the value input raster. For such cells, the zone value is determined by the point with the lowest ObjectID field (for example, OID or FID).
When specifying the Input Zone Raster or Features, the default zone field will be the first available integer or text field. If no other valid fields exist, the ObjectID field (for example, OID or FID) will be the default.
The Input Value Raster can be either integer or floating point. However, when it is floating-point type, the options for calculating majority, minority, and variety will not be available. For majority and minority calculations, when there is a tie, the output for the zone is based on the lowest of the tied values.
A field or series of fields will be created in the output table depending on the Statistic Type parameter setting (statisticType in Python). The number of rows in the output table will represent the number of zones.
Syntax
arcpy.ra.ZonalStatisticsAsTable(inputZoneRasterOrFeatures, inputValueRaster, outputTableName, zoneField, {ignoreNodata}, {statisticType}, {percentileValues}, {processAsMultidimensional}, {percentileInterpolationType})
Parameter | Explanation | Data Type |
inputZoneRasterOrFeatures | The input that defines the zones. Both raster and feature data can be used for the zone input. | Raster Layer; Feature Layer |
inputValueRaster | The raster that contains the values on which to summarize a statistic. | Raster Layer |
outputTableName | The name of the output table. If the table already exists, you will be prompted to provide another name. | String |
zoneField | The field that defines each zone. It can be an integer or a string field of the zone dataset. | String |
ignoreNodata (Optional) | Specifies whether NoData values in the value input will be ignored in the results of the zone that they fall within.
| Boolean |
statisticType (Optional) | Specifies the statistic type to calculate. The available options when the value raster is integer are All, Mean, Majority, Maximum, Median, Minimum, Minority, Percentile, Range, Standard deviation, Sum, Variety, Minimum and Maximum, Mean and Standard deviation, and Minimum, Maximum and Mean. If the value raster is float, the options are All, Mean, Maximum, Median, Percentile, Minimum, Range, Standard deviation, and Sum.
| String |
percentileValues [percentileValues,...] (Optional) | The percentile to calculate. The default is 90, indicating the 90th percentile. The values can range from 0 to 100. The 0th percentile is essentially equivalent to the minimum statistic, and the 100th percentile is equivalent to maximum. A value of 50 will produce essentially the same result as the median statistic. This option is only available if the statisticType parameter is set to PERCENTILE or ALL. | Double |
processAsMultidimensional (Optional) | Specifies how the input rasters will be processed if they are multidimensional.
| Boolean |
percentileInterpolationType (Optional) | Specifies the method of percentile interpolation to be used when the number of values from the input raster to be calculated are even.
| String |
Derived Output
Name | Explanation | Data Type |
outputTable | The output table. | Feature service without geometry |
Code sample
This example determines for each zone the mean of cell values in the raster layer to be summarized.
import arcpy
arcpy.ra.ZonalStatisticsAsTable('https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer',
'https://MyPortal.esri.com/server/rest/services/Hosted/elevation/ImageServer',
'outTable', 'Landuse', '', 'MEAN')
This example determines for each zone the statistics values in the raster layer to be summarized.
#-------------------------------------------------------------------------------
# Name: ZonalStatisticsAsTable_Ex_02.py
# Description: Calculates all statistics with defined percentile values
# for sea-surface temperature defined by ecological zones.
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inputZoneRasterOrFeatures = 'https://MyPortal.esri.com/server/rest/services/Hosted/zones/ImageServer'
inputValueRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/seaSurfaceTemperature/ImageServer'
outputTableName = 'outZSAT'
zoneField = 'temperature'
ignoreNodata = ''
statisticType = 'PERCENTILE'
percentileValues = [25,75,90]
processAsMultidimensional = 'ALL_SLICES'
percentileInterpolationType = 'NEAREST'
# Execute Multidimensional Zonal Statistics as Table
arcpy.ra.ZonalStatisticsAsTable(inputZoneRasterOrFeatures, inputValueRaster, outputTableName, zoneField,
ignoreNodata, statisticType, percentileValues, processAsMultidimensional,
percentileInterpolationType)
Environments
Licensing information
- Basic: Requires ArcGIS Image Server
- Standard: Requires ArcGIS Image Server
- Advanced: Requires ArcGIS Image Server