Вычисление времени передвижения между пунктами источника и назначения с помощью матрицы источник-назначение

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

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

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

Получение данных

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

  1. Перейдите на страницу скачивания данных.
  2. Щелкните Загрузить и сохраните файл на свой компьютер.
  3. Разархивируйте загруженный файл.

Создание карты

Для создания карты выполните следующие действия:

  1. Запустите ArcGIS Pro.
  2. Создайте новый проект, щелкнув на шаблоне Карта. Также можно изменить имя и местоположение вашего проекта.

    Появится новый проект с картой.

Добавление в проект учебных данных

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

Примечание:
Если вы выполняете анализ с помощью ArcGIS Online, алгоритм решения использует высококачественный набор сетевых данных на весь мир, хранящийся в облаке ArcGIS Online, и расходует кредиты ArcGIS Online. Вы также можете использовать свой собственный набор сетевых данных, хранящийся локально на вашем компьютере, или воспользоваться ArcGIS Enterprise для публикации сервисов маршрутизации с использованием собственного набора сетевых данных и настроить сервисы на корпоративном портале для их использования в ArcGIS Pro.

Для этого добавьте набор сетевых данных на карту.

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

    Появится диалоговое окно Добавить подключение к папке.

  2. Перейдите к папке, в которую вы разместили учебные данные, дважды щелкните Network Analyst и укажите Tutorial для выбора папки.
  3. Нажмите OK.

    Будет создано подключение к папке Tutorial

  4. Затем добавьте на карту один из наборов сетевых данных, содержащихся в папке.

    Примечание:

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

  5. На панели Каталог разверните Папки > Руководство пользователя > SanFrancisco.gdb > Транспорт.
  6. Перетащите на карту Streets_ND со значком Набор сетевых данных.

    Набор сетевых данных добавляется на панель Содержание и на карту.

  7. На панели Каталог выберите Tutorial > SanFrancisco.gdb > Analysis.
  8. Щёлкните правой кнопкой мыши слой пациентов Patients и выберите Добавить к текущей картеДобавить данные.

    Слой Patients добавляется на панель Содержание и на карту.

  9. Щёлкните правой кнопкой мыши слой Hospitals и выберите Добавить к текущей картеДобавить данные.

    Слой Hospitals добавляется на панель Содержание и на карту.

Создайте матрицу Источник-Назначение (OD) между пациентами и больницами

В этом разделе вы проведете анализа матрицы стоимости источник-назначение, чтобы вычислить время в пути между каждым пациентом и каждой больницей. Вы создадите слой матрицы источник-назначение (OD), загрузите пациентов в качестве источников и больницы в качестве пунктов назначения, выполните анализ и изучите результаты.

Создание слоя Матрица Источник-Назначение

Слой анализа матрицы Источник-Назначение хранит все введенные данные, параметры и результаты анализа матрицы Источник-Назначение.

  1. На вкладке Анализ в группе Рабочие процессы щелкните Network Analysis > Стоимостная матрица Источник-Назначение Матрица Источник-Назначение.

    Новый слой Матрицы Источник-Назначение добавлен на панель Содержание. От содержит подслои со входными и выходными данными анализа.

    Слой матрицы OD ссылается на сетевой набор данных Сан-Франциско, поскольку эта сеть была установлена ​​в качестве источника сетевых данных карты при создании слоя.

    Примечание:
    Чтобы просмотреть или изменить набор сетевых данных, который будет использоваться для создания слоя сетевого анализа, на вкладке Анализ в группе Рабочие процессы вы можете щелкнуть ниспадающее меню Сетевой анализ и посмотреть ниже Источника сетевых данных. Изменение этого значения не влияет на источник сетевых данных существующих слоев сетевого анализа; обновляются только новые слои сетевого анализа, созданные после обновления источника сетевых данных.
  2. На панели Содержание щелкните Матрица ИН, чтобы выбрать составной слой.

    Появится вкладка Слой матрицы Источник-Назначение.

  3. Щелкните вкладку Слой матрицы Источник-Назначение, чтобы увидеть элементы управления вкладки.
    Вкладка Слой матрицы Источник-Назначение

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

    Подсказка:

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

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

    Эта матрица стоимости на проезд позволит вычислить время в пути между пунктами отправления и назначения.

    Более подробно о режимах передвижения

