欧氏分配 (空间分析)

摘要

基于欧氏距离计算每个像元的最近源。

了解有关欧氏距离分析的详细信息

插图

Euclidean Allocation illustration
Euc_Alloc = EucAllocation(Source_Ras)

用法

语法

EucAllocation (in_source_data, {maximum_distance}, {in_value_raster}, {cell_size}, {source_field}, {out_distance_raster}, {out_direction_raster})
参数说明数据类型
in_source_data

输入源位置。

此为栅格或要素数据集,用于标识计算每个输出像元位置的欧氏距离所依据的像元或位置。

对于栅格,输入类型可以为整型或浮点型。

如果输入源栅格是浮点型,则必须设置整型的 {in_value_raster}。此类赋值栅格优先于 {source_field} 中的任何设置。

Raster Layer | Feature Layer
maximum_distance
(可选)

定义累积距离值不能超过的阈值。

如果累积的欧氏距离值超过该值,则像元位置的输出值为 NoData。

默认距离是到输出栅格边的距离。

Double
in_value_raster
(可选)

标识应该用于每个输入源位置的区域值的输入整型栅格。

对于每个源位置(像元或要素),由 {in_value_raster} 定义的值将被分配至所有分配到供计算使用的源位置的像元。此类赋值栅格优先于 {source_field} 中的任何设置。

Raster Layer
cell_size
(可选)

要创建的输出栅格的像元大小。

如果已明确设置该像元大小,则为环境中的值。如果未设置为环境中的值,默认像元大小取决于输入源数据是栅格还是要素,具体如下:

  • 如果源是栅格,则输出的像元大小不变。
  • 如果源是要素,则输出像元大小由输入空间参考中输入要素范围的宽度或高度中的较小值除以 250 来确定。

Analysis Cell Size
source_field
(可选)

用于向源位置分配值的字段。该字段必须为整型。

如果已设置 {in_value_raster},则该输入中的值优先于 {source_field} 中的任何设置。

Field
out_distance_raster
(可选)

输出欧氏距离栅格。

此距离栅格标识每个像元至最近源像元、源像元集或源位置的欧氏距离。

输出栅格为浮点型。

Raster Dataset
out_direction_raster
(可选)

输出欧氏方向栅格。

此方向栅格包含计算的方向(以度为单位),每个像元中心都来自最近的源像元中心。

值的范围是 0 度到 360 度,并为源像元保留 0 度。正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方以及 360 是北方)。

输出栅格为整型。

Raster Dataset

返回值

名称说明数据类型
out_allocation_raster

输出欧氏分配栅格。

像元值(区域)标识最近源位置。

输出栅格为整型。

Raster

代码示例

EucAllocation 示例 1(Python 窗口)

以下 Python 窗口脚本演示了 EuclideanAllocation 工具的使用方法。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
eucAllocate = EucAllocation("observers", 50000, "elevation", 25, "FID", 
                            "c:/sapyexamples/output/outeucdist", 
                            "c:/sapyexamples/output/outeucdir")
eucAllocate.save("c:/sapyexamples/output/eucalloc")
EucAllocation 示例 2(独立脚本)

采用欧氏距离计算各个像元的最近源位置区域。

# Name: EucAllocation_Ex_02.py
# Description: Calculates, for each cell, the zone of the closest 
#              source location in Euclidean distance.
# 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
inSource = "observers.shp"
maxDist = 50000
valRaster = "elevation"
cellSize = 25
sourceField = "FID"
optOutDist = "c:/sapyexamples/output/outeucdist02"
optOutDir = "c:/sapyexamples/output/outeucdir02"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute EucAllocation
eucAllocate = EucAllocation(inSource, maxDist, valRaster, cellSize,
                             sourceField, optOutDist, optOutDir)

# Save the output 
eucAllocate.save("c:/sapyexamples/output/eucalloc02")

环境

相关主题

许可信息

ArcView: 需要 Spatial Analyst
ArcEditor: 需要 Spatial Analyst
ArcInfo: 需要 Spatial Analyst

7/10/2012