需要 Spatial Analyst 许可。
障碍是在要计算其距离的两个位置之间存在的障碍物。 障碍可以是诸如湖泊、分车道高速公路或山脉等要素。 当存在障碍时,直线距离可能发生改变。 在考虑绕行障碍所需的额外距离后,您可能希望了解位置之间的最短可能距离。
当障碍挡道时,旅行者必须绕行。
可以通过包含障碍并合并实际出行的表面距离来调整直线距离。 确定经调整的直线距离后,可以通过成本表面、源特征、垂直系数和水平系数来控制遇到该距离的比率。 如果使用障碍指定这些比率系数中的任何一个,则绕行障碍将为位置之间的最小成本距离。
障碍用例
障碍可用于帮助解决各种情况,例如:
- 在野生动物研究中,确定两个栖息地之间的距离,这两个栖息地之间存在一个湖泊。
- 当两个码头之间存在半岛时,确定船在两个码头之间行驶的最短距离。
- 当要导航的区域中存在陡峭下降时,确定徒步旅行路径。
- 当飞机和其目的地之间存在风暴时,确定飞机应该采用的飞行路径。
使用障碍调整直线距离分析
可以在概念上将距离分析分为以下相关功能领域:
- 计算直线距离,可以选择性地使用障碍或表面栅格调整计算。
- 可以选择使用成本表面、源特征、垂直系数和水平系数来确定遇到距离的比率。 创建累积距离栅格。
- 使用最佳网络、特定路径或廊道连接生成的累积距离表面的区域。
在第一个功能区中,可以使用障碍来调整直线距离,如下图所示。 该方案包括 4 个护林员站(紫色点)和一些河流(蓝色线)的集合。
直线距离结果可标识从每个非源像元到最近的护林员站的距离。
由于旅行者需要在障碍周围移动,因此障碍将调整直线距离。
如果没有障碍,则直线源方向将与反向栅格相同。
针对每个像元,反向栅格将标识从像元返回至最近的源时的移动方向。 如果引入了障碍,则旅行者必须在障碍周围移动。
创建包含障碍的距离栅格
要创建包含障碍的距离栅格,请完成以下步骤:
- 打开距离累积工具。
- 在输入栅格或要素源数据参数中提供源。
- 为输出距离栅格命名。
- 在输入障碍栅格或要素数据参数中标识障碍。
- 指定所需的其他所有参数。
- 单击运行。
障碍会影响距离计算
以下部分将提供有关使用距离累积工具调整包含障碍的直线距离的信息。
指定障碍
如果您需要绕行障碍,则障碍会更改距离计算。 障碍的示例包括湖泊、分车道高速公路、山脉或悬崖。 您可以使用一个输入参数将障碍位置所在的位置指定为要素或栅格数据。 如果此参数的输入是要素类,则当工具运行时,它将转换为栅格。
您还可以通过其他方式定义障碍。 如果提供了表面栅格、成本表面、垂直系数栅格或水平系数栅格,则任何栅格中包含的 NoData 像元都被视为障碍。 如果设置了掩膜环境,则掩膜覆盖区域之外的位置(NoData 像元)也被视为障碍。 在以上所有情况中,像元均将禁止移动。 必要时,将略微加厚所有障碍,以防止出现任何可能导致穿过障碍移动的裂缝。 有关详细信息,请参阅以下的加厚障碍以防止裂缝部分。
总而言之,允许跨输入表面栅格、成本表面栅格、垂直系数栅格和水平系数栅格中具有有效值的位置,以及跨分析环境中定义的掩膜区域内的位置(如指定)进行移动。 不允许跨障碍输入定义的位置、掩膜区域外的位置(NoData 像元)或跨表面栅格、成本表面栅格、垂直系数栅格或水平系数栅格具有 NoData 值的位置进行移动。
障碍会影响输出距离栅格
障碍将影响在执行距离分析时生成的以下输出栅格:
- 距离累积栅格
- 反向栅格
- 源方向栅格
距离累积栅格
对于每个非源像元,输出距离累积栅格将计算到最近的源或成本最低的源的累积距离。 如果已指定障碍输入,则距离值可以说明绕行障碍像元。
例如将新建筑群定位在更加接近现有电力线的位置。 在下图中,显示了从每个非源像元到最近的电力线(蓝线)的距离。 未指定任何障碍输入。 将显示生成的距离栅格,绿色表示位置更近。
由于当地的限制,新电力线不能越过山脊。 下图显示了添加山脊线(紫色线)作为障碍的影响。 请注意,由于绕行山脊线需要增加距离,因此山脊线另一侧的位置现在距离电力线更远(浅棕色)。
注:
如果障碍导致任何位置与源断开连接,则不会计算到断开连接的像元的距离。
反向和源方向栅格
借助距离累积,您还可以创建反向栅格和源方向栅格。 对于每个非源像元,反向栅格可标识您离开非源像元,返回至最近的源或成本最低的源时的行进方向。
对于每个非源像元,源方向栅格可标识到最近的源像元或成本最低的源像元的方向。 在计算直线距离时,如果没有障碍,则这两个输出相同;如果存在障碍,则这两个输出不同。
反向和源方向栅格将使用与罗盘相同的约定。 值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加,因此 180 是南方、270 是西方、360 是北方。 这两个栅格将报告实际方向:反向栅格报告以浮点值表示的度数,源方向栅格报告以整数表示的度数。
例如,如果陆地半岛位于皮划艇和目的地(Jim 的皮划艇租赁店)之间,则在计算皮划艇爱好者到达目的地的行进距离时,将说明反向输出和源方向输出之间的差异。 该半岛将成为皮划艇爱好者(旅行者)的障碍。 由于皮划艇爱好者必须在陆地上导航,因此在下图的反向栅格中,每个像元将存储皮划艇爱好者应从像元中移出,以划回 Jim 的皮划艇租赁店的方向。 将由深蓝色箭头指示代表性像元的这种定向移动。 在源方向栅格中,每个像元将存储返回到 Jim 的皮划艇租赁店的直线方向。 将由浅蓝色箭头指示此方向。 这两个方向是不同的。 蓝色箭头指示皮划艇在半岛周围移动,而浅蓝色箭头指示从任何位置返回到 Jim 的皮划艇租赁店的直线方向,不考虑半岛的位置。
反向栅格的重要用途是生成从目的地返回到最近的源的最短路径。 在下图中,输出反向栅格是最佳路径为线工具的输入,用于定义皮划艇爱好者(紫色点)应绕行半岛(障碍)的最短路径,从而避开船只停泊区(黄色面)以返回到皮划艇租赁区。
障碍可以更改最近的源或成本最低的源
添加障碍后,它们可以更改最近的源像元或成本最低的源像元。 例如,在以下第一个图像中,存在两个源 S1 和 S2。 最接近非源像元 x 的源为源 S1。
在下一个图像中,将添加水平障碍。 现在,最接近 x 的源为源 S2(如障碍右端周围的浅灰色路径所示)。
因此,障碍的存在会更改反向栅格中像元的输出值。 在本示例中,对于没有障碍的反向栅格,将为 x 分配值 180.0。 如果存在障碍,则 x 的反向将为 121.5。
对于源方向栅格,最接近像元 x 且没有障碍的源为 S1,南向 180 度。 添加水平障碍后,分配给 x 的源方向大约为 135 度(浅蓝色箭头),即从 x 到源 S2 的直线方向,而非路径方向。 由于存在障碍,因此从 x 到 S2 的反向和源方向将不同。
输出距离分配栅格中的 x 值将从 S1(无障碍)更改为 S2(有障碍)。
如果提供了成本表面和障碍,则分配给非源像元 x 的值可能有以下三种情况:
- 如果 S1 是没有障碍的最低成本源,则带有障碍的 S2 将成为累积成本大于分配给 S1 的值的最低成本源。
- 如果 S2 是没有障碍的最低成本源,则源 S2 的成本最初比 S1 低。 如果存在障碍,则 S2 仍然是最低成本源,但是总累积成本却增大。
- S2 是没有障碍的最低成本源,但是到达 S2 的路径不会在障碍附近通过。 如果存在障碍,则 S2 的累积成本将保持不变。 障碍无效。
对于成本表面,如果 x 的最低成本源从 S1 更改为 S2,则源方向栅格将发生变化。 但是,如果 S2 最初为最低成本源,则 x 的源方向将保持不变。
加粗障碍以防止裂缝
障碍可以表示为线性要素,例如道路或河流。 在这种情况下,必须对线要素进行栅格化,才能执行距离操作。 当表示为栅格时,线性要素的厚度将仅为一个像元。 虽然可以在完全水平或垂直的位置保留障碍的性质,但其可能是对角线部分。 在这种情况下,旅行者可能会在几何上滑过相应部分,这些部分相当于障碍中的裂缝。
为避免这种情况,距离累积和距离分配工具会自动将对角线部分加粗一个像元。 由于可防止旅行者通过对角线,因此障碍输入将保持为真实障碍。
如果输入障碍为栅格,则对于宽度为一个像元的对角像元,也会出现这种加粗过程。
对于在工具参数中指定为数据集的障碍,可将其合并到成本表面中,并根据需要加粗成本表面中的 NoData 像元。 因此,将加粗障碍以避免潜在的裂缝,不考虑障碍是由数据集指定,还是在成本表面中为其位置分配 NoData。