Добавление источников

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

  1. На вкладке Слой матрицы Источник-Назначение в группе Входные данные щелкните Импорт источников Импорт источников.

    Откроется окно Добавить местоположения.

  2. Убедитесь, что в качестве Входного слоя сетевого анализа установлена Матрица ИН, а в качестве ПодслояИсточники.
  3. Щелкните ниспадающее меню под Входными положениями и выберите Patients.
  4. В разделе Сопоставления полей выберите свойство Имя и для Имя поля задайте PatientID.

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

    Подсказка:

    Поле PatientID в классе объектов Patients является текстовым полем, как и поле Name в подслое источников Origins. Следовательно, если вы заполните поле Name значениями PatientID, то сможете объединить значения из таблицы Origins обратно в исходный класс объектов Patients. Однако, если ваши данные имеют уникальный идентификатор другого типа данных, объединения из поля Источники Name не будут работать, поскольку типы данных полей не будут совпадать.

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

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

  5. Остальные параметры оставьте по умолчанию и щелкните OK.

    Десять пациентов загружаются в качестве источников.

Добавление назначений

Поскольку цель состоит в том, чтобы рассчитать время в пути от пациентов до больниц, вы будете использовать класс объектов Hospitals в качестве пунктов назначения для матрицы Источник-Назначение (OD). Для этого необходимо загрузить данные из класса объектов больниц Hospitals в подслой пунктов назначения Destinations слоя матрицы OD.

  1. На вкладке Слой матрицы Источник-Назначение в группе Входные данные щелкните Импорт назначений Импорт назначений.

    Откроется окно Добавить местоположения.

  2. Убедитесь, что в качестве Входного слоя сетевого анализа установлена Матрица ИН, а в качестве ПодслояНазначения.
  3. Щелкните ниспадающее меню под Входными положениями и выберите Hospitals.
  4. В Сопоставления полей выберите свойство Имя и убедитесь, что поле NAME из входного класса пространственных объектов больниц Hospitals было автоматически сопоставлено с ним.

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

  5. Остальные параметры оставьте по умолчанию и щелкните OK.

    В качестве назначений будут загружены 22 больницы.

Запуск анализа для создания матрицы Источник-Назначение

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

  1. На вкладке Слой матрицы Источник-Назначение щелкните Запустить Запустить.

    По окончании процесса вычисления линии источник-назначение появятся на карте. Между каждой точкой отправления и каждым пунктом назначения появится прямая линия. Хотя линии прямые, время в пути, которое вы рассмотрите далее, было вычислено с учетом перемещения по дорожной сети.

  2. На панели Содержание разверните составной слой Матрица Источник-Назначение, если он еще не развернут.
  3. Щелкните подслой OD Cost Matrix:Lines правой кнопкой и выберите Атрибутивная таблица.

    Таблица атрибутов подслоя линий Lines представляет собой матрицу источник-назначение для каждого пациента по каждой больницы. Каждая строка в таблице представляет собой пару источник- назначение. В поле Total_TravelTime отображается время в пути в минутах от каждого источника до каждого назначения, поскольку в режиме передвижения Время в пути при анализе используется атрибут стоимости времени в пути TravelTime, который выражается в минутах. Другие поля с именами, начинающимися с Total_, связаны с другими атрибутами стоимости сетевых наборов данных, которые не использовались в этом анализе.

    Подробнее о схеме слоя матрицы OD

  4. Закройте таблицу атрибутов.

Определите, какие пациенты имеют ограниченный доступ к больницам

Матрица OD часто используется при изучении доступа к пунктам назначения. В следующей части этого учебного руководства вы определите, какие пациенты не могут добраться до больницы за 10 минут на машине, и внесете эту информацию в поле в классе объектов Пациенты. Вы реализуете процедуру решения на слое матрицы Источник-Назначение с обновленными настройками и используете соединения для передачи результатов обратно в класс объектов Пациенты.

Обновите настройки анализа и повторите процедуру решения

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

  1. На вкладке Слой матрицы Источник-Назначение в группе Параметры поездки в текстовом поле Пункты назначения задайте значение 1.

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

  2. На вкладке Слой матрицы Источник-Назначение в группе Параметры поездки в текстовом поле Ограничение задайте значение 10.

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

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

    Более подробно об атрибуте стоимости

  3. На вкладке слоя матрицы источник-назначение OD Cost Matrix:Origins щелкните Выполнить Запустить, чтобы повторно выполнить анализ.

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

  4. Щелкните подслой OD Cost Matrix:Lines правой кнопкой и выберите Атрибутивная таблица.

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

  5. Закройте таблицу атрибутов.

Свяжите результаты матрицы Источник-Назначение с исходными данными

