Skip To Content

Учитывать барьеры в вычислении расстояний

Доступно с Image Server

Барьер — это препятствие, которое находится между двумя точками, для которых вы рассчитываете расстояние. Барьерами могут быть такие объекты, как озеро, шоссе или горный хребет. Расстояние по прямой изменяется при наличии барьера. Возможно, вам захочется узнать кратчайшее расстояние между вашими местоположениями с учетом дополнительного расстояния, затрачиваемого на обход барьера.

Прямой путь между туристом и хижиной

Если на пути стоит преграда, путник должен обойти ее.

Путь путешественника меняется, когда между ним и хижиной оказывается озеро.

Вы можете отрегулировать расстояние по прямой, включив барьеры и фактическое расстояние по поверхности. После того, как скорректированное расстояние по прямой будет определено, скорость прохождения этого расстояния можно контролировать с помощью поверхности стоимости, характеристик источника, вертикального фактора и горизонтального фактора. Если какой-либо из этих факторов указан с барьером, объезд барьера будет расстоянием между точками с наименьшими затратами.

Примеры использования барьера

Барьеры можно использовать для решения различных сценариев, например следующих:

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

Корректировка анализа расстояний по прямой с помощью барьеров

Анализ расстояния можно разделить на следующие функциональные разделы:

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

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

Карта расстояния по прямой от четырех рейнджерских станций
Показано расстояние по прямой от каждой ячейки, не являющейся источником, до ближайшей станции рейнджеров. Реки отображены.

Барьеры регулируют расстояние по прямой, поскольку путешественнику необходимо их объезжать.

Карта расстояния по прямой корректируется для обхода ручьев, которые являются препятствиями.
Рейнджеры не могут пересекать реки, поэтому реки действуют как барьеры. Обратите внимание, что расстояние увеличивается по другую сторону барьеров.

Растры направления источника и обратного направления одинаковы при отсутствии барьеров.

Карта прямого направления от четырех лесничих станций
Растр направления источника указывает направление к ближайшей станции рейнджеров. Направления основаны на направлениях компаса (от 0 до 360 градусов).

Растр обратного направления определяет для каждой ячейки направление движения из ячейки для возврата к ближайшему источнику. Когда встречаются барьеры, путешественник должен их обходить.

Карта растра обратного направления, измененная за счет включения барьеров
Показан растр обратного направления с включенными барьерами ручьев. Значения исходного направления в предыдущем растре должны быть изменены, чтобы позволить путешественнику объезжать реки.

Создайте растр расстояний с барьерами

Чтобы создать растр расстояний, включающий барьеры, выполните следующие шаги:

  1. Откройте инструмент Накопление расстояний.
  2. Укажите источник для параметра Входные растровые или векторные данные источника.
  3. Укажите имя выходного растра расстояний.
  4. Определите барьер в параметре Входные растровые или векторные данные барьеров.
  5. Укажите любые другие необходимые параметры.
  6. Щелкните Запустить.

Барьеры влияют на расчет расстояния

В разделах ниже представлена информация о корректировке расстояния по прямой с барьерами с помощью инструмента Накопление расстояний.

Укажите барьер

Барьер может изменить расчет расстояния, если вам понадобится объехать его. Примерами барьеров могут быть озеро, шоссе, горный хребет, река или скала. Существует входной параметр, который вы можете использовать, чтобы указать местоположения барьеров, в виде объектов или растровых данных. Если входными данными для этого параметра является класс объектов, он будет преобразован в растр при запуске инструмента.

Вы можете определить барьеры и другими способами. Если предоставлен растр поверхности, стоимостная поверхность, растр вертикального фактора или растр горизонтального фактора, ячейки NoData в любом из этих растров считаются барьерами. Если задан параметр среды Маска, местоположения, находящиеся за пределами области, покрытой маской (ячейки NoData), также считаются барьерами. Во всех случаях барьеры запрещают движение. При необходимости все барьеры будут слегка утолщены, чтобы никакие разрывы не позволяли проходить через барьер. Дополнительную информацию см. в разделе Утолщение барьеров для предотвращения разрывов ниже.

Подводя итог, можно сказать, что перемещение разрешено между местоположениями, которые имеют действительные значения для входного растра поверхности, стоимостного растра поверхности, растра вертикального фактора и растра горизонтального фактора, а также между местоположениями, которые находятся в пределах области маски, определенной в среде анализа, если это задано. Перемещение не разрешено между местоположениями, определенными входными данными барьера, между местоположениями, находящимися за пределами области маски (ячейки NoData), или через любое местоположение, где растр поверхности, растр стоимостной поверхности, растр вертикального фактора или растр горизонтального фактора имеют значение NoData.

Барьеры влияют на выходные растры расстояний

Барьеры влияют на следующие выходные растры, создаваемые при выполнении анализа расстояний:

  • Растр накопления расстояния
  • Растр обратного направления
  • Растр направления источника

Растр накопления расстояния

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

Примером является размещение нового строительного комплекса, где предпочтительна близость к существующим линиям электропередачи. На следующем изображении показано расстояние от каждой ячейки, не являющейся источником, до ближайшей линии электропередач (синие линии). Входной барьер не указан. Отображается итоговый растр расстояний, зеленый цвет которого указывает на более близкие местоположения.

Карта расстояния по прямой от линий электропередач
Расстояние по прямой от линий электропередач. Для каждой ячейки рассчитывается расстояние по прямой до ближайшего участка линии электропередач.

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

Карта расстояния по прямой, корректируемая для обхода барьера
Расстояние по прямой корректируется с учетом дополнительного расстояния, необходимого для обхода барьера.

Примечание:

Если барьер приводит к разрыву связности каких-либо местоположений с источником, расстояние до подобных ячеек не рассчитывается.

Растры обратного и исходного направления

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

Для каждой ячейки, не являющейся источником, растр направления источника определяет направление к ближайшей ячейке источника или ячейке с наименьшей стоимостью. Если при расчете расстояния по прямой нет барьеров, эти два результата одинаковы; при наличии барьеров - нет.

Для растров обратного направления и исходного направления используются те же правила, что и для компаса. Диапазон значений - от 0 до 360 градусов, где значение 0 резервируется для ячеек источников. Направление на восток (вправо) определяется, как 90 градусов, значения увеличиваются по часовой стрелке: 180 – на юг, 270 – на запад и 360 – на север. Два растра сообщают фактическое направление: растр обратного направления сообщает градусы как значения с плавающей запятой, а растр исходного направления сообщает их как целые числа.

Разница между выходными данными обратного направления и исходного направления может быть проиллюстрирована, например, при расчете расстояния, за которое каякер доберется до пункта назначения (Аренда каяков Джима), когда между каякером и пунктом назначения находится сухопутный полуостров. Полуостров становится преградой для каякера (путешественника). На изображении ниже в растре обратного направления каждая ячейка хранит направление, в котором каякер должен выйти из ячейки, чтобы плыть обратно к пункту Аренды каяков Джима, поскольку каякер должен перемещаться, обходя сушу. Это направленное движение указано для репрезентативных клеток темно-синими стрелками. В растре исходного направления каждая ячейка хранит прямолинейное направление обратно к пункту аренды каяков Джима. Это направление указано голубыми стрелками. Эти два направления различны. Темно-синие стрелки направляют каякера вокруг полуострова, а светло-синие стрелки указывают прямое направление обратно в пункт аренды из любого места, независимо от полуострова.

Карта, показывающая, как различаются направление источника и обратное направление, когда между каякером и пунктом назначения находится полуостров.
Каяки Джима находятся в левом нижнем углу изображения (оранжевая точка). Берег и желтый полигон являются барьерами. Для примера набора ячеек показаны значение обратного направления (темно-синий) и значение исходного направления (голубой). Желтый полигон указывает места швартовки лодок, которых каякеру следует избегать.

Важным применением растра обратного направления является создание кратчайших путей от пункта назначения обратно к его ближайшему источнику. На изображении ниже выходной растр обратного направления был входными данными для инструмента Оптимальный путь как линия для определения кратчайшего пути, который каякер (фиолетовая точка) должен пройти вокруг полуострова (барьера), избегая причалов лодок (желтый полигон), чтобы вернуться обратно в зону проката каяков.

