Доступно с лицензией Network Analyst.
Цель этого упражнения — найти наиболее оптимальные маршруты для автопарка, чтобы перевозить людей, у которых нет другого доступа к транспорту, из дома до больницы для прохождения лечения. Упражнение будет выполнено путем решения задачи выбора маршрута транспорта (VRP) с учетом парных заказов, которая связывает два последовательных заказа (остановки) так, что транспорт будет забирать пассажиров и доставлять их к месту назначения. Также будут соблюдены дополнительные требования с помощью других характеристик слоя анализа задачи VRP. Например, введите максимальное время исполнения для пары заказов, чтобы транспорт не проводил слишком много времени в пути; используйте временные окна для заказов, чтобы водители не опаздывали на встречи. Некоторым людям требуются кресла-коляски, поэтому для них нужно будет отправить транспорт со специальными подъемниками для кресел-колясок. После определения маршрутов опубликуйте их в ArcGIS.com, чтобы водители могли получить к ним доступ через Navigator.
Получение данных
Данные для этого учебного руководства доступны для скачивания.
- Перейдите на страницу скачивания данных.
- Щелкните Загрузить и сохраните файл на свой компьютер.
- Разархивируйте загруженный файл.
Создание карты
- Откройте ArcGIS Pro.
- Создайте новый проект на основе шаблона Map.aptx.
Появится новый проект с картой.
Добавление в проект учебных данных
Набор сетевых данных – интеллектуальная модель дорожной сети. Он содержит не только местоположение и атрибуты дорог, но и информацию об отношении дорог друг к другу, например, о том, какие дороги соединены, какие повороты с одной дороги на другую разрешены, а какие запрещаются, и другие данные, влияющие на доступность различных дорог и время, проведенное в дороге. Алгоритм VRP использует набор сетевых данных, определяющий самые короткие пути между остановками.
Примечание:
Если вы выполняете анализ посредством ArcGIS Online, алгоритм решения использует высококачественный набор сетевых данных на весь мир, хранящийся в облаке ArcGIS Online, и расходует кредиты ArcGIS Online. Вы также можете использовать свой собственный набор сетевых данных, хранящийся локально на вашем компьютере, или воспользоваться ArcGIS Enterprise для публикации сервисов маршрутизации с использованием собственного набора сетевых данных и настроить сервисы на корпоративном портале для их использования в ArcGIS Pro.Для этого добавьте набор сетевых данных на карту.
- На панели Каталог, находящейся по умолчанию на стороне приложения, щелкните правой кнопкой Папки и выберите Добавить подключение к папке .
Появится диалоговое окно Добавить подключение к папке.
- Перейдите к папке, в которую вы разместили учебные данные, дважды щелкните Network Analyst и укажите Tutorial для выбора папки.
- Нажмите OK.
Будет создано подключение к папке Tutorial
- На панели Каталог разверните Папки > Руководство пользователя > SanFrancisco.gdb > Транспорт.
- Перетащите на карту Streets_ND со значком набора сетевых данных .
Набор сетевых данных добавляется на панель Содержание и на карту.
- Щелкните правой кнопкой Streets_ND на панели Содержание и выберите Приблизить к слою , чтобы увидеть область Сан-Франциско.
По умолчанию, наборы сетевых данных строятся с данными о дорожном движении на текущее время их добавления на карту. Этот набор сетевых данных содержит историю трафика, то есть вы можете увидеть типичные условия дорожного движения для конкретного времени и дня недели. Не все дороги набора сетевых данных содержат данные о трафике, поэтому только некоторые из них по умолчанию показываются.
На территории, покрытой набором сетевых данных, можно осуществлять анализ сети.
Просмотр набора сетевых данных не требуется для выполнения анализа, так что в последующем вы его скроете.
- На панели Содержание снимите отметку Streets_ND, чтобы отображать только базовую карту.
- На панели Каталог выберите Tutorial > SanFrancisco.gdb > Analysis.
- На панели Каталог правой кнопкой мыши щелкните слой CentralDepots и выберите Добавить к текущей карте.
Примечание:
Также можно добавить слой, перетащив его с панели Каталог на карту.
Слой CentralDepots добавляется на панель Содержание и на карту.
После этого добавьте один из наборов сетевых данных из папки на карту.
Создание слоя Задачи выбора маршрута транспорта
Слой Vehicle Routing Problem (VRP) предоставляет структуру и свойства, необходимые для настройки и решения нескольких задач выбора маршрута транспорта. Он также содержит результаты расчета.
- На вкладке Анализ в группе Рабочие процессы щелкните Анализ сети > Задача выбора маршрута транспорта .
Слой VRP добавляется на панели Содержание. От включает подслои со входными и выходными данными анализа.
Маршрут основан на наборе сетевых данных San Francisco, поскольку эта сеть находилась на панели Содержание при создании слоя маршрута.
Примечание:
Чтобы просмотреть или изменить набор сетевых данных, который используется для создания слоя сетевого анализа, на вкладке Анализ в группе Рабочие процессы вы можете щелкнуть ниспадающее меню Сетевой анализ и посмотреть в ниспадающем меню Источник сетевых данных.
- На панели Содержание щелкните Vehicle Routing Problem для выбора составного слоя.
Вкладка Vehicle Routing Problem появляется в группе Сетевой анализ в верхней части ArcGIS Pro.
- Щелкните VRP, чтобы увидеть на вкладке элементы управления.
Вы будете использовать эти элементы управления для определения модели VRP, которую вы хотите сгенерировать.
Подсказка:
Вкладка VRP появится только при выборе вами слоя VRP на панели Содержание. Кроме того, если у вас несколько слоев VRP, вы можете изменить настройки этих слоев по отдельности или выбрать несколько слоев, чтобы изменить настройки для всех выбранных слоев, если они используют один и тот же источник сетевых данных.
Добавление заказов
В учебных данных найдите электронную таблицу. Таблица содержит сведения о каждом пациенте, включая имена и домашние адреса, название и адрес больницы, в которую они должны быть доставлены, время, когда пациента нужно подобрать и т.д. В таблице ниже приведено описание полей электронной таблицы:
Атрибут | Описание |
---|---|
OrderName1 | Имя пациента, которого нужно перевезти |
PatientAddress | Адрес, по которому нужно забрать пациента |
OrderName2 | Уникальное имя адреса назначения |
HospitalAddress | Адрес, по которому нужно доставить пациента |
PickFrom | Самое раннее время, когда пациента можно забрать по адресу PatientAddress |
PickTo | Самое позднее время, когда пациента можно забрать по адресу PatientAddress |
TotalPassengers | Общее число пассажиров, которых нужно забрать |
MaxTransitTime | Максимальное время, которое пациент может провести в машине |
SpecialityNames | Указывает особые потребности пассажира, например, кресло-коляску |
В данном случае пассажиры и больницы связаны, поскольку каждый пациент должен попасть в определенную больницу. Этот сценарий можно моделировать с помощью парных заказов, загрузив обоих пациентов и адреса больниц в классы анализа сети Заказы и связав их с новыми объектами парных заказов.
В следующих шагах адресам пациентов и больниц будут присвоены геокоды, и результирующие местоположения будут загружены как:
- На панели Каталог перейдите к местоположению данных учебника, найдите файл OrderPairs.xls и дважды щелкните его.
Файл OrderPairs.xls развернётся и вы увидите таблицу Patients$.
- Щелкните правой кнопкой мыши таблицу Patients$ и щелкните Геокодировать таблицу в контекстном меню.
Откроется мастер Геокодирования таблицы. Начальная страница – это описание шагов, которые вы пройдете.
- Щелкните кнопку Запустить.
- На вопрос Являются ли данные, которые вы хотите геокодировать, одним полем или несколькими полями? выберите Одно поле в ниспадающем списке.
- Щелкните Далее.
- Щелкните кнопку Обзор рядом с параметром Входной локатор, перейдите к сохраненному местоположению учебных данных и выберите SanFranciscoLocator.
- Щелкните Далее.
- В ниспадающем списке Данные поля выберите поле PatientAddress и щелкните Далее.
Сначала вы будете геокодировать домашние адреса пациентов.
- Для имени Входного поля убедитесь, что в нем указано Patients_Geocoded в качестве имени нового класса пространственных объектов, затем щелкните Готово.
- Просмотрите входные данные в инструменте геообработки Геокодировать таблицу и щелкните кнопку Запустить внизу панели.
- Щелкните Нет во всплывающем окне Геокодирование завершено.
Вам не нужно запускать процесс повторного сопоставления, так как имена адресов совпадают идеально. В ваших собственных рабочих процессах может потребоваться повторное сопоставление, чтобы очистить некоторую информацию об адресе.
- Повторите шаги с 1 по 11 со следующими изменениями, чтобы геокодировать местоположения больниц, в которые записаны пациенты:
- В 8 шаге выберите HospitalAddress.
- В 9 шаге измените имя Входного поля на DestinationHospitals_Geocoded.
Вы можете обновить инструмент геообработки Геокодировать таблицу с указанными выше значениями и перезапустить инструмент, не возвращаясь назад к мастеру.
- На панели Содержание отключите два слоя результатов геокодирования, чтобы они стали невидимыми на карте.
В следующих шагах эти слои будут загружены в класс анализа сети Заказы.
- На вкладке VRP в группе Входные данные щелкните Импорт Заказов.
Откроется окно Добавить местоположения.
- Убедитесь, что в качестве Входного слоя сетевого анализа установлен слой Vehicle Routing Problem, а в качестве Подслоя – Заказы.
- Щелкните стрелку ниспадающего меню под Входными местоположениями и выберите Patients_Geocoded. Это класс точечных объектов, созданный вами на предыдущих этапах, который был автоматически добавлен на карту.
- Под Сопоставлением полей выберите Имя из Свойств и выберите USER_OrderName1 в параметре Имя поля.
- Сопоставьте следующие поля, если они не автоматизированы:
- Description > USER_PatientAddress
- TimeWindowStart > USER_PickFrom
- TimeWindowEnd > USER_PickTo
- PickupQuantity_1 > USER_TotalPassengers
- Под Сопоставлением полей выберите ServiceTime из Свойств и введите 2 в параметре Значение по умолчанию.
Все загруженные адреса пациентов имеют значение 2 для свойства ServiceTime, которое означает время (в минутах) посадки в машину для каждого пассажира.
- Под Сопоставлением полей выберите MaxViolationTime из Свойств и введите 0 в параметре Значение по умолчанию.
Установив для всех свойств MaxViolationTime значение 0, инструмент решения задачи VRP будет искать только маршруты для заказов в указанное время.
- Остальные параметры оставьте по умолчанию и щелкните OK.
- Повторите шаги с 14 по 16 со следующими изменениями:
- В шаге 16 выберите DestinationHospitals_Geocoded.
- Сделайте следующие сопоставления полей:
- Name > USER_OrderName2
- Description > USER_HospitalAddress
- DeliveryQuantity_1 > USER_TotalPassengers
- Остальные параметры оставьте по умолчанию и щелкните OK.
Примечание:
Сообщение об ошибке появится, если требуемый драйвер Microsoft не установлен. Смотрите как работать с файлами Excel в ArcGIS Pro.Всего в таблицу атрибутов Заказы добавлено 15 записей, которые отображаются на карте.
Примечание:
Значение для атрибута Name должно быть уникальным в классе анализа сети Заказы. В данном случае есть несколько пациентов, которым нужно посетить одну и ту же больницу. Если бы адреса больниц использовались для выведения значения атрибута Name для Заказов, инструмент решатель VRP вернул бы сообщение об ошибке из-за повторяющихся значений Name.Всего в таблицу атрибутов Заказы добавлено 15 записей, которые отображаются на карте.
Добавление парных заказов
Пассажиров нужно доставлять в определенную больницу. Добавляя объекты в класс анализа сети Пары заказов, можно указать, в какую больницу нужно отвезти пациентов и максимальное время, которое пациенты могут провести в машине в течение поездки в одну сторону.
- На вкладке VRP в группе Входные данные щелкните Импорт пар заказов в ниспадающем списке импорт опций.
Откроется окно Добавить местоположения.
Ранее вы использовали этот инструмент для загрузки заказов из класса пространственных объектов. Теперь вы будете использовать его для загрузки данных в таблицу OrderPairs из таблицы Excel.
- Убедитесь, что в качестве Входного слоя сетевого анализа установлен слой Vehicle Routing Problem, а в качестве Подслоя – Order Pairs.
- Щелкните кнопку обзора рядом с полем Входные положения и перейдите к местоположению учебных данных, чтобы выбрать таблицу Patients$ из файла OrderPairs.xls.
- Убедитесь, что следующие сопоставления полей заполнены автоматически:
- FirstOrderName > OrderName1
- SecondOrderName > OrderName2
- MaxTransitTime > MaxTransitTime
- Остальные параметры оставьте по умолчанию и щелкните OK.
Всего в таблицу OrderPairs добавлено 15 записей.
Добавление станций
Логистическая компания использует машины из трех станций, указанных в слое пространственных объектов CentralDepots, который вы ранее добавили на карту. Эти точечные объекты необходимо добавить в класс сетевого анализа Depots.
- На вкладке VRP в группе Входные данные щелкните Import Depots.
Откроется окно Добавить местоположения.
- Убедитесь, что в качестве Входного слоя сетевого анализа установлен слой Vehicle Routing Problem, а в качестве Подслоя – Depots.
- Щелкните стрелку ниспадающего меню под Входными местоположениями и выберите CentralDepots.
- Под Сопоставлением полей выберите Name из Свойств и убедитесь, что Name автоматически сопоставлено в параметре Имя поля.
- Остальные параметры оставьте по умолчанию и щелкните OK.
Три записи добавляются в таблицу атрибутов Depots и отображаются на карте.
Добавление маршрутов
У логистической компании три машины, каждая из которых может перевозить не более шести пассажиров. Машины уезжают с автобазы и возвращаются на нее после выполнения маршрута. Одна из машин, работающих в центре, оборудована для погрузки кресел-колясок.
Вы добавите три маршрута, по одному для каждой машины. В этом разделе вы добавите маршруты, используя таблицу атрибутов Routes. Другие варианты – использовать инструмент Добавить положения , чтобы импортировать уже созданную вами таблицу, или использовать инструмент геообработки Добавить маршруты для задачи выбора маршрута транспорта, который создаст набор маршрутов с теми же параметрами. В конкретном случае у нас достаточно настроек для маршрута, чтобы самым быстрым способом было ввести значения непосредственно в таблицу.
- На панели Содержание щелкните правой кнопкой мыши Маршруты и выберите Таблицу атрибутов из контекстного меню.
Появится таблица атрибутов с входными и выходными полями для каждого маршрута.
- Щелкните Щелкните, чтобы добавить новую строку, чтобы добавить информацию для трех маршрутов, как показано ниже:
Name StartDepotName EndDepotName Capacity_1 Центр города
Автобаза в центре города
Автобаза в центре города
6
Норт-Бей
Автобаза Северной бухты (North Bay)
Автобаза Северной бухты (North Bay)
6
Восточная бухта
Автобаза Восточной бухты (East Bay Depot)
Автобаза Восточной бухты (East Bay Depot)
6
- Щелкните вкладку Редактирование и в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
- Закройте таблицу атрибутов Routes.
Добавление специальных условий
Некоторые из пациентов находятся в инвалидной коляске, но только у одного из фургонов есть лифт, чтобы обеспечить легкий доступ в и из транспортного средства для этих пациентов. Поэтому вы будете устанавливать специальное условие, чтобы указать, что эти пациенты нуждаются в опции, которая предоставляется только по этому маршруту. Если вы посмотрите на документ Excel, который был предоставлен вместе с учебными данными, вы увидите, что трое пациентов нуждаются в инвалидной коляске: Тони, Тим и Билл. Кроме того, дорога в центр города - только с помощью фургона, оборудованного подъемником для инвалидных колясок. В следующем наборе шагов вы добавите значения в таблицы атрибутов Order Specialties и Route Specialties, чтобы указать эту информацию.
Сначала вы введете информацию о заказе специальных условий.
- На панели Содержание правой кнопкой мыши щелкните Order Specialties и выберите Открыть в контекстном меню.
Появится таблица атрибутов, и вы можете ввести информацию о каждом заказе специальных условий.
- Щелкните кнопку Щелкните, чтобы добавить новую строку, чтобы добавить информацию, как показано ниже:
OrderName SpecialtyName Tony (Home)
Wheelchair
Tony (Doctor)
Wheelchair
Tim (Home)
Wheelchair
Tim (Doctor)
Wheelchair
Bill (Home)
Wheelchair
Bill (Doctor)
Wheelchair
- Щелкните вкладку Редактирование и в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
- Закройте таблицу атрибутов Order Specialties.
- На панели Содержание щелкните правой кнопкой мыши Route Specialties и выберите Открыть в контекстном меню.
Появится таблица атрибутов, и вы можете ввести информацию о каждом маршруте, на котором могут быть обеспечены специальные условия.
- Щелкните кнопку Щелкните, чтобы добавить новую строку.
- Для RouteName, введите Downtown.
- Для SpecialtyName, введите Wheelchair.
- Щелкните вкладку Редактирование и в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
- Закройте таблицу атрибутов Route Specialties.
Добавление зон маршрутов
Компания использует три машины, которые имеют лицензии на обслуживание заказов только в определенной зоне. Нужно добавить зоны маршрутов и связать их с машинами или маршрутами.
В этом разделе вы будете рисовать границы этих зон с помощью панели Создать объекты, однако, если у вас уже есть оцифрованные зоны, их можно импортировать с помощью инструмента геообработки Добавить положения.
- На вкладке VRP в группе Входные данные щелкните Создать объекты .
Появится панель Создать объекты, показывающая шаблоны для классов объектов, связанных с выбранным слоем VRP.
- На панели Создать объекты выберите Vehicle Routing Problem : Route Zones.
- На карте нарисуйте многоугольник, который в общих чертах охватывает центр города, как показано ниже.
- На панели Содержание щелкните правой кнопкой мыши Route Zones и выберите Таблицу атрибутов в контекстном меню.
Появится таблица атрибутов, и вы можете ввести информацию о зоне маршрута, которую вы только что создали.
- Дважды щелкните в первой строке под RouteName, чтобы изменить значение и тип Downtown.
Это название маршрута, с которым связана эта зона маршрута.
- Проверьте, что значение IsHardZone установлено на True.
Машина не может обслуживать заказы, которые не входят в зону маршрута. Если это свойство имеет значение True, то машина будет получать только те заказы, которые относятся к зоне маршрута.
- Повторите шаги 3–5, чтобы добавить две другие зоны маршрута: одну для района Северной бухты и другую для района Восточной бухты.
- Щелкните вкладку Редактирование и в группе Управление изменениями щелкните кнопку Сохранить .
- Щелкните Да в диалоговом окне Сохранить изменения.
- Закройте таблицу атрибутов Route Zones.
Задание свойств для анализа задачи выбора маршрута
Далее вы зададите свойства для анализа задачи выбора маршрута транспорта.
- На вкладке VRP в Настройках передвижения убедитесь, что Режим установлен на Время в пути.
Этот режим движения включает в себя несколько параметров, таких как правила разворота, правило ограниченных улиц и значения, используемые для затрат времени и расстояния.
- В группе Настройки передвижения убедитесь, что Единицы поля времени установлены на Минуты и Единицы поля расстояния установлены на Мили.
- В группе Данные по умолчанию выберите День недели из ниспадающего списка Тип даты по умолчанию.
- Из ниспадающего списка с днями недели выберите Понедельник.
- В группе Выходная геометрия выберите Вдоль сети из ниспадающего списка Тип линейной формы выходной геометрии.
Примечание:
Опции выходной геометрии влияют только на отображение маршрутов, а не на результаты, определенные инструментом решения задачи VRP.
Запуск анализа
Запустите анализ VRP, чтобы определить наилучший маршрут.
- На вкладке VRP щелкните Запустить .
Инструмент решения задачи VRP вычислит маршруты для каждой машины. Каждый маршрут начинается на автобазе, фургон подбирает одного или двух человек, если время, которое они могут провести в машине, меньше значения свойства MaxTransitTime, указанного в парном заказе, отвозит их в нужную больницу, продолжает подбирать и отвозить других людей и в конце возвращается на автобазу. Маршруты обслуживают только заказы в заданных зонах маршрутов.