需要 Spatial Analyst 许可。
描述
基于“分析”窗口的范围和像元大小创建具有正态(高斯)分布随机值的栅格。
插图
使用方法
创建正态栅格工具可为输出栅格中的每个像元生成相应值。
此工具中的输出栅格始终为浮点型。
像元值最高可精确到小数点后 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 日后的秒数)来进行自动播种。对创建随机栅格工具执行种子重新设定将导致创建正态栅格的种子重新设定。
输出像元大小参数可以通过数值进行定义,也可以从现有栅格数据集获取。如果没有将像元大小明确指定为参数值,则将从像元大小环境获取相应值(前提是已指定环境)。如果参数像元大小和环境像元大小均未指定,但已设置了捕捉栅格环境,则将使用捕捉栅格的像元大小。如果未指定任何内容,则像元大小为 1。
如果使用数值指定像元大小,则工具会直接将其用于输出栅格。
如果使用栅格数据集指定像元大小,则该参数将显示栅格数据集的路径而不是像元大小的值。如果数据集的空间参考与输出空间参考相同,则栅格数据集的像元大小将直接用于分析。如果数据集的空间参考与输出空间参考不同,则将基于所选的像元大小投影方法进行投影。
由于该工具未包含任何输入,因此输出空间参考将以特定顺序从其他设置中获取。首先,将使用输出坐标系环境(如果已指定),随后使用地图视图的坐标系。如果上述条件都不满足,则输出空间参考将被设置为“未知”。
系统将根据像元大小计算默认输出范围,以创建由 250 行和 250 列组成的栅格。因此,对于默认值为 1 的像元大小,输出范围为 (0, 0, 250, 250)。该范围值将基于像元大小、捕捉栅格和输出坐标系环境(如果已指定)进行调整。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
CreateNormalRaster({cell_size}, {extent})
参数 | 说明 | 数据类型 |
cell_size (可选) | 将创建的输出栅格的像元大小。 此参数可以通过数值进行定义,也可以从现有栅格数据集获取。如果未将像元大小明确指定为参数值,则将使用环境像元大小值(如果已指定);否则,将使用其他规则通过其他输出计算像元大小。有关详细信息,请参阅用法。 | Analysis Cell Size |
extent (可选) | 输出栅格数据集的范围。 Extent 是一个 Python 类。 在该工具中,其形式为 Extent(XMin, YMin, XMax, YMax)
指定给坐标的地图单位与输出坐标系环境设置的地图单位相同。 如果专门进行设置,则范围将为环境中的值。如果未进行专门设置,默认值将为 0、0、250、250。 | Extent |
返回值
名称 | 说明 | 数据类型 |
out_raster | 具有平均值为 0.0、标准差为 1.0 的正态分布值的输出栅格。 | Raster |
代码示例
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")
环境
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst