距离分配函数

需要 Spatial Analyst 许可。

概览

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

这是一个全局栅格函数。

注释

如果您具有源要素,则可以先使用栅格化要素函数将其转换为栅格数据集。 将一致的输入用于该函数的栅格输入。 这将确保使用相同的像元大小、范围和空间参考将这些要素正确转换为栅格数据集。

源栅格中存在的 NoData 值不会被作为函数的有效值的一部分。 值 0 将被视为源栅格中的合法值。 源栅格可使用提取工具裁剪函数进行创建。

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

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

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

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

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

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

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

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

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

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 个像元,则会使用更少的内核。 您可以控制该工具用于并行处理因子环境的内核数。

参数

参数名称描述

源栅格

(必填)

输入源位置。

此为栅格数据集,用于标识计算每个输出像元位置的最小积累成本距离所依据的像元或位置。

源字段

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

栅格障碍

定义障碍的栅格。

数据集必须包含没有障碍的 NoData。 障碍由有效值(包括零)表示。

可通过整型栅格、浮点型栅格来定义障碍。

表面栅格

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

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

成本栅格

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

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

垂直栅格

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

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

垂直系数

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

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

在下面的说明中,将使用两个英文首字母缩写:VF 和 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 为零时要使用的垂直系数。 该系数可确定指定函数的 y 截距。 按照定义,零系数对于任意三角垂直函数(COS、SEC、COS-SEC 或 SEC-COS)都不适用。 y 截距由以上函数定义。
  • 交角下限 - 定义一个 VRMA 角度,小于该角度时 VF 将被设置为无穷大。
  • 交角上限 - 定义一个 VRMA 角度,大于该角度时 VF 将被设置为无穷大。
  • 斜率 - 与线性逆线性垂直系数关键字相结合使用,确定直线斜率。 斜率被指定为垂直增量与水平增量的比值(例如,45 百分比斜率是 1/45,以 0.02222 的方式输入)。
  • 表名 - 标识定义 VF 的表名称。

水平栅格

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

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

水平系数

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

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

在下面的说明中,将使用两个英文首字母缩写:HF 和 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 的表名称。

源行和列波段

确定是否仅创建分配栅格或是否创建多波段结果。

  • 未选中 - 结果是距离分配栅格。 这是单波段结果。 这是默认设置。
  • 选中 - 已创建多波段栅格。 第一个波段是距离分配栅格,第二个波段包含行索引,而第三个波段包含列索引。 这些索引用于标识相距最小积累成本距离的源像元的位置。

初始累积

开始进行成本计算的初始累积成本。 此参数适用于与源相关的固定成本规范。 成本算法将从指定的值开始,而非从 0 成本开始。

可将数值(双精度型)或源栅格中的字段用于此参数。

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

最大累积

定义源的行驶者的最大累积成本。 每个源的成本计算将在达到指定容量后停止。

可将数值(双精度型)或源栅格中的字段用于此参数。

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

要应用于成本的乘数

要应用于成本值的乘数。

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

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

可将数值(双精度型)或源栅格中的字段用于此参数。

行驶方向

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

  • 来自源 - 垂直系数、水平系数和源阻力比率将应用于开始于输入源并移动至非源像元的情况。 这是默认设置。
  • 到源 - 垂直系数、水平系数和源阻力比率将应用于开始于每个非源像元并移动回输入源的情况。

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

距离法

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

  • 平面 - 平面测量使用 2D 笛卡尔算法计算长度与面积。 此选项仅适用于在投影坐标系中执行测量,并且该坐标系的 2D 平面将成为测量的基础。
  • 测地线 - 椭球体(椭圆体)地球表面上两点间长度最短的线。 无论输入或输出投影,结果均不会改变。
    注:

    要确定两城市间最短的飞机飞行路径,便会用到大地测量线。 如果基于一个球体而非一个椭圆体,则这种线又称为大圆线。

环境设置

全局函数的地理处理环境设置可在应用程序级别进行控制。 可通过单击分析选项卡上的环境按钮来设置 AllSource 中的处理环境。 有关环境设置的其他详细信息,请参阅分析环境和 Spatial Analyst

此全局函数支持以下环境: