Для успешного выполнения сетевого анализа входные данные для анализа должны быть расположены в сети, используемой для анализа. Вычисление сетевых положений для большого количества входных объектов может быть трудоемким процессом. Если вы планируете использовать одни и те же входные данные для нескольких анализов с использованием одного и того же набора сетевых данных и параметров анализа, вы можете сэкономить время обработки, предварительно рассчитав поля сетевого местоположения.
Используйте инструмент Вычислить положения для предварительного вычисления сетевых местоположений.
Инструмент Вычислить положения вычисляет сетевые местоположения для класса входных объектов и сохраняет информацию в полях сетевого положения, которые добавляются в класс пространственных объектов. Эти поля можно использовать, когда класс объектов используется в качестве исходного для сетевого анализа.
Внимание:
Инструмент Вычислить положения не может использовать URL сервиса сетевого анализа в качестве входной сети. Нельзя напрямую провести предварительное вычисление местоположений для сервиса.
Вы не можете предварительно рассчитать и использовать сетевые местоположения для сервиса ArcGIS Online, поскольку используемые им сетевые данные часто обновляются и недоступны для клиентов. Однако вы можете предварительно рассчитать поля местоположений для анализа с помощью сервиса маршрутизацииArcGIS Enterprise, если у вас есть доступ к сетевому набору данных, который использовался при публикации этого сервиса. Вы можете использовать этот сетевой набор данных на локальном компьютере в качестве входного в инструменте Вычислить положения для предварительного вычисления сетевых местоположений. Поля сетевого местоположения, рассчитанные с помощью этого инструмента, могут быть использованы в анализе, ссылающемся на данный сервис.
Допустимость предварительно рассчитанных полей сетевого местоположения
Предварительно вычисленные поля местоположения действительны только для набора сетевых данных и режима передвижения, для которых они были вычислены. Если вы планируете использовать эти точки с другой сетью или режимом передвижения, пересчитайте поля местоположения. Кроме того, если вы редактируете и перестраиваете набор сетевых данных, пересчитайте все сохраненные поля местоположения на случай, если изменения повлияют на расположение входных данных.
Использование предварительно рассчитанных сетевых местоположений в анализе
Предварительно рассчитанные поля сетевого местоположения передаются на подуровень или класс входного анализа посредством сопоставления полей. Этот рабочий процесс зависит от того, используете ли вы слой сетевого анализа или модульNetwork Analyst Python, он описан в подразделах ниже.
При сопоставлении полей сетевого местоположения для анализа сопоставляйте только поля SourceID, SourceOID, PosAlong и SideOfEdge. Поля SnapX, SnapY, SnapZ и DistanceToNetworkInMeters являются информационными и не требуются при определении местоположений для анализа.
Использование предварительно рассчитанных сетевых местоположений для рабочих процессов сетевого анализа на основе слоев.
При выполнении анализа с использованием слоя сетевого анализа вы можете сопоставить предварительно вычисленные поля местоположения, когда вы добавляете входные данные в слой анализа с помощью инструмента Добавить местоположения. Для этого используйте параметр Сопоставление полей, чтобы сопоставить поля сетевого местоположения из входных объектов со свойствами сетевого местоположения. Если вы используете диалоговое окно этого инструмента, установите параметр Соответствие полей на Использовать поля сетевого местоположения, чтобы включить это сопоставление.
Использование предварительно рассчитанных сетевых местоположений для рабочих процессов сетевого анализа на основе Python с применением модуля Network Analyst.
При выполнении анализа с помощью Python с использованием модуля Network Analyst поля сетевого местоположения могут использоваться для добавления входных данных с использованием методов load или insertCursor. С помощью метода insertCursor вы можете указать поля сетевого местоположения таким же образом, как и в любом другом поле. Для рабочих процессов, использующих метод load, вы можете сопоставить поля сетевого местоположения из входных данных с полями входного класса с помощью методаfieldMappings, установив для параметра use_location_fieldsзначение True. После создания сопоставлений полей с полями сетевого местоположения их можно использовать в параметре field_mappings метода load.
Более подробное описание этих процедур, включая примеры кода, приведено в разделе Задание входных данных анализа.
Предварительно рассчитанные сетевые местоположения и автоматическое перемещение во время расчета
По умолчанию существующие поля сетевого местоположения проверяются при выполнении анализа, чтобы убедиться, что они допустимы и доступны. Поля сетевого местоположения отдельных входных данных могут автоматически пересчитываться во время решения при следующих обстоятельствах:
- Входные данные не содержат полей сетевого местоположения, или поля местоположения являются недопустимыми или неполными.
- Поле ввода Status указывает, что он не найден, не достигнут или не находится в ближайшем возможном сетевом местоположении.
- Входные данные расположены на сетевом элементе, который ограничен режимом перемещения, используемым для анализа.
- Вход перекрыт барьером.
Кроме того, для слоя сетевого анализа все входные данные будут автоматически перемещены во время решения, если набор сетевых данных был перестроен или настройки местоположения были изменены на странице свойств слоя с момента последнего выполнения решения для слоя сетевого анализа. В этом случае все предварительно рассчитанные сетевые местоположения будут обновлены и перезаписаны.
Во многих случаях такое автоматическое перемещение является желаемым поведением, особенно при наличии барьеров, которые не используются при предварительном расчете сетевых местоположений. В этом случае важно, чтобы слой сетевого анализа или объект решателя Python были настроены с теми же параметрами определения местоположения, которые использовались при предварительном расчете сетевых местоположений. Входные данные, на которые влияют барьеры, будут перемещены, чтобы избежать влияния барьеров, а поля местоположения других входных данных, перемещенных по разным причинам, не изменятся, поскольку применяются те же настройки местоположения.
Хотя применение автоматического перемещения в некоторых случаях полезно, существуют и другие обстоятельства, при которых вы можете предпочесть отключить эту опцию. В частности, если вы не используете барьеры в анализе, такое поведение имеет минимальное значение. Если для анализа настроены те же параметры определения местоположения, которые вы использовали при предварительном расчете сетевых местоположений, при автоматическом перемещении снова будут найдены те же сетевые местоположения. Вы также можете получить небольшое повышение производительности, пропустив шаг автоматического перемещения.
При выполнении сетевого анализа с использованием рабочих процессов на основе слоев вы можете настроить эту установку с помощью параметра Разрешить автоматическое перемещение во время решения в инструменте Добавление местоположений или на странице свойств слоя сетевого анализа. При выполнении анализа в Python с использованием модуля Network Analyst вы можете настроить этот установочный параметр с помощью свойства allowAutoRelocate.
Независимо от значения этого параметра, ввод любых данных без полей сетевого местоположения или неполных полей местоположения будет обнаружен во время решения с использованием параметров определения местоположения, настроенных для анализа. Аналогично, если набор сетевых данных перестраивается или изменяются другие параметры определения местоположения, то существующие поля местоположения считаются недействительными, и все местоположения пересчитываются во время решения независимо от значения данного параметра.