距离分配 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

根据直线距离、成本距离、真实表面距离以及垂直和水平成本系数,计算每个单元到所提供的源的距离分配。

了解有关距离累积工具的工作原理的详细信息

使用情况

  • 输入源数据可以是要素类或栅格。 要素类可以是点、线或面。

  • 当输入源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。 具有 NoData 值的像元不包括在源集内。 值 0 将被视为合法的源。 可使用提取工具创建源栅格。

  • 当输入源数据是要素类时,源位置在执行分析之前从内部转换为栅格。 栅格的分辨率可以由像元大小环境来控制。 默认情况下,如果未在工具中指定任何其他栅格,分辨率将由输入空间参考中输入要素范围的宽度与高度中的较小值除以 250 来确定。

  • 当输入源数据为要素数据时,如果输出像元大小相对于输入中的详细信息较为粗略,则必须注意输出像元大小的处理方式。 内部栅格化过程将使用与要素转栅格工具相同的默认像元分配类型值方法,即像元中心法。 这意味着,不在像元中心的数据将不会包含在中间栅格化源输出中,因此也不会在距离计算中表示出来。 例如,如果源是一系列相对于输出像元大小偏小的面,如建筑物覆盖区,则可能只有一部分面会落入输出栅格像元的中心,从而导致分析中会缺少其他大部分面。

    为避免出现这种情况,在中间步骤,您可以使用要素转栅格工具直接将输入要素栅格化并设置字段参数。 然后将生成的输出用作希望使用的特定距离工具的输入。 或者,您可以选择一个小的像元大小以从输入要素中捕获适当量的详细信息。

  • 障碍是必须绕过的障碍物。 可以通过两种方式对其进行定义。

    对于输入栅格或要素障碍参数,障碍可以由具有有效值的像元或由转换为栅格的要素数据表示。 如果障碍仅由对角像元连接,则将加厚障碍以使其具有不可透性。

    障碍也由以下输入中 NoData 像元所在的位置定义:输入成本栅格输入表面栅格输入垂直栅格输入水平栅格。 如果 NoData 仅由对角像元连接,则将用其他 NoData 像元对其进行加厚,使其成为不可透性障碍。

  • 如果输入表面栅格值具有垂直坐标系 (VCS),则将表面栅格的值视为以 VCS 为单位。 如果输入表面栅格值不具有 VCS,并且已投影数据,则将表面值视为以空间参考为线性单位。 如果输入表面栅格值不具有 VCS,并且未投影数据,则将表面值视为以米为单位。 最终的距离累积结果以每线性单位的成本为单位,或如果不引入成本,则以线性单位为单位。

  • 如果源位于任意对应的输入栅格中的 NoData 上,则在分析中会将其忽略,因此,不会计算距该源的距离。

  • 垂直系数修饰属性的默认值如下:

    Keyword                   Zero    Low    High   Slope  Power  Cos    Sec
                              factor  cut    cut                  power  power
                                      angle  angle                             
    ------------------------  ------  -----  -----  -----  -----  -----  -----
    Binary                    1.0     -30    30     ~      ~      ~      ~
    Linear                    1.0     -90    90      1/90  ~      ~      ~
    Symmetric linear          1.0     -90    90      1/90  ~      ~      ~
    Inverse linear            1.0     -45    45     -1/45  ~      ~      ~
    Symmetric inverse linear  1.0     -45    45     -1/45  ~      ~      ~
    Cos                       ~       -90    90     ~      1.0    ~      ~
    Sec                       ~       -90    90     ~      1.0    ~      ~
    Cos_sec                   ~       -90    90     ~      ~      1.0    1.0
    Sec_cos                   ~       -90    90     ~      ~      1.0    1.0
    Hiking time               ~       -70    70     ~      ~      ~      ~
    Bidirectional hiking time ~       -70    70     ~      ~      ~      ~
  • 坡向工具的输出可以用作输入水平栅格参数的输入。

  • 水平系数修饰属性的默认值如下:

    Keywords         Zero factor   Cut angle     Slope   Side value
    --------------   -----------   -----------   -----   ---------
    Binary           1.0            45           ~       ~
    Forward          0.5            45 (fixed)   ~       1.0
    Linear           0.5           181            1/90   ~
    Inverse linear   2.0           180           -1/90   ~
  • 源的特征或与源之间的通信可由特定参数进行控制。

    • 初始累积用于在移动开始之前设置初始成本。
    • 最大累积用于设置源在到达极限前可累积多少成本。
    • 成本乘数用于指定出行模式或源的量级。
    • 行驶方向可确定移动是否从源开始并移动至非源位置,或从非源位置移动回源。

  • 如果使用字段指定任一源特征参数,则根据给定源数据字段的信息,源特征将应用于各个源。 当给定关键字或常量值,将应用于所有源。

  • 如果指定了初始累积,则输出成本距离表面上的源位置将设置为初始累积值;否则,输出成本距离表面上的源位置将设置为零。

  • 如果未指定范围环境设置,则通过以下方式确定处理范围:

    如果仅指定了输入栅格或要素源输入栅格或要素障碍值,则将输入的并集(每侧扩展两个像元宽度)用作处理范围。 输出栅格扩展两行和两列的原因是,如此会使得输出用于最佳路径为线最佳路径为栅格,生成的路径可以绕障碍移动。 要将范围用作隐式障碍,必须在环境设置中显式设置范围值。

    如果指定,处理范围将是输入表面栅格输入成本栅格输入垂直栅格输入水平栅格的交集。

  • 分析掩膜环境可以设置为要素或栅格数据集。 如果掩膜为要素,它将被转换为栅格。 具有值的像元定义了位于掩膜区域内的位置。 NoData 像元定义了位于掩膜区域外的位置,并将被视为障碍

  • 如果未指定像元大小捕捉栅格环境设置,并且指定了多个栅格作为输入,则像元大小捕捉栅格环境将根据优先顺序进行设置:输入成本栅格输入表面栅格输入垂直栅格输入水平栅格输入栅格或要素源输入栅格或要素障碍

  • 该工具支持并行处理。 如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。 使用 Spatial Analyst 进行并行处理帮助主题提供了有关此功能及其配置方法的详细信息。

    使用并行处理时,将写入临时数据以管理正在处理的数据区段。 默认的临时文件夹位置在您的本地 C: 驱动器上。 您可以通过设置名为 TempFolders 的系统环境变量并指定要使用的文件夹路径(例如,E:\RasterCache),来控制此文件夹的位置。 如果您具有计算机管理权限,还可以使用注册表键(例如,[HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster])。

    默认情况下,此工具将使用可用核数的 50%。 如果输入数据大小小于 5,000 * 5,000 像元,则会使用更少的核。 您可以控制该工具用于并行处理因子环境的内核数。

  • 当输出栅格格式为 .crf 时,此工具支持金字塔栅格存储环境。 默认情况下,将在输出中创建金字塔。 对于任何其他输出格式,不支持此环境,并且不会创建金字塔。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

标注说明数据类型
输入栅格或要素源

输入源位置。

此为栅格或要素(点、线或面),用于标识在计算每个输出像元位置的最小累积成本距离时将使用的像元或位置。

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

Raster Layer; Feature Layer
输入栅格和要素障碍
(可选)

定义障碍的数据集。

可通过整型栅格或浮点型栅格,或通过点、线或面要素来定义障碍。

对于栅格障碍,该障碍必须具有有效值(包括零),并且非障碍区域必须为 NoData。

Raster Layer; Feature Layer
输入表面栅格
(可选)

定义每个像元位置的高程值的栅格。

这些值用于计算经过两个像元时所涉及的实际表面距离。

Raster Layer
输入成本栅格
(可选)

定义以平面测量的经过每个像元所需的阻抗或成本。

每个像元位置上的值表示经过像元时移动每单位距离所需的成本。 每个像元位置值乘以像元分辨率,同时也会补偿对角线移动来获取经过像元的总成本。

成本栅格的值可以是整型或浮点型,但不可以为负值或零(不存在负成本或零成本)。

Raster Layer
输入垂直栅格
(可选)

定义每个像元位置的 z 值的栅格。

这些 z 值用于计算坡度,而坡度用于标识在不同的像元之间移动时产生的垂直系数。

Raster Layer
垂直系数
(可选)

指定垂直成本系数和垂直相对移动角度 (VRMA) 之间的关系。

有若干个带有修饰属性的系数可用于标识定义的垂直系数图。 此外,可使用表格来创建自定义图表。 这些图表用于标识在计算移动到相邻像元的总成本时的垂直系数。

在下面的描述中,将使用两个英文首字母缩写词:VF 表示垂直系数,用于定义从一个像元移至下一像元时所遇到的垂直阻力;VRMA 表示垂直相对移动角度,用于定义“起始”像元或处理像元与“终止”像元之间的坡度角度。

垂直系数选项如下:

  • 二进制 - 如果 VRMA 大于交角的下限且小于交角的上限,则将 VF 设置为与零系数相关联的值;否则为无穷大。
  • 线性 - VF 是 VRMA 的线性函数。
  • 对称线性 - 无论在 VRMA 正侧还是负侧,VF 均为 VRMA 的线性函数,并且这两个线性函数关于 VF (y) 轴对称。
  • 逆线性 - VF 是 VRMA 的逆线性函数。
  • 对称逆线性 - 无论在 VRMA 正侧还是负侧,VF 均为 VRMA 的逆线性函数,并且这两个线性函数关于 VF (y) 轴对称。
  • Cos - VF 为 VRMA 的余弦函数。
  • Sec - VF 为 VRMA 的正割函数。
  • Cos-Sec - 当 VRMA 为负时,VF 为 VRMA 的余弦函数;当 VRMA 为非负时,VF 为 VRMA 的正割函数。
  • Sec-Cos - 当 VRMA 为负时,VF 为 VRMA 的正割函数;当 VRMA 为非负时,VF 为 VRMA 的余弦函数。
  • 徒步时间 - VF 是 VRMA 的徒步时间功能。
  • 双向远足时间 - VF 是 VRMA 的双向修改远足时间函数。
  • - 将用于定义垂直系数图(确定 VF)的表文件。

垂直关键字的修饰属性如下:

  • 零系数 - VRMA 为零时要使用的垂直系数。 该系数可确定指定函数的 y 截距。 按照定义,零系数对于任意三角垂直函数(COS、SEC、COS-SEC 或 SEC-COS)都不适用。 y 截距由以上函数定义。
  • 交角下限 - 一个 VRMA 角度,小于该角度时 VF 将被设置为无穷大。
  • 交角上限 - 一个 VRMA 角度,大于该角度时 VF 将被设置为无穷大。
  • 坡度 - 与线性逆线性垂直系数关键字相结合使用的直线坡度。 斜率被指定为垂直增量与水平增量的比值(例如,45 百分比斜率是 1/45,以 0.02222 的方式输入)。
  • 表名 - 定义 VF 的表名称。
Vertical Factor
输入水平栅格
(可选)

定义每个像元的水平方向的栅格。

在栅格上的这些值必须是整数,以北纬 0 度(或朝向屏幕顶部)为起始值,范围为 0 至 360,顺时针增加。 平坦区域应赋值为 -1。 每个位置上的值与水平系数参数结合使用,用来确定在相邻像元之间移动时产生的水平成本。

Raster Layer
水平系数
(可选)

指定水平成本系数和水平相对移动角度 (HRMA) 之间的关系。

有若干个带有修饰属性的系数可用于标识定义的水平系数图。 此外,可使用表格来创建自定义图表。 这些图表用于标识在计算移动到相邻像元的总成本时的水平系数。

在下面的描述中,将使用两个英文首字母缩写词:HF 表示水平系数,用于定义从一个像元移动到下一像元时所遇到的水平阻力;HRMA 表示水平相对移动角度,用于定义像元的水平方向与移动方向之间的角度。

水平系数选项如下:

  • 二进制 - 如果 HRMA 小于交角,则将 HF 设置为与零系数相关联的值;否则为无穷大。
  • 前向 - 只允许向前的移动。 HRMA 必须大于等于 0 度且小于 90 度 (0 <= HRMA < 90)。 如果 HRMA 大于 0 度且小于 45 度,则将像元的 HF 设置为与零系数相关联的值。 如果 HRMA 大于等于 45 度,则使用边值修饰属性值。 对于 HRMA 等于或大于 90 度的任何情况,均将 HF 设置为无穷大。
  • 线性 - HF 是 HRMA 的线性函数。
  • 逆线性 - HF 是 HRMA 的逆线性函数。
  • - 将用于定义水平系数图(以确定 HF)的表文件。

水平系数的修饰属性如下:

  • 零系数 - HRMA 为零时要使用的水平系数。 该系数可确定任意水平系数函数的 y 截距。
  • 交角 - 一个 HRMA 角度,大于该角度时 HF 将被设置为无穷大。
  • 坡度 - 与线性逆线性水平系数关键字相结合使用的直线坡度。 斜率被指定为垂直增量与水平增量的比值(例如,45 百分比斜率是 1/45,以 0.02222 的方式输入)。
  • 边值 - 在指定了前向水平系数关键字的情况下,HRMA 大于或等于 45 度且小于 90 度时的 HF。
  • 表名 - 定义 HF 的表名称。
Horizontal Factor
输出距离累积栅格
(可选)

输出距离栅格。

距离累积栅格包含每个像元距最小成本源的累积距离。

Raster Dataset
输出反向栅格
(可选)

反向栅格中包含以度为单位的计算方向。 该方向可用于识别沿最短路径返回最近源同时避开障碍的下一像元。

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

输出栅格为浮点类型。

Raster Dataset
输出源方向栅格
(可选)

源方向栅格将最小积累成本源像元的方向标识为方位角(以度为单位)。

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

输出栅格为浮点类型。

Raster Dataset
输出源位置栅格
(可选)

源位置栅格为多波段输出。 第一个波段包含行索引,第二个波段包含列索引。 这些索引用于标识相距最小积累成本距离的源像元的位置。

Raster Dataset
源字段
(可选)

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

Field
初始累积
(可选)

开始进行成本计算的初始累积成本。

适用于与源相关的固定成本规范。 成本算法将从通过初始累积设置的值开始,而非从零成本开始。

值必须大于等于零。 默认值为 0。

Double; Field
最大累积
(可选)

源的旅行者的最大累积。

每个源的成本计算将在达到指定累积后停止。

值必须大于零。 默认累积为到输出栅格边的边。

Double; Field
要应用于成本的乘数
(可选)

要应用于成本值的乘数。

可将其用于控制源的出行或放大模式。 乘数越大,在每个像元间移动的成本将越大。

值必须大于零。 默认值为 1。

Double; Field
行驶方向
(可选)

当应用水平和垂直系数时,指定旅行者的方向。

如果选择字符串选项,您可以选择将应用于所有源的“从”和“到”选项。

如果您选择字段选项,您可以选择可确定各个源使用方向的来自源数据的字段。 字段必须包含文本字符串 FROM_SOURCETO_SOURCE

  • 行驶来自源水平系数和垂直系数将应用于从输入源开始并行驶至非源像元的情况。 这是默认设置。
  • 行驶到源水平系数和垂直系数将应用于从每个非源像元开始并行驶回输入源的情况。