Путь, который должен пройти каяк, чтобы обойти полуостров и вернуться в прокат каяков
Инструмент Оптимальный путь как линия использует выходные данные о расстоянии по прямой линии и выходные данные в обратном направлении для создания кратчайших полилинейных путей к источнику, избегая препятствий.

Барьеры могут изменить ближайший или наименее затратный источник

Когда добавляются барьеры, они могут изменить то, какая исходная ячейка является ближайшей или наименее затратной для достижения. Например, на первом изображении ниже есть два источника: S1 и S2. Ближайшим источником к ячейке x, не являющейся источником, является источник S1.

Ячейка x находится в направлении 180 градусов от ближайшего источника S1
В ячейке x, не являющейся источником, ближайшей исходной ячейкой является S1, а значение 180 сохраняется в местоположении x на карте выходных направлений.

На следующем изображении добавлен горизонтальный барьер. Ближайшим источником к x теперь является источник S2 (как показано светло-серой линией вокруг правого конца барьера).

Горизонтальный барьер меняет ближайший источник с S1 на S2
При наличии барьера (горизонтальная темно-серая линия) ближайшей к x исходной ячейкой теперь является S2. Направление непосредственно на S2 отличается от направления назад, выбранного при движении по кратчайшему пути.

В результате наличие барьеров может изменить выходные значения ячеек растра обратного направления. В этом примере значение, присвоенное x в растре обратного направления без барьера, будет 180,0. С барьером обратное направление для x будет 121,5.

Для растра направления источника ближайшим источником к ячейке x без барьера является S1, на юг, в направлении 180 градусов. При добавлении горизонтального барьера исходное направление, назначенное для x, составляет примерно 135 градусов (голубая стрелка), что является направлением прямой линии от x до источника S2, а не направлением маршрута. Из-за барьера обратное направление и направление источника от x до S2 различны.

Значение x в выходном растре распределения расстояний изменится с S1 без барьера на S2 с барьером.

Если указаны поверхность стоимости и барьер, для значения, присвоенного ячейке x, возможны три сценария:

  1. Если S1 был источником с наименьшей стоимостью без барьера, то с барьером S2 становится источником с наименьшей стоимостью с совокупной стоимостью, превышающей значение, присвоенное S1.
  2. Если бы S2 был источником с наименьшими затратами без барьера, доступ к источнику S2 изначально был бы дешевле, чем к S1. При наличии барьера S2 по-прежнему остается источником с наименьшими затратами, но общие совокупные затраты увеличиваются.
  3. S2 был источником с наименьшей стоимостью без барьера, но путь к S2 не проходит рядом с барьером. При наличии барьера совокупная стоимость S2 остается прежней. Барьер не имел никакого эффекта.

При использовании поверхности стоимости растр направления источника изменится, если источник с наименьшей стоимостью для x изменится с S1 на S2. Однако, если S2 изначально был источником с наименьшей стоимостью, направление источника для x останется прежним.

Утолщение барьеров для предотвращения разрывов

Барьер можно представить как линейный объект, например как дорогу или реку. В этом случае линейный объект необходимо перевести в растр до выполнения операции определения расстояния. В качестве растра линейный объект будет иметь толщину всего одну ячейку. Характер барьера сохранится там, где он идеально горизонтален или вертикален, но он может проходить по диагонали. В этом случае путешественник геометрически может проскользнуть сквозь разрывы в барьере.

Чтобы предотвратить это, инструменты Накопление расстояния и Распределение по расстоянию автоматически утолщают диагональные участки на одну ячейку. Поскольку путешественник не может пройти через диагонали, входной барьер останется истинным барьером.

Не допускайте проскальзывания путешественника через разрывы, слегка утолщая диагональные участки барьеров
Путешественник мог проскользнуть по диагонали сквозь трещины в барьере (слева). Чтобы этого не произошло, диагональные участки барьеров слегка утолщены (справа).

Если входной барьер является растром, этот процесс утолщения также происходит для диагональных ячеек шириной в одну ячейку.

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