摘要
基于“分析”窗口的范围和像元大小创建具有正态(高斯)分布随机值的栅格。
插图
用法
· 创建正态栅格工具可为输出栅格中的每个像元生成相应值。
· 此工具中的输出栅格始终为浮点型。
· 像元值最高可精确到小数点后 7 位数。
· 输出值的平均值为 0.0,标准差为 1.0。如果希望输出栅格具有其他标准差,则可将它乘以该值。如果希望栅格具有其他平均值,则可该值与其相加。例如,要创建具有平均值为 39、标准差为 2.5 这种值特征的栅格,可以将创建正态栅格的结果乘以 2.5,然后加上 39。
· 在“地图代数”中,您可以执行如下操作:
· 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")
· 随机数生成器会使用系统时钟的当前值(自 1970 年 1 月 1 日后的秒数)来进行自动播种。对创建随机栅格工具执行种子重新设定将导致创建正态栅格的种子重新设定。
代码实例
CreateNormalRaster 示例 1(Python 窗口)
本例将基于定义的像元大小和范围创建具有正态分布值的输出栅格。
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 示例 2(独立脚本)
本例将基于定义的像元大小和范围创建具有正态分布值的输出栅格。
# 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")