Skip To Content

距离累积

距离累积“距离累积”工具计算每个像元与输入源之间的累积距离。

注:

要运行此工具,门户必须针对栅格分析进行配置。

目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。 如果在 Map Viewer 经典版 中没有看到该工具,请联系您的组织管理员。 您的门户可能无法配置为用于路径选择,或者您不具备运行该工具所需的权限。

工作流示意图

距离累积工作流

示例

示例应用包括回答以下问题:

  • 到最近城镇的距离是多少?
  • 到最近道路的成本距离是多少?
  • 到最近水源的障碍周围的距离是多少?

用法说明

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

当输入源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。 具有 NoData 值的像元不包括在源集内。 值 0 将被视为合法的源。

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

为避免出现这种情况,在中间步骤,您可以使用要素转栅格工具直接将输入要素栅格化并设置字段参数。 然后将生成的输出用作希望使用的特定距离工具的输入。

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

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

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

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

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

成本栅格不能包含零值,因为该算法是乘法过程。 如果成本栅格中的确包含表示成本最低区域的零值,则请在运行该工具前,将这些像元更改为较小的正值(如 0.01)。

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

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 像元定义了位于掩膜区域外的位置,并将被视为障碍。

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

下表列出了此工具的参数:

参数说明
选择源栅格或要素

此栅格或要素图层用于识别计算距离的源。

如果输入是栅格,则它必须由具有源的有效值(零是有效值)的像元组成,并且必须为其余的像元指定 NoData。

如果输入是要素图层,则它可以是点、线或面。

选择障碍栅格或要素(可选)

定义障碍的数据集。

对于栅格,输入类型可以是整型或浮点型。 任何拥有值(包括零)的像元都将被视为障碍。 任何 NoData 像元都不会被视为障碍。

对于要素服务,输入可以为点、线或面。

选择表面栅格(可选)

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

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

选择成本栅格(可选)

该栅格可定义在每个像元中进行平面移动所需的阻抗或成本。

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

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

选择垂直栅格(可选)

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

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

垂直系数(可选)

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

仅当指定了选择垂直栅格(可选)时,此选项才可用。

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

在下面的描述中,VF 用于定义从一个像元移至下一像元时所遇到的垂直阻力;VRMA 修饰属性用于定义来自源像元与到源像元之间的坡度角度。

  • 二元 - 如果 VRMA 大于交角的下限且小于交角的上限,则将 VF 设置为与零系数相关联的值;否则为无穷大。
  • 线性 - VF 是 VRMA 的线性函数。
  • 逆线性 - VF 是 VRMA 的逆线性函数。
  • 对称线性 - 无论在 VRMA 正侧还是负侧,VF 均为 VRMA 的线性函数,并且这两个线性函数关于 VF (y) 轴对称。
  • 对称逆线性 - 无论在 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 的余弦函数。

垂直参数的修饰属性如下:

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

选择水平栅格(可选)

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

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

水平系数(可选)

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

仅当指定了选择水平栅格(可选)时,此选项才可用。

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

在下面的描述中,水平系数 (HF) 用于定义从一个像元移动到下一像元时所遇到的水平阻力;水平相对移动角度 (HRMA) 用于定义像元的水平方向与移动方向之间的角度。

这些 HF 的定义和参数如下:

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

水平关键字的修饰属性如下:

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

初始累积(可选)

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

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

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

最大累积(可选)

源的旅行者的最大累积。

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

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

成本倍增率(可选)

要应用于成本值的乘数。

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

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

行进方向(可选)

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

来自源 - 水平系数和垂直系数将应用于从输入源开始并行驶至非源像元的情况。 这是默认设置。

到源 - 水平系数和垂直系数将应用于从每个非源像元开始并行驶回输入源的情况。

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

距离方法(可选)

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

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

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

输出栅格为浮点类型。

将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。

您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。

结果反向栅格名称(可选)

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

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

输出栅格为浮点类型。

将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。

您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。

结果源方向栅格名称(可选)

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

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

输出栅格为浮点类型。

将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。

您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。

结果源位置栅格名称(可选)

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

将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。

您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。

环境

分析环境设置是影响工具执行结果的附加参数。 您可以通过单击工具窗格顶部的齿轮图标 分析环境 来访问该工具的分析环境设置。

该工具支持以下分析环境:

  • 输出坐标系 - 指定输出图层的坐标系。
  • 范围 - 指定要用于分析的区域。
  • 捕捉栅格 - 调整输出的范围,使其与指定的捕捉栅格图层的像元对齐方式相匹配。
  • 像元大小 - 要在输出图层中使用的像元大小。
  • 掩膜 - 指定掩膜图层,其中仅落入掩膜区域内的像元将用于分析。

类似的工具和栅格函数

“距离累积”工具计算每个像元与输入源之间的累积距离。 其他工具或许在解决类似问题时十分有用。

Map Viewer 经典版 分析工具和栅格函数

如果距离分配影像服务输出是必需项,请使用距离累积工具或距离累积栅格函数。

距离累积也可作为栅格函数使用。

ArcGIS Pro 分析工具和栅格函数

距离累积和距离分配地理处理工具在 Spatial Analyst 工具箱中受支持。

距离累积和距离分配地理处理工具在 Raster Analysis 工具箱中受支持。

距离累积和距离分配可作为栅格函数使用。

ArcGIS Enterprise 开发者资源

如果您正在使用 ArcGIS REST API,请使用 Distance Accumulation 和 Distance Allocation 任务。

如果您正在使用 ArcGIS API for Python,则请使用来自 arcgis.raster.functions.gbl 模块的 Distance Accumulation ArcGIS for Python API 网站和 Distance Allocation ArcGIS for Python API 网站。