Публикация сервиса объектов
В этом учебном пособии вы создадите размещенный векторный слой в ArcGIS Online, который будет отображать данные о техасских водохранилищах в реальном времени. Сначала вы загрузите данные о техасских водохранилищах. Затем вы будете использовать эту информацию для публикации размещенного векторного слоя и настройки его вида. Вы настроите скрипт Python для обновления векторного слоя и зададите задачу Windows для его запуска. Слой данных объектов техасских водохранилищ будет перезаписываться по мере появления новых данных, поэтому любые веб-карты, основанные на представлении объектов, всегда будут отображать самую последнюю информацию.
Доступ к данным о техасских водохранилищах в реальном времени.
Сначала вы получите доступ к информации о техасских водохранилищах с веб-сайта Water Data for Texas. Затем вы загрузите данные в формате GeoJSON и сохраните их локально.
- В браузере перейдите на веб-сайт Water Data for Texas. Прокрутите вниз и под диаграммой Statewide Conservation Storage щелкните Recent Averaged Storage Conditions и щелкните GeoJSON.
Веб-сайт перенаправляет вас по адресу https://www.waterdatafortexas.org/reservoirs/statewide/recent-conditions.geojson, который содержит данные о техасских водохранилищах, близкие к реальному времени. Это файл GeoJSON. Для каждого техасского водохранилища он содержит такую информацию, как местоположение (координаты), название, емкость, процент заполнения и время последнего обновления (метка времени).
Примечание:
Сайт Water Data for Texas является динамичным. Он часто обновляется, как только появляются новые данные. Значение метки времени для каждого резервуара отображает время последнего обновления. - Щелкните страницу и нажмите Ctrl + A, чтобы выделить весь текст на странице последних данных, затем щелкните правой кнопкой мыши и щелкните Копировать. Вы также можете нажать Ctrl + C, чтобы скопировать текст.
- Откройте текстовый редактор, например Notepad++ и нажмите Ctrl + V, чтобы вставить текст в новый файл.
- Сохраните файл на свой локальный компьютер. В окне Сохранить как перейдите к папке на вашем компьютере, например C:\Temp\, и введите в качестве имени файла recent-conditions.geojson. Для Сохранить как тип выберите Все файлы.
Примечание:
После сохранения проверьте файл в локальной папке, чтобы убедиться, что расширение файла - .geojson, а не .geojson.txt.
Добавьте элемент в ArcGIS Online
Вы будете использовать локальный GeoJSON-файл данных техасских водохранилищ, чтобы создать размещенный векторный слой в ArcGIS Online.
- Войдите под учётной записью организации ArcGIS.
Примечание:
Если у вас нет учетной записи организации, см. варианты доступа к программному обеспечению.
- При необходимости щелкните Ресурсы и щелкните Мои ресурсы.
- Щелкните Новый элемент.
- Перетащите файл recent-conditions.geojson, который вы только что сохранили, на панель загрузки.
- Примите опцию по умолчанию Добавить recent-conditions.geojson и создать размещенный векторный слой и щелкните Далее.
- Подтвердите значения по умолчанию, указанные на странице Поля, и нажмите Далее.
- На следующей странице панели Новый элемент введите следующее:
- Для Заголовка введите TX_reservoirs_recent_ и ваше имя или инициалы.
- Для Тегов введите Texas, Reservoir, Recent Conditions и нажмите Enter после каждого.
- В качестве Краткой информации введите Near real-time reservoir information for Texas.
- Щелкните Сохранить.
Процесс может занять некоторое время. По завершении появляется страница Обзор для размещенного векторного слоя TX_reservoirs_recent_ (ваше имя). В дополнение к этому слою, копия файла TX_reservoirs_recent GeoJSON добавляется в ваш раздел Мои ресурсы.
Вы получили доступ к информации о техасских водохранилищах в режиме реального времени и создали размещенный сервис объектов в ArcGIS Online. Далее вы будете использовать сервис объектов для создания представления слоя. Представление можно настроить, опубликовать и добавить в свои приложения. Создание представления позволяет обновлять сервис объектов, не нарушая символы и всплывающие окна слоя. Это упрощает процесс обновления данных.
Создание представления размещенного векторного слоя
Далее вы создадите представление размещенного векторного слоя из размещенного векторного слоя, опубликуете его для общего доступа, обновите символы и настроите всплывающие окна.
Создание представления размещенного векторного слоя
Созданный вами векторный слой Техасских водохранилищ будет перезаписан при появлении новой информации. Процесс перезаписи удалит любые пользовательские символы и всплывающие настройки и вернет их к настройкам по умолчанию. Чтобы избежать изменения способа отображения данных на ваших веб-картах и в приложениях, вы создадите представление размещенного векторного слоя в ArcGIS Online и настроите его символы и параметры всплывающих окон. Они останутся прежними и отобразят последние данные после того, как размещенный векторный слой будет перезаписан.
- В векторном слое TX_reservoirs_recent_(ВашеИмя) на странице Обзор щелкните Создать слой представления, затем щелкните Слой представления.
- В окне Создать слой представления на панели Слои по умолчанию выбран слой TX_reservoirs_recent_(ваше имя) - points. Щелкните Далее дважды.
На панели Включенные слои можно задать определения слоев, чтобы узнать больше об этих опциях в см. раздел Создание представлений размещенных векторных слоев.
- В панели Создать введите следующее:
- Для Заголовка введите Texas Reservoirs Recent Conditions (ваше имя).
- Для Папка вы можете дополнительно указать папку, в которой хотите сохранить представление слоя.
- Для Тегов введите Water, Texas, Reservoirs, Environment, Natural Resources, Live Feeds, livefeeds, нажимая Enter после каждого.
- Для Краткой информации вы можете при желании указать дополнительный текст о слое представления.
- Нажмите Создать. После создания представления появится всплывающее окно Успешно. Закройте окно.
Новый элемент представления размещенного векторного слоя создается из размещенного векторного слоя, и появляется страница сведений об элементе для нового представления векторного слоя.
- На странице Обзор щелкните Общий доступ, выберите Для всех (общий) и щелкните Сохранить.
Представление размещенного векторного слоя теперь опубликовано и доступно для всех.
- Щелкните Ресурсы.
На странице Мои ресурсы теперь есть три элемента: файл GeoJSON, размещенный векторный слой и представление.
Примечание:
Рекомендуется использовать представление размещенного векторного слоя для публикации, оставляя исходный размещенный векторный слой защищённым. Вы можете изменить всплывающее окно и символы представления размещенного векторного слоя, не изменяя исходный размещенный векторный слой. Во время процесса обновления размещенный векторный слой может быть перезаписан, и новые значения будут отражены в представлении размещенного векторного слоя. Символы представления размещенного векторного слоя сохраняются вместе с ним и не затрагиваются при перезаписи исходного слоя.Изменение символов
В этом представлении размещенного векторного слоя есть данные о водохранилищах Техаса. Вы будете настраивать его символы, чтобы лучше представлять информацию в слое, используя емкость водохранилищ для разных размеров объектов и используя текущий процентный уровень для разных цветов.
- Щелкните векторный слой Texas Reservoirs Recent Conditions_(ваше имя), чтобы открыть страницу элемента представления размещенного векторного слоя.
На вкладке Обзор появится страница элемента для Texas Reservoirs Recent Conditions_(ваше имя).
- Щелкните Открыть в Map Viewer.
- При необходимости на панели Слои щелкните слой Texas Reservoirs Recent Conditions, чтобы активировать его.
- На панели инструментов Настройки (светлая) щелкните Стили.
- В разделе Выбрать атрибуты щелкните кнопку Поле.
- В появившемся окне Выбрать поля выберите percent_full и conservation_capacity, после чего щелкните Добавить.
Атрибуты добавляются на панель Стили.
- Перетащите percent_full выше conservation_capacity.
- В разделе Выбрать стиль для Цвет и Размер щелкните Опции стиля.
- Для Числа и количества (цвет) щелкните Опции стиля.
- На панели Опции стиля на гистограмме щелкните разрыв минимального значения, введите 50 и нажмите Enter.
- Щелкните цветовую схему под Стилем символа.
- В открывшейся панели Стиль символа в разделе Заливка щелкните сине-серую цветовую шкалу (она называется Blue 10) и нажмите OK.
Чтобы узнать название цветовой шкалы, наведите на нее указатель мыши.
- На панели Опции стиля щелкните Готово.
- Для Чисел и количества (размер) щёлкните Опции стиля.
- Щелкните символ в разделе Стиль символа. На появившейся панели Стиль символа в разделе Цвет контура щелкните кнопку Редактировать.
- В разделе Hex удалите и замените текущее значение на #283849 и нажмите Enter.
- На панели Опции стиля щелкните Готово, а затем еще два раза щелкните Готово.
Символы для слоя установлены. Далее вы настроите карту и сохраните ее.
- В панели инструментов Содержание (темная) щелкните Базовая карта и щелкните Светло-серое полотно.
Символы для слоя и базовой карты теперь установлены.
Финальная карта показывает последние состояния водохранилищ в Техасе. Цвет каждой точки представляет процент заполнения каждого резервуара, а размер точки представляет общую емкость резервуара.
Настройка всплывающего окна
Вы улучшите всплывающее окно для слоя, чтобы отображать только релевантную информацию. Вы покажете название, емкость и процент заполнения для каждого водохранилища.
- На панели инструментов Настройки щелкните Всплывающие окна.
- На панели Всплывающие окна разверните Заголовок, удалите существующий текст и щелкните кнопку Добавить поле.
Появится окно Добавить поле.
- В ниспадающем списке выберите full_name.
Во всплывающем заголовке теперь будет отображаться содержимое атрибута full_name.
- В Списке полей щелкните кнопку Опции и выберите Удалить.
- Щелкните кнопку Добавить ресурсы и щелкните Текст.
Появится текстовое окно.
- В текстовом окне введите {percent_full}% заполнения на {timestamp} и щелкните OK.
Имена полей атрибутов в фигурных скобках будут заменены значениями из этих полей при открытии всплывающего окна при щелчку на объекте.
Всплывающее окно при щелчке по объекту теперь будет отображать заголовок и текст, которые вы настроили.
Вы по-прежнему можете улучшить формат полей, настроив способ отображения каждого поля.
- На панели инструментов Настройки щелкните вкладку Поля и щелкните поле percent_full.
- Измените Отображаемое имя на Percent Full (%), и в ниспадающем меню Значащие цифры выберите 0 десятичных знаков.
- Щелкните Готово.
- На панели инструментов Содержание щелкните Сохранить и открыть, а затем выберите Сохранить как.
- В окне Сохранить карту заполните следующее:
- В поле Заголовок введите Texas Reservoirs (ваше имя)
- Добавьте Теги, Вода, Texas и Reservoirs.
- В поле Краткая информация введите Карта водохранилищ Техаса, отображающая заполненность и емкость в процентах в режиме реального времени.
- Щелкните водохранилище на карте.
Во всплывающем окне отображается название водохранилища, процент заполнения и дата и время последнего обновления.
Вы можете создать представление размещённого векторного слоя в ArcGIS Online из ранее размещенных векторных слоёв. Представление размещенного векторного слоя позволяет настроить отображение слоя водохранилищ Техаса и сохранить эти настройки даже при перезаписи размещенного векторного слоя. Далее вы перезапишете размещенный векторный слой Техасских водохранилищ, используя простой скрипт Python. Обновленная информация будет автоматически отражена в представлении размещенного векторного слоя.
Обновление размещенного векторного слоя
Теперь вы настроите короткий скрипт для перезаписи размещенного векторного слоя техасских водохранилищ. Сначала вы скачаете скрипт перезаписи из ArcGIS Online. Затем вы получите параметры размещенного векторного слоя, такие как заголовок элемента и идентификатор элемента. Наконец, вы запустите скрипт локально с помощью командной строки Python. Процесс перезаписи позволяет вам обновлять размещенный векторный слой самой последней информацией.
Загрузка скрипта перезаписи
Сначала загрузите скрипт для перезаписи размещенного векторного слоя в ArcGIS Online.
- Загрузите файл OverwriteFS.zip на свой компьютер.
Файл .zip содержит два файла: скрипт Python (OverwriteFS.py) и документ (ReadMe.pdf).
- Извлеките содержимое файла .zip в папку на вашем компьютере, например в C:\Temp\.
- Откройте простой текстовый редактор, например Блокнот или Notepad++, чтобы добавить новый, пустой текстовой файл.
- В ArcGIS Online под Моими ресурсами щелкните размещенный векторный слой TX_reservoirs_recent_(ваше имя).
Вы должны знать заголовок и ID элемента размещенного векторного слоя, чтобы обновить его. Вы сохраните эту информацию в текстовом документе для того, чтобы сослаться на нее.
- На странице Обзор элемента TX_reservoirs_recent скопируйте заголовок элемента и вставьте его в текстовый файл.
- Скопируйте ID элемента в конце URL-адреса элемента и вставьте его в текстовый файл. Сохраните файл, но оставьте его открытым, эта информация вам потребуется в ближайшее время.
В этом примере заголовок элемента – TX_reservoirs_recent_(ваше имя) и ID элемента – 4309a6d6bb77477f986acba13b5f9ef6. ID элемента уникален для каждого элемента в ArcGIS Online. ID вашего элемента будет другим.
Сохранение учетных данных ArcGIS Online локально
ArcGIS Online требует учетные данные для перезаписи элементов. Вы будете хранить учетные данные ArcGIS локально в безопасном профиле. Этот профиль будет использоваться в скрипте Python для перезаписи размещенного векторного слоя водохранилищ.
- Откройте меню Пуск Windows, найдите командную строку Python и откройте ее.
- Введите cd и введите путь к папке, в которую вы извлекли скрипт OverwriteFS.py, и нажмите Enter.
Например, если вы извлекли скрипт в C:\Temp, вы должны ввести cd C:\Temp.
- Введите python и нажмите Enter.
Это запускает консоль Python в окне командной строки Python. Версия Python отмечается в консоли, и строка ввода изменяется на >>>.
Затем вы импортируете модуль Python arcgis.
- В консоли Python введите import arcgis и нажмите Enter.
Примечание:
Командная строка Python и модуль Python arcgis включены в установку ArcGIS Pro.Теперь вы будете хранить свои учетные данные ArcGIS Online локально, добавив профиль.
- Введите команду gis = arcgis.GIS(profile='learn_user', username= '<account>', password= '<pass>'), замените <account> своим именем пользователя и своим паролем. Нажмите Enter.
Примечание:
Ваши учетные данные ArcGIS Online будут надежно сохранены в профиле learn_user. Вы можете узнать больше о локальном хранении учетных данных ArcGIS Online в профиле, посетив страницу Работа с разными схемами аутентификации. - Введите команду exit(), чтобы закрыть консоль Python и вернуться в командную строку.
Перезапись размещенного векторного слоя
Теперь используйте скрипт перезаписи Python, профиль ArcGIS Online и параметры размещенного векторного слоя (ID элемента и заголовок), чтобы обновить размещенный векторный слой водохранилищ.
- В командной строке Python в папке C:\Temp\, содержащей скрипт OverwriteFS.py, выполните следующую команду: python OverwriteFS.py learn_user <item id> <item title> <GeoJSON URL>, заменяя <id элемента> и <заголовок элемента> параметрами размещенного векторного слоя, который вы сохранили в текстовом файле.
В этом коде learn_user - это профиль ArcGIS Online, сохраненный локально. Замените <id элемента> и <заголовок элемента> параметрами размещенного векторного слоя, которые вы сохранили в текстовом файле. В этом примере вы замените <item id> на 3b2b385c923147349dec02025e10aa55 и <item title> на TX_reservoirs_recent_(ваше имя). Вы должны заменить <GeoJSON URL> - URL-адрес источника данных обновленными данными, https://www.waterdatafortexas.org/reservoirs/statewide/recent-conditions.geojson.
Примечание:
Поскольку вы уже создали размещенный векторный слой с использованием самых последних данных, скрипт не внесет никаких изменений. Вместо этого вы можете временно использовать файл из https://downloads.esri.com/learnarcgis/schedule-automated-near-real-time-data-updates/recent-conditions.geojson, который содержит моментальный снимок файла recent-conditions.geojson на 26 декабря 2019 года.Если вы запустите его с URL-адресом живого сайта Texas water, команда будет выглядеть следующим образом (ID элемента будет другим):
python OverwriteFS.py learn_user 20af483d68e54ff5835753de0e90ce27 TX_reservoirs_recent_(yourname) https://www.waterdatafortexas.org/reservoirs/statewide/recent-conditions.geojson
Если вы загрузите снимок файла recent-conditions.geojson на 26 декабря 2019 г., сохраните его в папке C:\Temp\, в которой работаете (замените существующий файл). Эта команда будет выглядеть следующим образом (ID элемента будет другим, а путем будет путь к локальному файлу, а не URL-адрес):
python OverwriteFS.py learn_user 20af483d68e54ff5835753de0e90ce27 TX_reservoirs_recent_(yourname) c:\Temp\recent-conditions.geojson
Нажмите Enter, чтобы выполнить команду.
В командной строке отображаются результаты. Сообщение Performing Overwrite… Success! Elapsed Time в конце означает, что скрипт правильно обновил размещенный векторный слой.
- В браузере откройте карту Texas Reservoirs в Map Viewer Classic. Щелкните любой резервуар, чтобы просмотреть его всплывающее окно.
Во всплывающем окне отображаются обновленные значения времени и заполнения в процентах. Символы представления размещенного векторного слоя останутся такими, как вы их установили.
Вы запустили скрипт Python для перезаписи размещенного векторного слоя в ArcGIS Online. Затем вы создадите и запланируете задачу в Windows для автоматического запуска скрипта перезаписи через регулярные промежутки времени.
Создание и планирование задачи
Вы запустили скрипт Python для обновления размещенного векторного слоя. Теперь вы автоматизируете запуск скрипта, планируя задачу в Windows. Во-первых, вы создадите файл .bat. Затем вы создадите задачу в Планировщике задач Windows (Windows Task Scheduler). Задача будет регулярно запускать файл .bat, который будет запускать скрипт перезаписи Python, который будет проверять наличие обновлений и перезаписывать размещенный векторный слой, если доступны новые данные.
Создание файла .bat
Файлы .bat Windows– это простые текстовые файлы с набором инструкций, запускаемых интерпретатором командной строки.
- Откройте текст в текстовом редакторе, таком как Notepad или Notepad++.
- Скопируйте и вставьте следующий текст в текстовый редактор:
"C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" "C:\Temp\OverwriteFS.py" learn_user 3b2b385c923147349dec02025e10aa55 TX_reservoirs_recent_(yourname) https://www.waterdatafortexas.org/reservoirs/statewide/recent-conditions.geojson
Вы также можете ввести текст в виде одной строки.
- Измените идентификатор элемента с 3b2b385c923147349dec02025e10aa55 на идентификатор элемента вашего размещенного векторного слоя.
- Измените TX_reservoirs_recent_(ваше имя) на имя вашего элемента.
- Сохраните файл в своей папке C:\Temp\ и введите TXreservoirs_overwrite.bat в качестве имени файла. В ниспадающем меню Сохранить как тип выберите Все файлы (или, если вы используете Notepad++, выберите Пакетный файл).
Далее вы создадите задачу для запуска файла .bat.
Создание базовой задачи
Теперь, когда у вас есть файл .bat, вы запланируете задачу для его регулярного запуска.
- Откройте меню Пуск в Windows. Найдите и откройте Планировщик задач.
- На панели Действия щелкните Создать простую задачу.
Появляется окно Мастер создания простой задачи, которое запускается на вкладке Создать базовую задачу.
- В окне Мастер создания простой задачи для Имя введите TX reservoirs и для Описания введите Task to run the TXreservoirs_overwrite.bat file to update the feature service.
- Щелкните Далее.
Окно обновится до вкладки Обработчик задач.
- Для Когда запускать задачу? подтвердите, что выбрано Ежедневно и щелкните Далее.
Мастер обновится до вкладки Ежедневно.
- В качестве даты Начала выберите сегодняшнюю дату. Установите время начала на один час позже текущего времени (в примере - 16:35).
- Для Повторять каждые введите 1, чтобы задача выполнялась каждый день, и щелкните Далее.
- На странице Действие убедитесь, что в качестве действия задачи выбрано Запуск программы, и щелкните Далее.
- На странице Запуск программы в текстовом окне Программа/скрипт введите C:\Temp\TXreservoirs_overwrite.bat и щелкните Далее.
Примечание:
Если вы сохранили файл .bat в другой папке, убедитесь, что вы ввели правильный путь к файлу .bat. Вы также можете щелкнуть кнопку обзора и перейти к местоположению файла.
В мастере появится вкладка Готово.
- Отметьте Открыть окно Свойства после нажатия кнопки Готово и щелкните Готово.
- В разделе Опции безопасности отметьте Запуск независимо от того, вошел ли пользователь в систему или нет и отметьте Не сохранять пароль. Нажмите OK.
На этом уроке вы загрузили данные с веб-сайта Water Data for Texas и создали размещенный векторный слой. Вы создали, настроили и поделились представлением размещенного векторного слоя, чтобы изолировать открытый элемент от процесса обновления. Вы адаптировали, загрузили и использовали скрипт Python для получения последних данных с веб-сайта и обновления размещенного векторного слоя. Вы также создали файл .bat и запланировали задачу Windows для запуска скрипта Python. Когда задача выполняется, скрипт перезаписи Python обновляет размещенный векторный слой. Вы настроили задачу на ежедневное выполнение, поэтому любые веб-карты или приложения, отображающие представление размещенного векторного слоя, будут отображать последние данные каждый день.