距离累积 (栅格分析)

摘要

计算每个像元到源的累积距离,允许直线距离、成本距离、真实表面距离以及垂直和水平成本系数。

插图

距离累积工作流

使用情况

  • 当您登录到已针对 Raster Analysis 配置 ArcGIS Image ServerArcGIS Enterprise 门户时,可以使用此栅格分析门户工具。 工具运行时,ArcGIS Pro 将充当客户端,并且处理将在与 ArcGIS Enterprise 联合的服务器中进行。 门户工具接受来自门户的图层作为输入,并在门户中创建输出。

    输入栅格图层支持来自门户的图层、影像服务的 URI 或 URL 或创建影像服务器图层工具的输出。 输入要素图层可以是来自门户、URI 或要素服务 URL 的图层。 此工具不支持本地栅格数据或图层。 虽然可以使用本地要素数据和图层作为此门户工具的输入,但是最佳做法是使用门户的图层作为输入。

  • 输入源数据可以是要素服务或影像服务。 对于要素服务,可以为点、线或面。

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

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

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

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

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

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

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

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

  • 如果成本栅格值为负值或零,则该值无效,但将被视为较小的正值。 累积成本算法是一个相乘的过程,如果成本值为负或零,则无法正确计算累积成本。 如果成本栅格包含这些值,并且这些位置表示要从分析中排除的区域,则在运行工具之前,将这些像元更改为 NoData。 可以使用 ArcGIS Spatial Analyst 扩展模块设为空函数工具来执行此操作。 NoData 值在此分析中会被视为障碍,因此所有输入为 NoData 的位置在结果中都将为 NoData。

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

    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
    Hiking time               ~       -70    70     ~      ~      ~      ~
    Bidirectional hiking time ~       -70    70     ~      ~      ~      ~
  • Spatial Analyst 坡向工具的输出可以用作输入水平栅格参数的输入。

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

    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

参数

标注说明数据类型
输入栅格或要素源

输入源位置。

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

对于影像服务,输入类型可以为整型或浮点型。 对于要素服务,输入类型可以为点、线或面。

Raster Layer; Feature Layer
输出距离累积栅格名称

输出距离累积栅格名称。

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

String
输入栅格和要素障碍
(可选)

定义障碍的数据集。

可通过整型或浮点型图像服务或要素服务来定义障碍。 对于要素服务,输入类型可以为点、线或面。

对于图像服务障碍,该障碍必须具有有效值(包括零),并且非障碍区域必须为 NoData。

Raster Layer; Feature Layer
输入表面栅格
(可选)

定义每个像元位置的高程值的图像服务。

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

Image Service; Raster Layer
输入成本栅格
(可选)

定义以平面测量方式经过每个像元的成本或阻抗的栅格。

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

成本栅格的值可以是整型或浮点型。 如果成本栅格值为负值或零,则该值无效,但将被视为较小的正成本值。

Image Service; Raster Layer
输入垂直栅格
(可选)

定义每个像元位置的 z 值的图像服务。

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

Image Service; Raster Layer
垂直系数
(可选)

