路径距离分配 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

考虑表面距离以及水平和垂直成本因素的情况下,根据成本面上的最小累积成本计算每个像元的最小成本源。

旧版本:

此工具已弃用,并将从未来的版本中移除。

距离分配工具提供了增强的功能或性能。

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

使用情况

  • “路径距离”工具与“成本距离”工具相比较而言,两者都可以确定距离栅格表面上各位置的源的最小累积行程成本。 然而,通过考虑实际表面距离及其他水平和垂直因素路径距离工具可将更多的复杂因素添加到此分析。

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

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

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

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

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

  • 要计算分配,源位置可以有相关的值,该值是由源字段参数指定的。 如果输入源是整型栅格,则默认字段为 VALUE。 如果输入源是要素,则默认字段为属性表中的第一个整型字段。 如果输入源数据是浮点型栅格,则必须指定整型值栅格参数。

  • 包含 NoData 的像元在“路径距离”工具中充当障碍。 NoData 值后面的像元成本距离通过围绕 NoData 障碍移动所需的累积成本进行计算。 在任意输入栅格上被分配 NoData 的任何像元位置都会在所有输出栅格上接收到 NoData。

  • 如果输入源数据与成本栅格数据的范围不同,则默认的输出范围是两者的交集。 要获取全部范围的成本距离面,请在输出范围环境设置中选择输入的并集选项。

  • 坡向工具的输出可以用作输入水平栅格参数的输入。

  • 最大距离参数值以与成本栅格相同的成本单位指定。

  • 对于输出距离栅格,距离至一组源位置的像元的最小成本距离(或最小累积成本距离)是从该像元至全部源位置的最小成本距离范围的下限。

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

    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   ~
  • 垂直系数修饰属性的默认值如下:

    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     ~      ~      ~      ~
  • 源的特征或与源之间的通信可由特定参数进行控制。 源成本倍数参数可指定行程模式或源的量级,源开始成本设置移动开始前的开始成本,源阻力比率是一种关于累计成本影响的动态调整,例如,模拟徒步者会有多么疲劳,源容量设置源在到达极限前可同化多少成本。 行驶方向可确定移动是否从源开始并移动至非源位置,或从非源位置移动回源。

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

  • 如果指定了源开始成本参数值,并且行驶方向设置为从源行驶,则输出成本距离表面上的源位置将被设置为源开始成本值;否则,输出成本距离表面上的源位置将被设置为零。

  • 该工具支持并行处理。 如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。 使用 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
输入成本栅格
(可选)

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

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

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

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

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

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

Raster Layer
输入水平栅格
(可选)

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

在栅格上的这些值必须是整数,以北纬 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
输入垂直栅格
(可选)

定义每个像元位置的 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
最大距离
(可选)

累积成本值不能超过的阈值。

如果累积的成本距离值超过该值,则像元位置的输出值为 NoData。 最大距离为计算累积成本距离适用的范围。

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

Double
输入赋值栅格
(可选)

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

对于每个源位置(像元或要素),此值将被分配给所有分配到源位置供计算使用的像元。 此类赋值栅格将优先于源字段参数设置。

Raster Layer
源字段
(可选)

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

如果已设置输入赋值栅格参数,则该输入中的值将优先于此参数设置。

Field
输出距离栅格
(可选)

输出路径距离栅格。

此输出路径距离栅格标识每个像元到标识的源位置在成本表面上的最低累积成本距离,同时会考虑表面距离以及水平和垂直表面系数。

源可以是一个像元、一组像元或者一个或多个要素位置。

输出栅格为浮点型。

Raster Dataset
输出回溯链接栅格
(可选)

输出成本回溯链接栅格。

回溯链接栅格包含从 0 到 8 的值,这些值用于定义方向或从某像元开始沿最小累积成本路径标识下一个邻近像元(接续像元),以达到最小成本源,同时会考虑表面距离以及水平和垂直表面系数。

如果该路径穿过右侧的相邻像元,则为像元分配值 1、2 来与右下角像元相对应,并按顺时针方向依此类推。 值 0 留供源像元使用。

回溯链接位置
Raster Dataset
要应用于成本的乘数
(可选)

要应用于成本值的乘数。

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

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

Double; Field
起始成本
(可选)

用于开始计算成本的起始成本。

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

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

Double; Field
累积成本阻力比率
(可选)

此参数将模拟累积成本增加时所耗费成本的增加情况。 用于为旅行者的疲劳程度建模。 利用到达某个像元的累积成本的增长量乘以阻力比率,再加上移动至下一个像元的成本。

这是修改后版本的用于计算移动经过像元的显性成本混合利率公式。 随着阻力比率的值增加,之后访问的像元成本也随之增加。 阻力比率越大,到达下一个像元需要加的附加成本也越多,将针对每个后续移动进行复合。 由于阻力比率与复利率相似且累积成本值通常会很大,因此建议采用较小的阻力比率,如 0.02、0.005 或更小,具体取决于累积成本值。

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

Double; Field
容量
(可选)

源的行驶者的成本容量。

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

值必须大于零。 默认容量是到输出栅格边的容量。

Double; Field
行驶方向
(可选)

应用水平系数、垂直系数和源阻力比率时,指定旅行者的方向。

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

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

  • 从源行驶水平系数、垂直系数和源阻力比率将应用于从输入源开始并行驶至非源像元的情况。 这是默认设置。
  • 行驶至源水平系数、垂直系数和源阻力比率将应用于从每个非源像元开始并行驶回输入源的情况。
String; Field

返回值

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

输出路径距离分配栅格。

此栅格识别花费最小累积成本可到达的每个源位置(像元或要素)的区域,同时考虑表面距离以及水平和垂直成本因素。

输出栅格为整型。

Raster

PathAllocation(in_source_data, {in_cost_raster}, {in_surface_raster}, {in_horizontal_raster}, {horizontal_factor}, {in_vertical_raster}, {vertical_factor}, {maximum_distance}, {in_value_raster}, {source_field}, {out_distance_raster}, {out_backlink_raster}, {source_cost_multiplier}, {source_start_cost}, {source_resistance_rate}, {source_capacity}, {source_direction})
名称说明数据类型
in_source_data

输入源位置。

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

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

如果输入源栅格是浮点型,则必须将 in_value_raster 参数设置为整型。 此类赋值栅格将优先于 source_field 参数设置。

Raster Layer; Feature Layer
in_cost_raster
(可选)

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

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

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

Raster Layer
in_surface_raster
(可选)

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

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

Raster Layer
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
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
maximum_distance
(可选)

累积成本值不能超过的阈值。

如果累积的成本距离值超过该值,则像元位置的输出值为 NoData。 最大距离为计算累积成本距离适用的范围。

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

Double
in_value_raster
(可选)

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

对于每个源位置(像元或要素),此值将被分配给所有分配到源位置供计算使用的像元。 此类赋值栅格将优先于 source_field 参数设置。

Raster Layer
source_field
(可选)

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

如果已设置 in_value_raster 参数,则该输入中的值将优先于此参数设置。

Field
out_distance_raster
(可选)

输出路径距离栅格。

此输出路径距离栅格标识每个像元到标识的源位置在成本表面上的最低累积成本距离,同时会考虑表面距离以及水平和垂直表面系数。

源可以是一个像元、一组像元或者一个或多个要素位置。

输出栅格为浮点型。

Raster Dataset
out_backlink_raster
(可选)

输出成本回溯链接栅格。

回溯链接栅格包含从 0 到 8 的值,这些值用于定义方向或从某像元开始沿最小累积成本路径标识下一个邻近像元(接续像元),以达到最小成本源,同时会考虑表面距离以及水平和垂直表面系数。

如果该路径穿过右侧的相邻像元,则为像元分配值 1、2 来与右下角像元相对应,并按顺时针方向依此类推。 值 0 留供源像元使用。

回溯链接位置
Raster Dataset
source_cost_multiplier
(可选)

要应用于成本值的乘数。

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

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

Double; Field
source_start_cost
(可选)

用于开始计算成本的起始成本。

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

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

Double; Field
source_resistance_rate
(可选)

此参数将模拟累积成本增加时所耗费成本的增加情况。 用于为旅行者的疲劳程度建模。 利用到达某个像元的累积成本的增长量乘以阻力比率,再加上移动至下一个像元的成本。

这是修改后版本的用于计算移动经过像元的显性成本混合利率公式。 随着阻力比率的值增加,之后访问的像元成本也随之增加。 阻力比率越大,到达下一个像元需要加的附加成本也越多,将针对每个后续移动进行复合。 由于阻力比率与复利率相似且累积成本值通常会很大,因此建议采用较小的阻力比率,如 0.02、0.005 或更小,具体取决于累积成本值。

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

Double; Field
source_capacity
(可选)

源的行驶者的成本容量。

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

值必须大于零。 默认容量是到输出栅格边的容量。

Double; Field
source_direction
(可选)

应用水平系数、垂直系数和源阻力比率时,指定旅行者的方向。

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

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

String; Field

返回值

名称说明数据类型
out_allocation_raster

输出路径距离分配栅格。

此栅格识别花费最小累积成本可到达的每个源位置(像元或要素)的区域,同时考虑表面距离以及水平和垂直成本因素。

输出栅格为整型。

Raster

代码示例

PathAllocation 示例 1(Python 窗口)

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
pathAlloc = PathAllocation("observers.shp", "costraster", "elevation", "hfraster",
                            HfForward(0.5, 1.0), "elevation", VfBinary(1.0, -30, 30),  
                            "", "valueraster", "FID", "c:/sapyexamples/output/optpathdist", 
                            "c:/sapyexamples/output/optpathbl", "Multiplier", "StartCost", "Resistance", 500000)
pathAlloc.save("c:/sapyexamples/output/allocpath")
PathAllocation 示例 2(独立脚本)

考虑表面距离以及水平和垂直成本因素的情况下,根据成本面上的最小累积成本计算每个像元的最近源。

# Name: PathAllocation_Ex_02.py
# Description: Calculates, for each cell, its nearest source based 
#              on the least accumulative cost over a cost surface, 
#              while accounting for surface distance and horizontal 
#              and vertical cost factors. 
# 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"
costRast = "costraster"
surfaceRast = "elevation"

# The horizontal factor
inHoriz = "backlink2"
# Create the HfForward Object
zeroFactor = 0.5
sideValue = 1.0
myHorizFactor = HfForward(zeroFactor, sideValue)

#The vertical factor
inVertical = "focalcost.tif"
# Create the VfBinary Object
zeroFactor = 1.0
lowCutAngle = -30
highCutAngle = 30
myVerticalFactor = VfBinary(zeroFactor, lowCutAngle, highCutAngle)

maxDist = 25000
valRaster = "eucdirout"
sourceField = "FID"
optPathDistOut = "c:/sapyexamples/output/optdistpath"
optPathBLOut = "c:/sapyexamples/output/pathblinkout"

# Execute PathAllocation
pathAlloc = PathAllocation(inSource, costRast, surfaceRast, 
                           inHoriz, myHorizFactor, inVertical, myVerticalFactor, 
                           maxDist, valRaster, sourceField, 
                           optPathDistOut, optPathBLOut)

# Save the output 
pathAlloc.save("c:/sapyexamples/output/allocpath02")

许可信息

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

相关主题