ArcGIS for Desktop

  • 文档
  • 合约
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS for Desktop

全面的专业性 GIS

ArcGIS for Server

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 合约
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

路径距离回溯链接

需要 Spatial Analyst 许可。

  • 摘要
  • 用法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

摘要

考虑表面距离以及水平和垂直成本因素的情况下,在指向最近源的最小累积成本路径上定义表示下一像元的近邻。

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

用法

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

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

  • 当输入源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。具有 NoData 值的像元不包括在源集内。值 0 将被视为合法的源。使用提取工具可轻松地创建源栅格。

  • 当输入源数据是要素类时,源位置在执行分析之前从内部转换为栅格。栅格的分辨率可以由像元大小环境来控制。默认情况下,分辨率将由成本、表面、水平系数和垂直系数输入栅格中的像元大小的最大值决定。如均未指定上述可选输入,必须为像元大小环境设置指定值。

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

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

  • 包含 NoData 的像元在“路径距离”工具中充当障碍。NoData 值后面的像元成本距离通过围绕 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 factor  Low cut  Height cut  Slope  Power  Cos    Sec
                                           angle    angle                     power  power            
    ------------------------  -----------  -------  ----------  -----  -----  -----  -----
    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
  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。

语法

PathBackLink (in_source_data, {in_cost_raster}, {in_surface_raster}, {maximum_distance}, {out_distance_raster}, {in_horizontal_raster}, {horizontal_factor}, {in_vertical_raster}, {vertical_factor})
参数说明数据类型
in_source_data

输入源位置。

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

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

Raster Layer | Feature Layer
in_cost_raster
(可选)

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

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

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

Raster Layer
in_surface_raster
(可选)

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

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

Raster Layer
maximum_distance
(可选)

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

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

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

Double
out_distance_raster
(可选)

输出路径距离栅格。

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

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

输出栅格为浮点型。

Raster Dataset
in_horizontal_raster
(可选)

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

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

Raster Layer
horizontal_factor
(可选)

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

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

在下面的说明中,将使用两个英文首字母缩写:“HF”表示水平系数,用于定义从一个像元移动到下一像元时所遇到的水平阻力;“HRMA”表示水平相对移动角度,用于定义像元的水平方向与移动方向之间的角度。

对象有如下形式:

  • HfBinary、HfForward、HfLinear、HfInverseLinear 和 HfTable。

以上各种形式对象的定义及参数是:

  • 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} - 确定与 HfLinear 和 HfInverseLinear 水平系数关键字结合使用的直线坡度。坡度被指定为垂直增量与水平增量的比值(例如,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、VfLinear、VfInverseLinear、VfSymLinear、VfSymInverseLinear、VfCos、VfSec、VfSec、VfCosSec、VfSecCos 和 VfTable。

以上各种形式对象的定义及参数是:

  • 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 的余弦函数。

  • VfTable(inTable)

    标识将用于定义垂直系数图(确定 VF)的表文件。

垂直参数的修饰属性是:

  • {zeroFactor} - 确定 VRMA 为零时要使用的垂直系数。该系数可确定指定函数的 y 截距。按照定义,零系数对于任意三角垂直函数(Cos、Sec、Cos_Sec 或 Sec_Cos)都不适用。y 截距由以上函数定义。
  • {lowCutAngle} - 定义 VRMA 角度,小于该角度时会将 VF 设置为无穷大。
  • {highCutAngle}- 定义 VRMA 角度,大于该角度时会将 VF 设置为无穷大。
  • {slope} - 确定与 VfLinear 和 VfInverseLinear 参数结合使用的直线坡度。坡度被指定为垂直增量与水平增量的比值(例如,45 百分比坡度是 1/45,以 0.02222 的方式输入)。
  • inTable - 标识定义 VF 的表名称。
Vertical factor

返回值

名称说明数据类型
out_backlink_raster

输出成本回溯链接栅格。

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

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

回溯链接位置
Raster

代码示例

PathBackLink 示例 1(Python 窗口)

以下 Python 窗口脚本演示了 PathDistanceBackLink 工具的使用方法。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outPathBL = PathBackLink("source.shp", "costraster", "elevation", "backlink2", 
                         HfForward(0.5, 1.0), "focalcost.tif", VfBinary(1.0, -30, 30),  
                         30000, "c:/sapyexamples/output/optbldist")
outPathBL.save("c:/sapyexamples/output/pathblink")
PathBackLink 示例 2(独立脚本)

考虑表面距离以及水平和垂直成本因素的情况下,在指向最近源的最小累积成本路径上定义表示下一像元的近邻。

# Name: PathBackLink_Ex_02.py
# Description: Defines the neighbor that is the next cell on the least 
#              accumulative cost path to the nearest source, 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 = "source.shp"
inCostRast = "costraster"
inSurfRast = "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)

inMaxDist = 30000
optOutDist = "c:/sapyexamples/output/pthdstout"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute PathBackLink
outPathBL = PathBackLink(inSource, inCostRast, inSurfRast, 
                         inHoriz, myHorizFactor, inVertical,
                         myVerticalFactor, inMaxDist, optOutDist)

# Save the output 
outPathBL.save("c:/sapyexamples/output/pathblink02")

环境

  • 自动提交
  • 像元大小
  • 压缩
  • 当前工作空间
  • 范围
  • 地理变换
  • 掩膜
  • 输出配置关键字
  • 输出坐标系
  • 栅格统计
  • 临时工作空间
  • 捕捉栅格
  • 切片大小

许可信息

  • ArcGIS for Desktop Basic: 需要 Spatial Analyst
  • ArcGIS for Desktop Standard: 需要 Spatial Analyst
  • ArcGIS for Desktop Advanced: 需要 Spatial Analyst

相关主题

  • 距离工具集概述
  • 路径距离
  • 路径距离分配

ArcGIS for Desktop

  • 主页
  • 文档
  • 合约
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
© Copyright 2016 Environmental Systems Research Institute, Inc. | 隐私政策 | 法律声明