VfHikingTime

Доступно с лицензией Spatial Analyst.

Краткая информация

Определяет взаимосвязь между фактором вертикальной стоимости и вертикальным относительным углом перемещения через величину, обратную функции Тоблера, что приводит к времени похода в часах.

Иллюстрация

Вертикальный фактор VfHikingTime для изображения функций Расстояние

Обсуждение

Объект VfHikingTime используется в инструментах Spatial Analyst Накопление расстояния и Распределение по расстоянию, а также в устаревших инструментах расстояния Путевое расстояние, Распределение по путевому расстоянию и Путевое направление.

Объект вертикальный фактор (VF) определяет отношение между вертикальным фактором стоимости и вертикальным относительным углом движения (VRMA).

VF определяет вертикальную трудность, возникающую при переходе от одной ячейки к другой.

VRMA определяет угол наклона между ячейкой ОТ или обрабатываемой ячейкой и ячейкой ДО.

Когда VRMA больше нижнего угла среза и меньше верхнего угла среза, VF для перемещения между двумя ячейками устанавливается на значение, полученное из функции. Если VRMA больше значения highCutAngle или ниже значения lowCutAngle, VF устанавливается на бесконечность.

Формула функции пешего прохода Тоблера выглядит так:

Функция пешего прохода Тоблера

Формула для VfHikingTime, которая является обратной функцией пешего прохода Тоблера, выглядит следующим образом:

Функция темпа или времени пешего перехода

Где d - угол, по которому вычисляется наклон.

Примечание:

Дополнительную информацию о функции прохода Тоблера см. в разделе Корректировка пройденного расстояния с использованием вертикального фактора в справке инструмента геообработки и на следующем ресурсе:

  • Tobler, Waldo. 1993. Three Presentations on Geographical Analysis and Modeling: Non-Isotropic Geographic Modeling; Speculations on the Geometry of Geography; and Global Spatial Analysis (93-1). Получено от https://escholarship.org/uc/item/05r820mz

Синтаксис

VfHikingTime ({lowCutAngle}, {highCutAngle})
ПараметрОписаниеТип данных
lowCutAngle

The VRMA degree defining the lower threshold, below which (less than) the VFs are set to infinity.

(Значение по умолчанию — -70.0)

Double
highCutAngle

The VRMA degree defining the upper threshold, beyond which (larger than) the VFs are set to infinity.

(Значение по умолчанию — 70.0)

Double

Свойства

СвойствоОписаниеТип данных
lowCutAngle
(чтение и запись)

Значение VRMA в градусах, определяющее нижний порог, ниже которого значения VF устанавливаются равными бесконечности.

Double
highCutAngle
(чтение и запись)

Значение VRMA в градусах, определяющее верхний порог, выше которого значения VF устанавливаются равными бесконечности.

Double

Пример кода

VfHikingTime, пример 1 (окно Python)

В этом примере кода показано, как создать класс VfHikingTime и использовать его в инструменте Накопление расстояния в окне Python.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
myVerticalFactor = VfHikingTime(-30, 30)
outDistAccum = DistanceAccumulation("Source.shp", "", "elev.tif",
                                   "cost.tif", "elev.tif",
                                    myVerticalFactor)
outDistAccum.save("C:/sapyexamples/output/distAccumVfH.tif")
VfHikingTime, пример 2 (автономный скрипт)

Выполните анализ накопления расстояний с помощью инструмента Накопление расстояния и класса VfHikingTime.

# Name: VfHikingTime_Ex_02.py
# Description: Uses the VfHikingTime object to run the
#              DistanceAccumulation tool
# 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
inSourceData = "source.shp"
inCostRaster = "costraster.tif"
inElevation = "elev.tif"

# Create the VfHikingTime Object
lowCutAngle = -30
highCutAngle = 30
myVerticalFactor = VfHikingTime(lowCutAngle, highCutAngle)

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

# Run DistanceAccumulation
outDistAccum = DistanceAccumulation(inSourceData, "", inElevation,
                                    inCostRaster, inElevation,
                                    myVerticalFactor)

# Save the output 
outDistAccum.save("C:/sapyexamples/output/distaccumvfH2.tif")