Available with Spatial Analyst license.
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.
See Analysis environments and Spatial Analyst for additional details on the geoprocessing environments that apply to this tool.
Syntax
CreateNormalRaster ({cell_size}, {extent})
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 Output coordinate system environment setting. 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
CreateNormalRaster example 1 (Python window)
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")
CreateNormalRaster example 2 (stand-alone script)
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
# 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")
Environments
Licensing information
- ArcGIS Desktop Basic: Requires Spatial Analyst
- ArcGIS Desktop Standard: Requires Spatial Analyst
- ArcGIS Desktop Advanced: Requires Spatial Analyst