指定垂直成本系数和垂直相对移动角度 (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 的余弦函数。
  • 徒步旅行时间 - 通过托布勒函数的倒数定义垂直成本系数与垂直相对移动角度之间的关系,从而得出以小时为单位的徒步旅行时间。
  • 双向徒步旅行时间 - 通过双向徒步旅行函数定义垂直成本系数和垂直相对移动角度之间的关系。

垂直关键字的修饰属性如下:

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

定义每个像元的水平方向的图像服务。

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

Image Service; Raster Layer
水平系数
(可选)

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

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

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

水平系数选项如下:

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

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

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

输出反向栅格名称。

反向栅格包含以度为单位的计算方向。 该方向用于标识沿最佳路径返回最小累积成本源同时避开障碍的下一个像元。

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

输出栅格为浮点类型。

String
输出源方向栅格名称
(可选)

输出源方向栅格名称。

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

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

输出栅格为浮点类型。

String
输出源位置栅格名称
(可选)

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

String
初始累积
(可选)

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

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

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

Double; Field
最大累积
(可选)

源的旅行者的最大累积。

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

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

Double; Field
成本倍数
(可选)

要应用于成本值的乘数。

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

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

Double; Field
行驶方向
(可选)

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

如果选择字符串选项,您可以选择将应用于所有源的“从”和“到”选项。

如果您选择字段选项,您可以选择可确定各个源使用方向的来自源数据的字段。 字段必须包含文本字符串 FROM_SOURCETO_SOURCE

  • 从源行驶水平系数和垂直系数将应用于从输入源开始并行驶至非源像元的情况。 这是默认设置。
  • 行驶至源水平系数和垂直系数将应用于从每个非源像元开始并行驶回输入源的情况。
String; Field
距离法
(可选)

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

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

派生输出

标注说明数据类型
输出距离累积栅格

输出距离累积栅格。

Raster
输出反向栅格

输出反向栅格。

Raster
输出源方向栅格

输出源方向栅格。

Raster
输出源位置栅格

输出源位置栅格。

Raster

arcpy.ra.DistanceAccumulation(inputSourceRasterOrFeatures, outputDistanceAccumulationRasterName, {inputBarrierRasterOrFeatures}, {inputSurfaceRaster}, {inputCostRaster}, {inputVerticalRaster}, {verticalFactor}, {inputHorizontalRaster}, {horizontalFactor}, {outputBackDirectionRasterName}, {outputSourceDirectionRasterName}, {outputSourceLocationRasterName}, {sourceInitialAccumulation}, {sourceMaximumAccumulation}, {sourceCostMultiplier}, {sourceDirection}, {distanceMethod})
名称说明数据类型
inputSourceRasterOrFeatures

输入源位置。

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

对于影像服务,输入类型可以为整型或浮点型。 对于要素服务,输入类型可以为点、线或面。

Raster Layer; Feature Layer
outputDistanceAccumulationRasterName

输出距离累积栅格名称。

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

String
inputBarrierRasterOrFeatures
(可选)

定义障碍的数据集。

可通过整型或浮点型图像服务或要素服务来定义障碍。 对于要素服务,输入类型可以为点、线或面。

对于图像服务障碍,该障碍必须具有有效值(包括零),并且非障碍区域必须为 NoData。

Raster Layer; Feature Layer
inputSurfaceRaster
(可选)

定义每个像元位置的高程值的图像服务。

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

Image Service; Raster Layer
inputCostRaster
(可选)

定义以平面测量方式经过每个像元的成本或阻抗的栅格。

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

成本栅格的值可以是整型或浮点型。 如果成本栅格值为负值或零,则该值无效,但将被视为较小的正成本值。

Image Service; Raster Layer
inputVerticalRaster
(可选)

定义每个像元位置的 z 值的图像服务。

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

Image Service; Raster Layer
verticalFactor
(可选)

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

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

在以下描述中,垂直系数 (VF) 用于定义从一个像元移至下一像元时所遇到的垂直阻力;VRMA 用于定义“起始”像元或处理像元与“终止”像元之间的坡度角度。

对象的形式如下:VfBinaryVfLinearVfInverseLinearVfSymLinearVfSymInverseLinearVfCosVfSecVfSecVfCosSecVfSecCosVfHikingTimeVfBidirHikingTimeVfTable

这些形式的定义及参数如下:

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

  • VfHikingTime({lowCutAngle}, {highCutAngle})

    VF 是 VRMA 的徒步时间功能。

  • VfBidirHikingTime({lowCutAngle}, {highCutAngle})

    VF 是 VRMA 的双向修改远足时间函数。

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

  • zeroFactor - VRMA 为零时要使用的垂直系数。 该系数可确定指定函数的 y 截距。 按照定义,零系数对于任意三角垂直函数(Cos、Sec、Cos-Sec 或 Sec-Cos)都不适用。 y 截距由以上函数定义。
  • lowCutAngle - VRMA 角度,小于该角度时会将 VF 设置为无穷大。
  • highCutAngle - VRMA 角度,大于该角度时会将 VF 设置为无穷大。
  • slope - 与 VfLinearVfInverseLinear 参数相结合使用的直线斜率。 斜率被指定为垂直增量与水平增量的比值(例如,45 百分比斜率是 1/45,以 0.02222 的方式输入)。
Vertical Factor
inputHorizontalRaster
(可选)

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

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

Image Service; Raster Layer
horizontalFactor
(可选)

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

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

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

对象的形式如下:HfBinaryHfForwardHfLinearHfInverseLinear

这些形式的定义及参数如下:

  • 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 的逆线性函数。

水平关键字的修饰属性为:

  • zeroFactor - HRMA 为 0 时的水平系数。 该系数可确定任意水平系数函数的 y 截距。
  • cutAngle - HRMA 角度,HRMA 大于该角度时会将 HF 设置为无穷大。
  • slope - 与 HfLinearHfInverseLinear 水平系数关键字相结合使用的直线斜率。 斜率被指定为垂直增量与水平增量的比值(例如,45 百分比斜率是 1/45,以 0.02222 的方式输入)。
  • sideValue - 在指定了 HfForward 水平系数关键字的情况下,HRMA 大于或等于 45 度且小于 90 度时的 HF。

Horizontal Factor
outputBackDirectionRasterName
(可选)

输出反向栅格名称。

反向栅格包含以度为单位的计算方向。 该方向用于标识沿最佳路径返回最小累积成本源同时避开障碍的下一个像元。

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

输出栅格为浮点类型。

String
outputSourceDirectionRasterName
(可选)

输出源方向栅格名称。

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

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

输出栅格为浮点类型。

String
outputSourceLocationRasterName
(可选)

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

String
sourceInitialAccumulation
(可选)

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

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

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

Double; Field
sourceMaximumAccumulation
(可选)

源的旅行者的最大累积。

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

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

Double; Field
sourceCostMultiplier
(可选)

要应用于成本值的乘数。

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

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

Double; Field
sourceDirection
(可选)

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

  • FROM_SOURCE水平系数和垂直系数将应用于从输入源开始并行驶至非源像元的情况。 这是默认设置。
  • TO_SOURCE水平系数和垂直系数将应用于从每个非源像元开始并行驶回输入源的情况。

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

String; Field
distanceMethod
(可选)

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

  • PLANAR将使用 2D 笛卡尔坐标系对投影平面执行距离计算。 这是默认设置。
  • GEODESIC距离计算将在椭圆体上执行。 无论输入或输出投影,结果均不会改变。
String

派生输出

名称说明数据类型
outputDistanceAccumulationRaster

输出距离累积栅格。

Raster
outputBackDirectionRaster

输出反向栅格。

Raster
outputSourceDirectionRaster

输出源方向栅格。

Raster
outputSourceLocationRaster

输出源位置栅格。

Raster

代码示例

距离累积示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 DistanceAccumulation 工具。

import arcpy

arcpy.ra.DistanceAccumulation('https://MyPortal.esri.com/server/rest/services/Hosted/sources/ImageServer',
                            'OutAccumulationRaster',
                            'https://MyPortal.esri.com/server/rest/services/Hosted/barrier/ImageServer',
                            'https://MyPortal.esri.com/server/rest/services/Hosted/surface/ImageServer',
                            'https://MyPortal.esri.com/server/rest/services/Hosted/cost/ImageServer')
距离累积示例 2(独立脚本)。

为每个像元计算与最近源相距的最小累积成本距离,同时考虑表面距离以及水平和垂直成本因素。

# Name: DistanceAccumulation_Ex_02.py
# Description: Calculates the distance accumulation.
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inputSourceRasterOrFeatures = 'https://MyPortal.esri.com/server/rest/services/Hosted/sources/ImageServer'
outputDistanceAccunulationName = "outDistAccum"
inputBarrierRasterOrFeatures  = 'https://MyPortal.esri.com/server/rest/services/Hosted/barrier/ImageServer'
inputSurfaceRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/surface/ImageServer'
inputCostRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/cost/ImageServer'
inputVerticalRaster = 'https://MyPortal.esri.com/server/rest/services/vertical/sources/ImageServer'
verticalFactor = ""
inputHorizontalRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/horizontal/ImageServer'
horizontalFactor = ""
outputBackDirectionRasterName = "outBackDir"
outputSourceDirectionRasterName = "outSourceDir"
outputSourceLocationRasterName = "outSourceLocation"
sourceInitialAccumulation = "IntitalAccum"
sourceMaximumAccumulation = "500000"
sourceCostMultiplier = "CostMultiplier"
sourceDirection = "FROM_SOURCE"
distanceMethod = "PLANAR"

# Execute 
arcpy.ra.DistanceAccumulation(inputSourceRasterOrFeatures, outputDistanceAccumulationName,
                            inputBarrierRasterOrFeatures, inputSurfaceRaster,
                            inputCostRaster, inputVerticalRaster, verticalFactor,
                            inputHorizontalRaster, horizontalFactor,
                            outputBackDirectionRasterName, outputSourceDirectionRasterName,
                            outputSourceLocationRasterName, sourceInitialAccumulation,
                            sourceMaximumAccumulation,sourceCostMultiplier, sourceDirection, distanceMethod)

许可信息

  • Basic: 需要 ArcGIS Image Server
  • Standard: 需要 ArcGIS Image Server
  • Advanced: 需要 ArcGIS Image Server

相关主题