Цель анализа — определить, какие пациенты имеют ограниченный доступ к больницам. В этом разделе вы объедините результаты анализа матрицы OD с классом пациентов и вычислите поле для обозначения пациентов, которые не могут добраться до больницы в течение 10 минут на машине.

    Сначала объедините данные из подслоя Линии с подслоем Источники, чтобы связать рассчитанное время передвижения с каждым источником.
  1. Щелкните правой кнопкой мыши по подслою OD Cost Matrix:Origins и выберите Соединения и связи > Добавить соединение.

    Откроется инструмент Добавить соединение.

  2. Убедитесь, что для параметра Входная таблица задано значение Origins.
  3. Задайте ObjectID для параметра Входное поле.
  4. Установите для параметра Соединяемая таблица значение OD Cost Matrix\Lines.
  5. Установите для параметра поля соединения Join Field значение OriginID.

    Поле OriginID в подслое линий Lines соответствует полю ObjectID в подслое источников Origins. Следовательно, его можно использовать для соединения.

    Диалоговое окно инструмента Добавить соединение

  6. Остальные параметры оставьте по умолчанию и щелкните OK.

    Данные из подслоя Lines объединяются с подслоем Origins.

  7. Щелкните подслой OD Cost Matrix:Lines правой кнопкой и выберите Таблица атрибутов.

    Таблица атрибутов подслоя Origins включает объединенные данные из подслоя Lines.

  8. Найдите поле Total_TravelTime и проверьте значения.

    Для двух источников значение этого поля равно null, поскольку с этими источниками не было связано ни одной записи в подслое Lines. Это пациенты, от которых не удалось добраться ни до одной больницы в течение 10 минут езды.

  9. Закройте таблицу атрибутов.
  10. Затем объедините данные из подслоя Origins со слоем Patients, который использовался в качестве входных данных для анализа матрицы Источник-Назначение. Это позволяет перенести вычисленное время в пути и идентифицировать пациентов, которые не смогли добраться до больницы в установленные сроки.
  11. Щелкните правой кнопкой мыши на слое Patients и щелкните Соединения и связи > Добавить соединение.

    Откроется инструмент Добавить соединение.

  12. Убедитесь, что для параметра Входная таблица задано значение Patients (Пациенты).
  13. Для параметра Входное поле задайте PatientID.
  14. Для параметра Соединяемая таблица задайте OD Cost Matrix\Origins.
  15. Для параметра Поле соединения задайте значение Name.

    Внимание:
    Объединенная таблица источников Origins включает два поля, называемые Name. Одно из подслоя Origins, а другое — объединенное поле из подслоя Lines. Используйте поле Name из подслоя Origins. Список полей в параметре Поле соединения может включать дополнительный текст рядом с именем поля, указывающий, из какой таблицы оно взято. Этот текст представляет собой автоматически сгенерированное имя класса объектов для подслоя Origins, которое обычно представляет собой текст Origins, за которым следуют несколько произвольных символов.

    Поскольку ранее вы сопоставили поле PatientID с полем Name подслоя Origins, значения можно использовать для соединений.

    Диалоговое окно инструмента Добавить соединение

  16. Остальные параметры оставьте по умолчанию и щелкните OK.

    Данные из матрицы OD объединяются со слоем Patients.

  17. Наконец, изучите объединенный слой Patients и определите пациентов, у которых нет доступа к больнице в пределах 10 минут езды.
  18. Щелкните правой кнопкой слой Patients и щелкните Таблица атрибутов.

    Данные из объединенного подслоя Lines и Origins слоя матрицы OD включены в таблицу атрибутов пациентов Patients.

  19. Найдите поле Total_TravelTime и изучите его значения.

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

  20. На вкладке Карта в группе Выборка щелкните кнопку Выбрать по атрибутам Выбрать по атрибуту.

    Откроется инструмент Выбрать слой по атрибуту.

  21. При необходимости установите для параметра Входные строки значение Patients.
  22. Настройте параметр Выражение для выбора пациентов, у которых поле Total_TravelTime равно null.

    Элемент управления Выражения Выбрать по атрибуту

  23. Остальные параметры оставьте по умолчанию и щелкните OK.

    Отбираются пациенты, которые не могут попасть в больницу в течение 10 минут.

  24. В таблице атрибутов для Patients найдите поле PoorAccess.
  25. Щелкните правой кнопкой мыши заголовок поля PoorAccess и выберите Вычислить поле.

    Откроется инструмент Вычислить поле.

  26. Убедитесь, что для параметра Входная таблица задано значение Patients, а для параметра Имя поля задан плохой доступ PoorAccess.
  27. Настройте параметр Выражение для вычисления поля PoorAccess со значением равным 1, установив 1 в текстовом поле с надписью Patients.PoorAccess =.

    Диалоговое окно Вычислить поле

  28. Остальные параметры оставьте по умолчанию и щелкните OK.

    Для выбранных строк полю PoorAccess присваивается значение 1.

  29. Щелкните правой кнопкой мыши на слое Patients и выберите Соединения и связи > Удалить все соединения.

    Объединенные данные удаляются из слоя пациентов Patients.

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