“距离分配”工具计算每个像元与源之间的距离分配。
注:
该工具现在可以在 Map Viewer 中使用,这是 ArcGIS Enterprise 中的现代化地图制作工具。 有关详细信息,请参阅距离分配 (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 修饰属性用于定义来自源像元与到源像元之间的坡度角度。
垂直参数的修饰属性如下:
|
选择水平栅格(可选) | 定义每个像元的水平方向的栅格。 在栅格上的这些值必须是整数,以北纬 0 度(或朝向屏幕顶部)为起始值,范围为 0 至 360,顺时针增加。 平坦区域应赋值为 -1。 每个位置上的值与水平系数参数结合使用,用来确定在相邻像元之间移动时产生的水平成本。 |
水平系数(可选) | 水平系数用于定义水平成本系数与水平相对移动角度之间的关系。 仅当指定了选择水平栅格(可选)时,此选项才可用。 有若干个带有修饰属性的系数可用于标识定义的水平系数图。 这些图表用于标识在计算移动到相邻像元的总成本时的水平系数。 在下面的描述中,水平系数 (HF) 用于定义从一个像元移动到下一像元时所遇到的水平阻力;水平相对移动角度 (HRMA) 用于定义像元的水平方向与移动方向之间的角度。 这些 HF 的定义和参数如下:
水平关键字的修饰属性如下:
|
初始累积(可选) | 开始进行成本计算的初始累积成本。 它适用于与源相关的固定成本规范。 成本算法将从通过初始累积设置的值开始,而非从零成本开始。 值必须大于等于零。 默认值为 0。 |
最大累积(可选) | 源的旅行者的最大累积。 每个源的成本计算将在达到指定累积后停止。 值必须大于零。 默认累积为到输出栅格边的边。 |
成本倍增率(可选) | 要应用于成本值的乘数。 可将其用于控制源的出行或放大模式。 乘数越大,在每个像元间移动的成本将越大。 值必须大于零。 默认值为 1。 |
行进方向(可选) | 当应用水平和垂直系数时,指定旅行者的方向。 来自源 - 水平系数和垂直系数将应用于从输入源开始并行驶至非源像元的情况。 这是默认设置。 到源 - 水平系数和垂直系数将应用于从每个非源像元开始并行驶回输入源的情况。 指定将应用于所有源的来自源或到源关键字,或指定包含用于确定各个源行驶方向关键字的源数据字段。 该字段必须包含字符串 FROM_SOURCE 或 TO_SOURCE。 |
距离方法(可选) | 指定是否使用平面(平地)或测地线(椭球)方法计算距离。
|
结果距离分配栅格名称 | 将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。 您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。 |
结果距离累积栅格名称(可选) | 距离累积栅格包含每个像元距最低成本源的累积距离。 输出栅格为浮点类型。 将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。 您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。 |
结果反向栅格名称(可选) | 反向栅格中包含以度为单位的计算方向。 该方向可用于识别沿最短路径返回最近源同时避开障碍的下一像元。 值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方)。 输出栅格为浮点类型。 将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。 您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。 |
结果源方向栅格名称(可选) | 源方向栅格将最小积累成本源像元的方向标识为方位角(以度为单位)。 值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方)。 输出栅格为浮点类型。 将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。 您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。 |
结果源位置栅格名称(可选) | 源位置栅格为多波段输出。 第一个波段包含行索引,第二个波段包含列索引。 这些索引用于标识相距最小积累成本距离的源像元的位置。 将在我的内容中创建并添加到地图中的图层的名称。 默认名称基于工具名称以及输入图层名称。 如果该名称的图层已存在,则系统将提示您提供其他名称。 您可以使用将结果保存在下拉框指定我的内容中的文件夹名称,结果将保存到该文件夹中。 |
环境
分析环境设置是影响工具执行结果的附加参数。 您可以通过单击工具窗格顶部的齿轮图标 来访问该工具的分析环境设置。
该工具支持以下分析环境:
- 输出坐标系 - 指定输出图层的坐标系。
- 范围 - 指定要用于分析的区域。
- 捕捉栅格 - 调整输出的范围,使其与指定的捕捉栅格图层的像元对齐方式相匹配。
- 像元大小 - 要在输出图层中使用的像元大小。
- 掩膜 - 指定掩膜图层,其中仅落入掩膜区域内的像元将用于分析。
- 并行处理因子 - 控制栅格处理 CPU 或 GPU 实例。
类似的工具和栅格函数
“距离分配”工具计算每个像元与源之间的距离分配。 其他工具或许在解决类似问题时十分有用。
Map Viewer 经典版 分析工具和栅格函数
如果距离分配影像服务输出不是必需项,请使用距离累积工具或距离累积栅格函数。
距离分配也可作为栅格函数使用。
ArcGIS Pro 分析工具和栅格函数
距离分配和距离累积地理处理工具在 Spatial Analyst 工具箱中受支持。
ArcGIS Enterprise 开发者资源
如果您正在使用 ArcGIS REST API,请使用 Distance Allocation 和 Distance Accumulation 任务。
如果您正在使用 ArcGIS API for Python,则请使用来自 arcgis.raster.functions.gbl 模块的 distance_allocation 和 distance_accumulation 。