Available with Spatial Analyst license.
Summary
Slices or reclassifies the range of values of the input cells into zones of equal interval, equal area, or by natural breaks.
Usage
Slice works best on data that is normally distributed. When using input raster data that is skewed, the output result may not contain all of the classes that you had expected or specified.
When using the EQUAL_AREA method, sometimes not all of the output zones (classes) will have an equal, or even similar, number of cells. This may be an inherent result based on the nature of the input values and the specified number of zones. If the results are deemed undesirable, you can try using a fewer number of zones or applying a statistics transformation (for example, logarithm or square root) to the input dataset.
See Analysis environments and Spatial Analyst for additional details on the geoprocessing environments that apply to this tool.
Syntax
Slice (in_raster, number_zones, {slice_type}, {base_output_zone})
Parameter | Explanation | Data Type |
in_raster | The input raster to be reclassified. | Raster Layer |
number_zones | The number of zones to reclassify the input raster into. When the slice method is EQUAL_AREA, the output raster will have the defined number of zones, with a similar number of cells in each. When EQUAL_INTERVAL is used, the output raster will have the defined number of zones, each containing equal value ranges on the output raster. When NATURAL_BREAKS is used, the output raster will have the defined number of zones, with the number of cells in each determined by the class breaks. | Long |
slice_type (Optional) | The manner in which to slice the values in the input raster.
| String |
base_output_zone (Optional) | Defines the lowest zone value on the output raster dataset. The default value is 1. | Long |
Return Value
Name | Explanation | Data Type |
out_raster | The output reclassified raster. The output will always be of integer type. | Raster |
Code sample
Slice example 1 (Python window)
Reclassify the input raster into five classes based on natural groupings inherent in the data.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outslice = Slice("elevation", 5, "NATURAL_BREAKS")
outslice.save("C:/sapyexamples/output/elev_slice")
Slice example 2 (stand-alone script)
Reclassify the input raster into ten classes based on natural groupings inherent in the data.
# Name: Slice_Ex_02.py
# Description: Slices a range of values of the input cells of a raster by
# zones of equal interval or equal area.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "elevation"
numberZones = 10
baseOutputZone = 5
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute Slice
outSlice = Slice(inRaster, numberZones, "NATURAL_BREAKS", baseOutputZone)
# Save the output
outSlice.save("C:/sapyexamples/output/outslice")
Environments
Licensing information
- ArcGIS Desktop Basic: Requires Spatial Analyst or 3D Analyst
- ArcGIS Desktop Standard: Requires Spatial Analyst or 3D Analyst
- ArcGIS Desktop Advanced: Requires Spatial Analyst or 3D Analyst