Skip To Content

Create Normal Raster

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

Create Normal Raster illustration
OutRas = CreateNormalRaster(1, 0 0 4 4)
Note: This output is representative. The actual values will be different each time the tool is executed.

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.

  • The Output cell size parameter can be defined by a numeric value or obtained from an existing raster dataset. If the cell size hasn’t been explicitly specified as the parameter value, it is derived from the Cell Size environment if it has been specified. If the parameter cell size or the environment cell size has not been specified, but the Snap Raster environment has been set, the cell size of the snap raster is used. If nothing is specified, the cell size is 1.

  • If the cell size is specified using a numeric value, the tool will use it directly for the output raster.

    If the cell size is specified using a raster dataset, the parameter will show the path of the raster dataset instead of the cell size value. The cell size of that raster dataset will be used directly in the analysis, provided the spatial reference of the dataset is the same as the output spatial reference. If the spatial reference of the dataset is different than the output spatial reference, it will be projected based on the selected Cell Size Projection Method.

  • Since the tool does not have any input, the output spatial reference is derived from other settings in a particular order. First, the Output Coordinate System environment will be used, if specified, followed by the coordinate system of the map view. If neither of these conditions are met, the output spatial reference will be set to Unknown.

  • Based on the cell size, the default output extent is computed to create a raster of 250 rows and 250 columns. Thus, for the default cell size of 1, the Output extent is (0, 0, 250, 250). The extent value is adjusted based on the Cell Size, Snap Raster, and Output Coordinate System environments, if specified.

  • See Analysis environments and Spatial Analyst for additional details on the geoprocessing environments that apply to this tool.

Syntax

CreateNormalRaster({cell_size}, {extent})
ParameterExplanationData Type
cell_size
(Optional)

The cell size of the output raster that will be created.

This parameter can be defined by a numeric value or obtained from an existing raster dataset. If the cell size hasn't been explicitly specified as the parameter value, the environment cell size value will be used if specified; otherwise, additional rules will be used to calculate it from the other inputs. See the usage for more detail.

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 Extent(XMin, YMin, XMax, YMax)

  • where XMin and YMin define the lower left coordinate of the extent, and XMax and YMax define the upper right coordinate.

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

NameExplanationData 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)

# Execute CreateNormalRaster
outNormalRaster = CreateNormalRaster(cellSize, extent) 

# Save the output 
outNormalRaster.save("C:/sapyexamples/output/outnormraster")

Licensing information

  • Basic: Requires Spatial Analyst
  • Standard: Requires Spatial Analyst
  • Advanced: Requires Spatial Analyst

Related topics