String; Field
距离法
(可选)

指定是否使用平面(平地)或测地线(椭球)方法计算距离。

  • 平面将使用 2D 笛卡尔坐标系对投影平面执行距离计算。 这是默认设置。
  • 测地线距离计算将在椭圆体上执行。 无论输入或输出投影,结果均不会改变。
String

返回值

标注说明数据类型
输出距离分配栅格

输出距离分配栅格。

Raster

DistanceAllocation(in_source_data, {in_barrier_data}, {in_surface_raster}, {in_cost_raster}, {in_vertical_raster}, {vertical_factor}, {in_horizontal_raster}, {horizontal_factor}, {out_distance_accumulation_raster}, {out_back_direction_raster}, {out_source_direction_raster}, {out_source_location_raster}, {source_field}, {source_initial_accumulation}, {source_maximum_accumulation}, {source_cost_multiplier}, {source_direction}, {distance_method})
名称说明数据类型
in_source_data

输入源位置。

此为栅格或要素(点、线或面),用于标识在计算每个输出像元位置的最小累积成本距离时将使用的像元或位置。

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

Raster Layer; Feature Layer
in_barrier_data
(可选)

定义障碍的数据集。

可通过整型栅格或浮点型栅格,或通过点、线或面要素来定义障碍。

对于栅格障碍,该障碍必须具有有效值(包括零),并且非障碍区域必须为 NoData。

Raster Layer; Feature Layer
in_surface_raster
(可选)

定义每个像元位置的高程值的栅格。

这些值用于计算经过两个像元时所涉及的实际表面距离。

Raster Layer
in_cost_raster
(可选)

定义以平面测量的经过每个像元所需的阻抗或成本。

每个像元位置上的值表示经过像元时移动每单位距离所需的成本。 每个像元位置值乘以像元分辨率,同时也会补偿对角线移动来获取经过像元的总成本。

成本栅格的值可以是整型或浮点型,但不可以为负值或零(不存在负成本或零成本)。

Raster Layer
in_vertical_raster
(可选)

定义每个像元位置的 z 值的栅格。

这些 z 值用于计算坡度,而坡度用于标识在不同的像元之间移动时产生的垂直系数。

Raster Layer
vertical_factor
(可选)

Vertical factor 对象定义垂直成本系数和垂直相对移动角度 (VRMA) 之间的关系。

有若干个带有修饰属性的系数可用于标识定义的垂直系数图。 此外,可使用表格来创建自定义图表。 这些图表用于标识在计算移动到相邻像元的总成本时的垂直系数。

在下面的描述中,将使用两个英文首字母缩写词:VF 表示垂直系数,用于定义从一个像元移至下一像元时所遇到的垂直阻力;VRMA 表示垂直相对移动角度,用于定义“起始”像元或处理像元与“终止”像元之间的坡度角度。

对象的形式如下:

以上各种形式对象的定义及参数如下:

  • VfBinary({zeroFactor}, {lowCutAngle}, {highCutAngle})

    如果 VRMA 大于交角的下限且小于交角的上限,则将 VF 设置为与零系数相关联的值;否则为无穷大。

  • VfLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    VF 是 VRMA 的线性函数。

  • VfInverseLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    VF 是 VRMA 的逆线性函数。

  • VfSymLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    无论在 VRMA 正侧还是负侧,VF 均为 VRMA 的线性函数,并且这两个线性函数关于 VF (y) 轴对称。

  • VfSymInverseLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    无论在 VRMA 正侧还是负侧,VF 均为 VRMA 的逆线性函数,并且这两个线性函数关于 VF (y) 轴对称。

  • VfCos({lowCutAngle}, {highCutAngle}, {cosPower})

    VF 为 VRMA 的余弦函数。

  • VfSec({lowCutAngle}, {highCutAngle}, {secPower})

    VF 为 VRMA 的正割函数。

  • VfCosSec({lowCutAngle}, {highCutAngle}, {cosPower}, {secPower})

    当 VRMA 为负时,VF 为 VRMA 的余弦函数;当 VRMA 为非负时,VF 为 VRMA 的正割函数。

  • VfSecCos({lowCutAngle}, {highCutAngle}, {secPower}, {cos_power})

    当 VRMA 为负时,VF 为 VRMA 的正割函数;当 VRMA 为非负时,VF 为 VRMA 的余弦函数。

  • VfHikingTime({lowCutAngle}, {highCutAngle})

    VF 是 VRMA 的徒步时间功能。

  • VfBidirHikingTime({lowCutAngle}, {highCutAngle})

    VF 是 VRMA 的双向修改远足时间函数。

  • VfTable(inTable)

    将用于定义垂直系数图(确定 VF)的表文件。

垂直参数的修饰属性为:

  • zeroFactor - VRMA 为零时要使用的垂直系数。 该系数可确定指定函数的 y 截距。 按照定义,零系数对于任意三角垂直函数(Cos、Sec、Cos-Sec 或 Sec-Cos)都不适用。 y 截距由以上函数定义。
  • lowCutAngle - VRMA 角度,小于该角度时会将 VF 设置为无穷大。
  • highCutAngle - VRMA 角度,大于该角度时会将 VF 设置为无穷大。
  • slope - 与 VfLinearVfInverseLinear 参数相结合使用的直线坡度。 斜率被指定为垂直增量与水平增量的比值(例如,45 百分比斜率是 1/45,以 0.02222 的方式输入)。
  • inTable - 定义 VF 的表名称。
Vertical Factor
in_horizontal_raster
(可选)

定义每个像元的水平方向的栅格。

在栅格上的这些值必须是整数,以北纬 0 度(或朝向屏幕顶部)为起始值,范围为 0 至 360,顺时针增加。 平坦区域应赋值为 -1。 每个位置上的值与 horizontal_factor 参数结合使用,用来确定在相邻像元之间移动时产生的水平成本。

Raster Layer
horizontal_factor
(可选)

Horizontal Factor 对象用于定义水平成本系数与水平相对移动角度之间的关系。

有若干个带有修饰属性的系数可用于标识定义的水平系数图。 此外,可使用表格来创建自定义图表。 这些图表用于标识在计算移动到相邻像元的总成本时的水平系数。

在下面的描述中,将使用两个英文首字母缩写词:HF 表示水平系数,用于定义从一个像元移动到下一像元时所遇到的水平阻力;HRMA 表示水平相对移动角度,用于定义像元的水平方向与移动方向之间的角度。

对象的形式如下:

以上各种形式对象的定义及参数如下:

  • HfBinary({zeroFactor}, {cutAngle})

    如果 HRMA 小于交角,则将 HF 设置为与零系数相关联的值;否则为无穷大。

  • HfForward({zeroFactor}, {sideValue})

    只允许向前的移动。 HRMA 必须大于等于 0 度且小于 90 度 (0 <= HRMA < 90)。 如果 HRMA 大于 0 度且小于 45 度,则将像元的 HF 设置为与零系数相关联的值。 如果 HRMA 大于等于 45 度,则使用边值修饰属性值。 对于 HRMA 等于或大于 90 度的任何情况,均将 HF 设置为无穷大。

  • HfLinear({zeroFactor}, {cutAngle}, {slope})

    HF 是 HRMA 的线性函数。

  • HfInverseLinear({zeroFactor}, {cutAngle}, {slope})

    HF 是 HRMA 的逆线性函数。

  • HfTable(inTable)

    将用于定义水平系数图(以确定 HF)的表文件。

