Местоположение входных данных анализа

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

Точка, расположенная на ребре сети

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

Процесс размещения

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

  1. Network Analyst находит точку в сети, ближайшую к местоположению исходной точки.
  2. Network Analyst изучает параметры сетевого анализа и параметры местоположения пользователя и определяет, является ли это местоположение допустимым для размещения входных объектов анализа. Если это местоположение считается недопустимым, оно пропускается, и рассматривается следующее ближайшее возможное местоположение. Ниже приведены некоторые причины, по которым ребро или соединение не могут считаться допустимыми для размещения:
    • Местоположение ограничено выбранным режимом передвижения. Например, если текущий режим передвижения запрещает использование автомагистралей с ограничением въезда, а ближайшим ребром сети является автомагистраль с ограничением въезда, точки анализа не смогут быть размещены на этом ребре.
    • Местоположение ограничено барьером.
    • Местоположение ограничено указанными вами настройками. Например, вы можете использовать поисковый запрос, чтобы предотвратить размещение входных данных на ребрах сети с определенным классом дорог.
  3. Этот процесс повторяется, каждый раз происходит проверка следующего ближайшего сетевого положения, пока для данной точки не будет найдено допустимое сетевое положение. Если в пределах заданного допуска расстояния поиска не найдено ни одного допустимого местоположения, точка остается не размещенной и не может быть использована в анализе.

Когда входной объект будет размещен, его сетевое положение будет сохранено в наборе полей. Описание этих полей приводится ниже в разделе Поля сетевых положений.

При определении местоположения точечных барьеров режим передвижения и другие барьеры игнорируются. Учитываются только геометрия и заданные пользователем параметры определения местоположения. Линии и полигоны также можно использовать в качестве входных данных для анализа сети, но только в качестве барьеров - линейных и полигональных. Эти барьеры размещаются на всех ребрах сети или соединениях, которые они перекрывают, в зависимости от заданных пользователем параметров определения местоположения.

Вычисление сетевых положений в рабочем процессе сетевого анализа

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

Рабочие процессы сетевого анализа на основе слоев

При выполнении анализа с использованием слоя сетевого анализа вы можете рассчитать сетевые положения заранее, при запуске инструмента Добавить положения, автоматически во время расчета или в любом их сочетании. В приведенных ниже разделах эти параметры описываются в контексте некоторых распространенных рабочих процессов.

Рабочие процессы на основе слоя, использующие инструмент Добавить положения

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

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

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

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

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

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

Рабочие процессы на основе слоев, использующие предварительно рассчитанные сетевые положения

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

Подробнее о вычислении сетевых положений и их использовании в анализе

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

Рабочие процессы на основе Python с использованием модуля Network Analyst

При выполнении анализа в Python с помощью модуля Network Analyst, arcpy.nax сетевые положения вычисляются либо предварительно, либо во время расчета. Эти варианты кратко изложены в приведенных ниже подразделах.

О том, как настроить входные данные анализа для рабочего процесса на основе Python

Рабочие процессы на основе Python без предварительно рассчитанных сетевых положений

В обычном рабочем процессе на основе Python входные данные добавляются к анализу с помощью метода load или метода insertCursor в объект механизма расчета сетевого анализа. Если существующие поля сетевых положений явно не сопоставлены, эти сетевые положения не будут вычислены до тех пор, пока не будет выполнен анализ с использованием метода solve. Режим передвижения и любые барьеры, используемые в анализе, учитываются при размещении входных объектов; учитываются также и параметры размещения, настроенные для объекта механизм расчета сетевого анализа. После выполнения анализа заполненные поля местоположения появляются в выходных данных, доступных через объект результата расчета.

Рабочие процессы на основе Python с использованием предварительно рассчитанных сетевых положений

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

О том, как заранее вычислять сетевые положения и использовать их в анализе

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

Настройки, которые влияют на то, как размещаются входные объекты

Существует несколько настроек, которые управляют поведением при размещении.

Вы можете управлять тем, какие источники ребер и соединений сети могут использоваться для размещения. Например, вы можете настроить анализ для размещения входных объектов на улицах, но не на тротуарах. Список возможных источников для размещения зависит от набора сетевых данных, которые используются для такого анализа. При выполнении сетевого анализа с использованием рабочих процессов на основе слоев вы можете изменять эту настройку с помощью параметра Критерии поиска в инструменте Добавить положения или на странице свойств слоя сетевого анализа. При выполнении анализа в Python с помощью модуля Network Analyst вы можете изменять эту настройку с помощью свойства searchSources (которое также можно использовать для создания запроса для любого источника).

