Create Normal Raster (Spatial Analyst)
Summary
Creates a raster of random values with a normal (gaussian) distribution within the extent and cell size of the analysis window.
Illustration
Usage
-
The Create Normal Raster tool generates values for every cell in the output raster.
The output raster from this tool is always floating point.
The cell values will have up to 7 digits of precision after the decimal point.
-
The output values will have a mean of 0.0 and a standard deviation of 1.0. If a different standard deviation is desired, multiply the output raster by that value. If a different mean is desired, add that value to the raster. For example, to create a raster where the values are characterized by a mean of 39 and a standard deviation of 2.5, multiply the results of Create Normal Raster by 2.5, then add 39.
In Map Algebra, you could do something like:
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/data" outNorm = CreateNormalRaster(1, Extent(0, 0, 100, 100)) * 2.5 + 39 outNorm.save("C:/output/norm2")
-
The random number generator is automatically seeded with the current value of the system clock (seconds since January 1, 1970). Reseeding the Create Random Raster tool also reseeds Create Normal Raster.
Syntax
Parameter | Explanation | Data Type |
cell_size (Optional) |
The cell size for the output raster dataset. This is the value in the environment if specifically set. If not specifically set, it is the shorter of the width or height of the environment extent in the output spatial reference, divided by 250. | Analysis Cell Size |
extent (Optional) | The extent for the output raster dataset. The Extent is a Python class. In this tool it is in the form of: Extent(XMin, YMin, XMax, YMax)
The coordinates are specified in the same map units as the in_raster. The extent will be the value in the environment if specifically set. If not specifically set, the default is 0, 0, 250, 250. | Extent |
Return Value
Name | Explanation | Data Type |
out_raster |
The output raster of normally distributed values with a mean of 0.0 and a standard deviation of 1.0. | Raster |
Code Sample
This sample creates an output raster of normally distributed values at the defined cell size and extent.
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outNormalRaster = CreateNormalRaster(2, Extent(0, 0, 150, 150)) outNormalRaster.save("C:/sapyexamples/output/outnormal")
This sample creates an output raster of normally distributed values at the defined cell size and extent.
# Name: CreateNormalRaster_Ex_02.py # Description: Creates a raster of random values from a normal distribution # Requirements: Spatial Analyst Extension # Author: ESRI # Import system modules import arcpy from arcpy import env from arcpy.sa import * # Set environment settings env.workspace = "C:/sapyexamples/data" # Set local variables cellSize = 2 extent = Extent(0, 0, 150, 150) # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute CreateNormalRaster outNormalRaster = CreateNormalRaster(cellSize, extent) # Save the output outNormalRaster.save("C:/sapyexamples/output/outnormraster")