水平关键字的修饰属性为:

  • zeroFactor - HRMA 为 0 时的水平系数。 该系数可确定任意水平系数函数的 y 截距。
  • cutAngle - HRMA 角度,HRMA 大于该角度时会将 HF 设置为无穷大。
  • slope - 与 HfLinearHfInverseLinear 水平系数关键字相结合使用的直线坡度。 斜率被指定为垂直增量与水平增量的比值(例如,45 百分比斜率是 1/45,以 0.02222 的方式输入)。
  • sideValue - 在指定了 HfForward 水平系数关键字的情况下,HRMA 大于或等于 45 度且小于 90 度时的 HF。
  • inTable - 定义 HF 的表名称。

Horizontal Factor
out_distance_accumulation_raster
(可选)

输出距离栅格。

距离累积栅格包含每个像元距最小成本源的累积距离。

Raster Dataset
out_back_direction_raster
(可选)

反向栅格中包含以度为单位的计算方向。 该方向可用于识别沿最短路径返回最近源同时避开障碍的下一像元。

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

输出栅格为浮点类型。

Raster Dataset
out_source_direction_raster
(可选)

源方向栅格将最小积累成本源像元的方向标识为方位角(以度为单位)。

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

输出栅格为浮点类型。

Raster Dataset
out_source_location_raster
(可选)

源位置栅格为多波段输出。 第一个波段包含行索引,第二个波段包含列索引。 这些索引用于标识相距最小积累成本距离的源像元的位置。

Raster Dataset
source_field
(可选)

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

Field
source_initial_accumulation
(可选)

开始进行成本计算的初始累积成本。

适用于与源相关的固定成本规范。 成本算法将从通过 source_initial_accumulation 设置的值开始,而非从零成本开始。

值必须大于等于零。 默认值为 0。

Double; Field
source_maximum_accumulation
(可选)

源的旅行者的最大累积。

每个源的成本计算将在达到指定累积后停止。

值必须大于零。 默认累积为到输出栅格边的边。

Double; Field
source_cost_multiplier
(可选)

要应用于成本值的乘数。

可将其用于控制源的出行或放大模式。 乘数越大,在每个像元间移动的成本将越大。

值必须大于零。 默认值为 1。

Double; Field
source_direction
(可选)

当应用水平和垂直系数时,指定旅行者的方向。

  • FROM_SOURCE水平系数和垂直系数将应用于从输入源开始并行驶至非源像元的情况。 这是默认设置。
  • TO_SOURCE水平系数和垂直系数将应用于从每个非源像元开始并行驶回输入源的情况。

指定将应用于所有源的 FROM_SOURCETO_SOURCE 关键字,或指定包含用于确定各个源行驶方向关键字的源数据字段。 该字段必须包含字符串 FROM_SOURCETO_SOURCE

String; Field
distance_method
(可选)

指定是否使用平面(平地)或测地线(椭球)方法计算距离。

  • PLANAR将使用 2D 笛卡尔坐标系对投影平面执行距离计算。 这是默认设置。
  • GEODESIC距离计算将在椭圆体上执行。 无论输入或输出投影,结果均不会改变。
String

返回值

名称说明数据类型
out_distance_allocation_raster

输出距离分配栅格。

Raster

代码示例

DistanceAllocation 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 DistanceAllocation 工具。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outDistAlloc = DistanceAllocation("insources.shp", "barriers.tif")
outDistAlloc.save("c:/sapyexamples/output/distalloc.tif")
DistanceAllocation 示例 2(独立脚本)

为每个像元计算与最近源相距的最小累积成本距离,同时考虑表面距离以及水平和垂直成本因素。

# Name: DistanceAllocation_Ex_02.py
# Description: Calculates the distance allocation.
# 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
inSources = "insources.shp"
inBarrier = "barriers.tif"

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

# Execute EucDirections
outDistAlloc = DistanceAllocation(inSources, inBarrier)

# Save the output 
outDistAlloc.save("c:/sapyexamples/output/distAllo2.tif")

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题