Поисковый запрос позволяет ограничить поиск объектов источника сети, соответствующих определенным характеристикам, с помощью выражения SQL. Например, вы можете настроить анализ на размещение входных объектов только для объектов улиц, соответствующих определенным классам дорог. При выполнении сетевого анализа с использованием рабочих процессов на основе слоев вы можете изменять эту настройку с помощью параметра Поисковый запрос в инструменте Добавить положения или на странице свойств слоя сетевого анализа. При выполнении анализа в Python с помощью модуля Network Analyst вы можете изменять эту настройку с помощью свойства searchSources (которое также используется для управления ресурсами при размещении).

Допуск поиска определяет максимальное расстояние поиска, используемое при размещении входных объектов в сети. Если на этом расстоянии не будет найдено допустимого сетевого положения, входной объект будет считаться не размещенным. Малый допуск поиска снижает вероятность размещения "не на той" улице, но увеличивает вероятность того, что вы не найдете ни одного допустимого сетевого положения. При выполнении сетевого анализа с использованием рабочих процессов на основе слоев вы можете изменять эту настройку с помощью параметра Допуск поиска в инструменте Добавить положения или на странице свойств слоя сетевого анализа. При выполнении анализа в Python с использованием модуля Network Analyst вы можете изменять эту настройку с помощью параметров searchTolerance и searchToleranceUnits.

Примечание:
Эти параметры не поддерживаются, если источником данных сетевого анализа является ArcGIS Online или портал с версией ArcGIS Enterprise ниже, чем 11.0.

Более подробно об управлении этими настройками с помощью параметров слоя сетевого анализа

Более подробно об управлении этими настройками с помощью инструмента Добавить положения

Более подробно об управлении этими настройками для рабочих процессов с помощью модуля Network Analyst

Управление поведением размещения отдельно для каждого входного класса

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

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

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

Примечание:
Эта функция не поддерживается, если источником сетевых данных анализа является ArcGIS Online или портал, работающий под управлением версии ArcGIS Enterprise более ранней, чем 11.0.

Поля сетевого местоположения

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

Поля сетевого местоположения для точек

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

Имя поляОписаниеТип данных

SourceID

Числовой идентификатор исходного класса пространственных объектов набора сетевых данных, в котором находится входная точка.

Long

SourceOID

ObjectID объекта в источнике, на котором расположена входная точка.

Long

PosAlong

Положение направления оцифровки исходного линейного объекта. Это значение хранится как доля. Это поле пустое, если сетевое местоположение ссылается на соединение.

Double

SideOfEdge

Сторона грани по отношению к направлению оцифровки линейного объекта. Это поле ограничено доменом из двух значений: Правая сторона (1), и Левая сторона (2).

Long

SnapX

Координата x положения точки в наборе сетевых данных в системе координат набора сетевых данных.

Double

SnapY

Координата y положения точки в наборе сетевых данных в системе координат набора сетевых данных.

Double

SnapZ

Координата z положения точки в наборе сетевых данных в системе координат набора сетевых данных. Поле SnapZ равно 0, если сеть двухмерная.

Double

DistanceToNetworkInMeters

Расстояние в метрах между географическим положением точки и положением, где она находилась в сети.

Double

Поля сетевого местоположения для линий и полигонов

Линии и полигоны могут использоваться в качестве барьеров в сетевом анализе. Сетевое местоположения входных линейных или полигональных данных определяется одним полем BLOB: Locations.

Имя поляОписаниеТип данных

Locations

Информация в этом поле определяет, какие ребра и соединения сети покрыты линией или полигоном и долю покрытия для каждого покрытого элемента ребра. Вы не можете напрямую читать или редактировать информацию, содержащуюся в этом поле, но Network Analyst использует ее при выполнении анализа.

Blob

Неразмещенные входные данные

Иногда Network Analyst не может определить местоположение входных данных в сети. Чаще всего это происходит, когда в пределах заданного допуска расстояния поиска не удается найти допустимые сетевые ребра или соединения. Эти неразмещенные входные данные не могут быть использованы в сетевом анализе.

Если местоположение точки не определено, то поля сетевого расположения не заполняются. Кроме того, поле Status имеет значение 1(Not Located). Вы можете использовать поле Status для построения запроса таблицы, чтобы найти все неразмещенные входные данные. Просмотрите географические местоположения этих неразмещенных точек, чтобы определить, безопасно ли их игнорировать или их необходимо отредактировать.

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

Предварительный расчет полей сетевых положений

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

Подробнее о вычислении сетевых положений и их использовании в анализе

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

Направление движения транспортного средства, его курс, можно использовать для более точного определения его местоположения в сети.

Узнайте больше о том, как использовать направление движения при определении местоположения точек