Создание слоев высот

Чтобы создать 3D-здания с подробными формами крыш и точными высотами, сначала необходимо выяснить, какие у них формы и высоты на самом деле. Самый лучший способ определения высот для большого количества поверхностей – это лидар, технология лазерного сканирования, которая может охватить сразу большую территорию. Вы будете использовать проект ArcGIS Pro, загруженный со страницы solutions, который содержит инструменты решений 3D Basemaps и рабочие процессы, характерные для муниципального развития местных органов власти. Загрузив проект и данные, вы конвертируете необработанные лидарные данные окрестностей Портленда в набор данных облака 3D-точек (LAS), показывающий, где свет от сканера отразился от объектов, в том числе от крыш зданий. Затем можно будет конвертировать это облако точек в набор растровых данных, показывающий высоты на этой территории. Для получения дополнительной информации вы можете посетить страницу ArcGIS Solutions. Ссылки часто меняются, поэтому просто ищите ArcGIS Solutions в любом веб-браузере.

Скачивание данных и развертывание решения

Прежде чем начать, вам надо загрузить данные, предоставленные для города Портленд, а также развернуть ArcGIS Solutions 3D Basemaps. Вы также откроете задачу ArcGIS Pro, которая шаг за шагом проведет вас через весь рабочий процесс.

  1. Скачайте zip-файл Roof_Form_Extraction.
  2. Извлеките архивированную папку Roof_Form_Extraction.zip в доступную директорию на вашем компьютере.

    Далее вы развернете ArcGIS Solutions 3D Basemaps.

  3. Откройте ArcGIS Solutions. Если необходимо, войдите под учетной записью организации ArcGIS.
    Примечание:

    Если у вас нет учётной записи организации, можно подписаться на бесплатную пробную версию ArcGIS.

  4. В списке решений щелкните 3D Basemaps.

    3D Basemaps ArcGIS Solutions

  5. В появившемся окне 3D Basemaps щелкните Развернуть сейчас.

    Решение 3D Basemaps развернуто.

    Примечание:

    Более подробно см. раздел ArcGIS Solutions.

  6. В верхней части страницы щелкните свой профиль и затем Профиль & Настройки.

    Профиль и настройки

  7. На ленте щелкните Ресурсы.

    Ресурсы на ленте

  8. В списке папок щелкните папку 3D Basemaps.

    Папка 3D Basemaps

  9. Для элемента 3D Basemaps Desktop Application Template, щелкните кнопку Дополнительно и выберите Загрузить.

    Загрзука решения 3D Basemaps.

  10. Извлеките файл 3DBasemaps.zip в известную папку на своем компьютере, например, в Документы или на Рабочий стол.
    Примечание:

    Убедитесь, что путь к файлу к вашей папке 3DBasemaps не содерит файлы с пробелами в названиях. Это может привести к ошибком в дальнейшем в этом уроке.

  11. Откройте папку 3DBasemaps и дважды щелкните файл проекта 3Dbasemaps, чтобы открыть проект в ArcGIS Pro.

    Файл проекта 3Dbasemaps

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

  12. Если необходимо, войдите под учетной записью организации ArcGIS.
    Примечание:

    Если у вас нет ArcGIS Pro или учетной записи ArcGIS, можно подписаться на бесплатную пробную версию ArcGIS.

Создание набора данных облака точек LAS

Теперь необходимо собрать данные лидара в один набор данных LAS, который можно отобразить в ArcGIS Pro как группу 3D-точек, называемую облаком точек. Лидарный сканер направляет на цель лазерное излучение, а затем вычисляет местоположение цели в пространстве на основании пути, пройденного светом до отражения от объекта. Облако точек показывает отдельные точки, где луч лазера коснулся объекта, позволяя визуализировать и анализировать местоположение поверхностей в 3D. Отдельные файлы с данными лидара также могут отображаться в ArcGIS Pro, но вам необходимо повторить те же самые шаги для каждого из четырех ффайлов, чтобы отобразить их все. Создание набора данных LAS, который содержит данные из всех четырех файлов, экономит время.

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

    Папка Roof_Form_Extraction содержит несколько лидарных файлов. Подключение вашей папки сейчас облегчит поиск этих данных позже.

    Примечание:

    Для правильной работы инструментов на последующих этапах необходимо использовать папку по умолчанию и базу геоданных пакета проекта. Например, при создании зданий задача ищет пакет правил слоя, хранящийся в папке по умолчанию. База геоданных для проекта по умолчанию называется 3DBasemaps.gdb, и инструменты автоматически будут использовать ее по умолчанию в качестве места выхода для всех новых данных.

  2. На панели Каталог разверните папку Задачи. Дважды щелкните How to use a 3D basemap, чтобы открыть задачу.

    Задача How to use a 3D basemap

    Если дважды щелкнуть задачу, появится панель Задачи с выбором конкретных рабочих процессов для создания 3D базовых карт.

    Список доступных задач для 3D Basemaps
  3. На панели Задачи разверните группу задачи Publish ground elevation surface.

    Группа задачи Publish ground elevation surface

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

  4. Дважды щелкните задачу Extract elevation surfaces from LAS dataset.

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

  5. Для параметра Входные файлы щёлкните кнопку Обзор.

    кнопка Обзор

    Откроется окно Входные файлы, которое позволяет вам просматривать файлы и папки как на вашем компьютере, так и в ArcGIS Online.

  6. В окне Входные файлы щелкните Папки. Разверните папку Roof_Form_Extraction и дважды щелкните папку Лидар. Нажмите Ctrl и затем щелкните все четыре файла, чтобы их выбрать. Нажмите OK.

    Выбраны файлы лидара (.las).

    Подсказка:

    Вы также можете щелкнуть первый файл и нажать Shift, а затем нажать последний файл, чтобы выбрать все четыре файла.

  7. Для Выходного набора данных LAS измените имя на Portland_LAS.lasd. Оставьте его в папке p20, которая была создана при открытии пакета проекта.

    Выходные параметры инструмента Создать набор данных LAS.

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

    Далее вы установите систему координат для выхода, если инструмент не установит ее автоматически. Система координат должна соответствовать той, которая использовалась во входных файлах. Самый простой способ узнать, какая же система координат использовалась, это задать вопрос автору данных. Из городской администрации Портленда сообщили, что для лидарных данных использовалась система координат NAD 1983(2011) StatePlane Oregon North FIPS 3601 (Intl Feet).

    Примечание:

    Если у вас нет информации о системе координат входных лидарных данных, для ее определения можно воспользоваться инструментами 3D Sample Tools доступными в ArcGIS Online.

  8. При необходимости прокрутите панель Задачи вниз, чтобы увидеть остальные параметры инструмента. Убедитесь, что Система координат задана как NAD_1983_(2011)_StatePlane_Oregon_North_FIPS_3601_Intnl_Feet. Это система координат файлов LAS.
  9. На панели Задачи для Создать PRJ для файлов LAS выберите Файлы с отсутствующей пространственной привязкой и щелкните Запустить, чтобы создать набор данных LAS.

    Система координат и другие параметры

    Когда инструмент выполнит работу, на сцене появится облако точек LAS. Панель Задачи остается открытой. Вы продолжите рабочий процесс, поэтому оставьте панель Задачи открытой.

  10. Перемещайтесь по сцене и изучите набор данных. Проведите по сцене с нажатым колесиком мышки, чтобы наклонить или повернуть сцену.

    Облако точек LAS в виде сцены

    Облако точек состоит из миллионов точек, показанных так, что точки с большими высотами обозначены красным, а с низкими – синим. На основании этого набора данных вам надо будет построить несколько растров высот, но сначала надо убедиться, что в наборе данных нет выбросов.

Извлечение поверхностей высот из наборов данных LAS

Теперь вы создадите три цифровые модели рельефа, которые будут использоваться в качестве входных слоёв для инструмента Extract Roof Form чуть позже в этом рабочем процессе. Цифровые модели поверхности представляют данные высот из набора данных LAS в растровом формате. Цифровая модель поверхности (ЦМП-DTM) показывает только высоту поверхности земли, без зданий или других объектов; цифровая модель местности (ЦММ-DSM) показывает высоту земли и объекты на земле; и нормализованная DSM (nDSM) показывает высоту объектов над землей (нормализованная высота). Задача, которую вы начали ранее, уже открыта, и в ней открыт инструмент Извлечь высоту из набора данных LAS.

  1. На панели Задачи для Входного набора данных LAS щелкните стрелку и выберите Portland_LAS.lasd.

    Размер ячейки растра определяется автоматически.

  2. Для Выходного растра введите Portland.

    Когда инструмент рассчитывает три слоя высот, он добавляет имя растра. Вы получите три слоя с именами Portland_dtm_surface, Portland_dsm_surface, и Portland_ndsm_surface для цифровой модели поверхности, цифровой модели местности и нормализованной цифровой модели местности, соответственно.

  3. Отметьте Классифицировать шум. Щелкните Запустить.
    Примечание:

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

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

  4. Внизу панели Задачи щелкните вкладку Содержание, чтобы открыть панель Содержание.

    Закладка Содержание

  5. В разделе Порядок отрисовки в группе 3D слои разверните Portland_LAS.lasd.

    Portland_LAS.lasd на панели Содержание

    В легенде слоя показаны самое высокое и самое низкое значения набора данных: 253,74 и -69,52. Так как используется система координат в футах, эти значения тоже в футах. Представляют ли эти значения выбросы, или они близки к основной части данных? Чтобы это понять, надо щёлкнуть несколько высоких и низких точек на сцене. Похоже, что самые высокие значения представляют высокие здания к западу от реки, а низкие – тёмно-синие точки на самой реке.

  6. Переместитесь к высоким зданиям к западу от реки. Наклоните и поверните сцену (зажмите колёсико мышки), чтобы сравнить высоты зданий.

    Высокие здания кондоминиума

    Многие из этих зданий представляют собой многоквартирные жилые дома. Самое высокое находится посередине, ближе всех к реке.

  7. Щёлкните ярко-красную точку наверху крыши самого высокого здания.

    Всплывающее окно для точки

    Откроется всплывающее окно с информацией о точке, на которой вы только что щёлкнули, в том числе о её высоте. Вероятно, высота ваше точки будет около 200 футов, то есть на 50 футов ниже, чем максимальное значение в наборе данных (у вас значение может немного отличаться от примера на рисунке).

  8. Закройте всплывающее окно. Щёлкните любую тёмную точку на реке.

    Высота точки должна получиться приблизительно 10 футов, а минимальное значение в данных -69 футов. При наличии несоответствий между минимальной и максимальной точками в данных, разница составляет менее 100 футов в обоих направления. Эти точки, вероятно, не являются значимыми выбросами, которые будут искажать ваши данные – чтобы исказить ваши данные, точки обычно должны быть на сотни или даже тысячи футов выше или ниже остальных данных.

  9. Откройте панель Задачи и разверните Height Detection. Для Минимальной высоты введите 0. Для Максимальной высоты введите 215.

    Минимальные и максимальные высоты

    Эти значения дают 10-футовую буферную зону относительно данных, которые мы видели.

  10. Щелкните Запустить.
    Подсказка:

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

    На панель Содержание будут добавлены три растровых слоя, а также на панели Каталог в базе геоданных 3DBasemaps.

    Новые поверхности добавлены в базу геоданных 3DBasemaps
  11. На панели Содержание отключите слой Portland_LAS.

    Будут видны только 2D слои.

    Слой нормированной цифровой модели местности на карте

    nDSM показывает относительные высоты структур. Большая часть территории поверхности имеет значения 0 или близкие к нулю (чёрные ячейки). Теперь у вас построено три слоя высот, которые нужны для инструмента Extract Roof Forms. Слой DSM (ЦММ) показывает высоты зданий и прочих объектов. У более тёмных областей высоты ниже, а у светлых – выше. DTM (ЦМП) показывает только земную поверхность. Местоположения зданий слегка просматриваются, так как инструмент оценивает местоположения на земле на основании окружающих точек.

    В отличие от слоёв высот DTM и DSM, которые вы создавали из набора данных LAS, nDSM строится путём вычитания значений DTM из значений DSM. Поскольку DTM показывает высоту поверхности земли, а DSM показывает высоту элементов над землей (абсолютная высота), nDSM показывает высоту элементов над землей (нормализованная высота) для точной обработки областей, где ожидается наличие крыш.

  12. Отключите на карте все слои, кроме Portland_dtm_surface и базовой карты.

    Видимый слой Portland_dtm_surface

Поверхность высот Земли

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

  1. Щелкните вкладку Задачи и, если необходимо, щелкните Следующий шаг.

    Когда вы закончили выполнение предыдущей задачи, панель перешла к следующей задаче Modify Ground Elevation Surface, которая является необязательной. Чтобы проверить, нужно ли вам запускать этот процесс, вы проверите таблицу атрибутов и настройки высоты слоя Portland_Buildings.

  2. На панели Каталог правой кнопкой мыши щелкните Папки и выберите Добавить подключение к папке.
  3. В окне Добавить подключение к папке перейдите к папке Roof_Form_Extraction и щелкните OK.

    Папка Roof_Form_Extraction добавлена в Папки на панели Каталог.

  4. Разверните папку Roof_Form_Extraction и затем City_Data.gdb. Перетащите слой Portland_Buildings на карту.

    Класс объектов Portland_Buildings

    Обратите внимание, что некоторые из контуров зданий частично покрыты поверхностью земли, особенно вблизи реки.

  5. На панели Содержание правой кнопкой мыши щелкните Portland_Buildings и выберите Таблицу атрибутов.

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

  6. На панели Задачи щелкните Пропустить.

    На последнем шаге этой задачи, Modify scene elevation surface, вы измените поверхность высот в соответствии с только что рассчитанной. Поверхность высот, используемая в сценах по умолчанию – WorldElevation3D/Terrain3D. Для этого проекта рассчитанная вами DTM является более точной в небольшой локализованной центральной части Портленда, чем на глобальной поверхности. Он также проецируется в той же сетке StatePlane, что и данные о контурах зданий, а не в Web Mercator, который по умолчанию используется для рельефа.

  7. На панели Содержание разверните Поверхности высот и щелкните опцию Земля, чтобы выбрать ее. На панели Задачи щелкните Запустить

    Группа слоев Поверхность Земли

    Появляется окно Добавить источник высот.

  8. В окне Добавить источник высот дважды щелкните папку База данных и перейдите к 3DBasemaps.gdb. Щелкните Portland_dtm и щелкните OK.
    Примечание:

    Если вы не видите созданные наборы растровых данных, щелкните кнопку Обновить рядом с адресной строкой.

  9. На панели Содержание убедитесь, что Portland_dtm был добавлен в группу слоев Земля в разделе Поверхности высот. Снимите отметку WorldElevation3D/Terrain3D).

    Установите новую поверхность высот.

    Базовая карта обрезается примерно до экстента DTM.

  10. На панели Задачи щелкните Готово

    В последнем задании этой группы вы опубликуете созданную вами поверхность высот. Это применяется, если вы хотите позже опубликовать данные о зданиях в ArcGIS Online; Поскольку веб-карты используют Web Mercator, для отображения любых проецируемых трехмерных данных сначала необходимо опубликовать пользовательскую поверхность высот.

  11. На панели Задачи и в группе Publish ground elevation surface дважды щелкните Publish ground elevation surface.

    Поскольку ваши единицы измерения высоты указаны в футах, вам необходимо выполнить первый шаг, преобразовав DTM в метры.

  12. В окне Растры дважды щелкните Portland_dtm_surface.

    Слой DTM добавляется в поле выражения как "Portland_dtm_surface".

  13. В окне Выражение удалите текст заполнителя "Your DTM". Выражение должно читаться как "Portland_dtm_surface" * 0.3048.

    Переведите высоту в метры.

  14. Оставьте Выходной растр установленным на DTM_meters и щелкните Запустить.
  15. В шаге Reproject DTM для Входного растра выберите DTM_meters. Для Выходной набор растровых данных введите DTM_project.

    Параметры панели задачи Reproject DTM

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

    Примечание:

    Для перевода ваших данные из системы координат State Plane в Web Mercator, вы будете использовать географическое преобразование.

  16. Для Географического преобразования выберите WGS_1984_(ITRF08)_To_NAD_1983_2011.
  17. Оставьте все остальные настройки по умолчанию и щёлкните Запустить.

    Слой DTM_project добавлен на панель Содержание. Чтобы создать здания в проекции Web Mercator, вам нужно переключить поверхность высот на DTM_project.

    Панель Задача обновится на Add elevation surface to the ground.

  18. На панели Содержание в разделе Поверхности высот, щелкните Земля, чтобы выбрать ее. Вернитесь на панель Задачи и щелкните Запустить.

    Появляется окно Добавить источник высот.

  19. В окне Добавить источник высот сначала щелкните вверху кнопку Обновить, затем выберите DTM_project и щелкните OK.
  20. На панели Содержание разверните вкладку Земля и убедитесь, что DTM_project был добавлен в список поверхностей высот. Отключите Portland_dtm.
  21. На панели Задачи щелкните Следующий шаг и затем Готово.

    Наконец, вы опубликуете поверхность высот на своем портале.

  22. На панели Содержание щёлкните правой кнопкой слой DTM_project и выберите Опубликовать как веб-слой.

    Опубликовать поверхность высот как слой

    Откроется панель Опубликовать как веб-слой.

  23. На вкладке Общие введите следующие параметры:

    • Для Имени введите Portland_DTM_WebMercator и добавьте свои иниициалы.
    • Для Итоговой информации введите Спроецированная поверхность высот для Портленда.
    • Для Тегов введите поверхность земли.

  24. Щелкните вкладку Конфигурация, разверните Схему листов и Опции и введите следующие параметры:

    • Для Схемы листов убедитесь, что выбрано Как у базовой карты.
    • Для Уровней детализации, убедитесь, что Максимальный уровень задан как 20.
    • В Опциях для Временного местоположения кэша выберите или проверьте, что выбрана папка Roof_Form_Extraction.
    • Для Сжатия LERC выберите или проверьте, что задано 0.05.

  25. Щелкните Анализировать. Убедитесь что нет ошибок и нажмите Опубликовать.

    Поверхность высот публикуется на вашем портале и теперь может использоваться в веб-сценах.

  26. После завершения публикации веб-слоя закройте панель Опубликовать как веб-слой и сохраните проект.

Вы загрузили и открыли проект, содержащий инструменты решения 3DBasemaps и данные проекта. Также вы конвертировали лидарные данные в набор данных LAS и использовали полученный набор для создания трёх слоёв высот, показывающих различные аспекты местности. Далее вы извлечёте реалистичные формы крыш и проверите полученный набор данных на наличие ошибок.


Создание 3D-зданий

На прошлом уроке вы конвертировали лидарные данные в три поверхности высот: одна показывает высоты земной поверхности (DTM), другая – высоты объектов и зданий выше земной поверхности (DSM) и третья – высоты объектов относительно земной поверхности (nDSM). А этом уроке вы будете использовать эти слои высот и контуры зданий для вычисления атрибутивных данных для форм и высот крыш. Затем вы узнаете, как использовать эти атрибуты для отображения контуров зданий в виде 3D-объектов. Наконец, вы проверите эти объекты на возможное наличие ошибок.

Извлечение форм крыш зданий

Для извлечения форм крыш надо будет воспользоваться инструментом Extract Roof Form, это один из двух инструментов-скриптов, загруженных в рамках набора инструментов Roof_Form_Extraction, который вы скачали вместе с данными проекта. Инструмент Extract Roof Form не умеет автоматически создавать 3D-здания, но он может добавить атрибутивные данные, описывающие форму и прочие характеристики крыши, к 2D-контурам. Затем эти атрибуты можно использовать, чтобы процедурно создать пространственные объекты в 3D.

  1. Если необходимо, откройте ваш проект 3DBasemaps в ArcGIS Pro.

    Многие здания не являются правильными прямоугольниками, а имеют различную этажность, разные крыши и другие архитектурные особенности. Чтобы свести к минимуму объем исправлений, вам нужно будет вручную добавить эти объекты после того, как блоки зданий будут вытянуты, в процессе предварительной обработки данных. Для этого есть два варианта: использование контуров зданий или высот. Контуры зданий – это простые прямоугольники без сегментации, поэтому вы будете использовать ЦММ, чтобы оценить, где контуры зданий следует разделить, чтобы получить больше деталей. Вы воспользуетесь инструментом-скриптом, который входит в решение 3D Basemaps.

  2. На панели Каталог разверните Наборы инструментов, а затем CreateBuildings.tbx.

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

    Развернут набор инструментов Создать здания
  3. В наборе инструментов CreateBuildings дважды щеклните Segment Roof Parts.

    Появится панель Segment Roof Parts.

  4. На панели Segment Roof Parts для Building Footprints выберите Portland_Buildings. Для Elevation Surface (DSM) выберите Portland_dsm_surface.

    Параметры инструмента Segment Roof Parts

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

  5. Для Output Segmented Buildings введитеPortland. Щелкните Запустить.
    Примечание:

    Инструмент может выполняться несколько минут.

    Теперь, когда контуры зданий разделены, вы будете использовать задачу Create Buildings, чтобы создать для зданий класс 3D-объектов.

  6. На панели Задачи разверните Publish Buildings, чтобы посмотреть, какие задачи работы со зданиями сейчас доступны.

    Доступные задачи в группе Publish Buildings

    В группе Publish Buildings есть две задачи на выбор, которые позволяют извлечь контуры зданий и подготовить контуры зданий. Первая задача, Extract building footprints, необходима только в том случае, если у вас нет контуров зданий, она извлечет эти контуры из набора данных лидар. Следующая задача, Preprocess building footprints, позволяет вам сегментировать здания на основе другого класса объектов до того, как создать формы крыш. У вас нет другого класса объектов, на основе которого можно выполнить сегментацию, поэтому вы можете это сделать на основе поверхности высот, поэтому вы будете работать с задачей Create buildings.

  7. На панели Задачи дважды щелкните Create buildings.
  8. На панели Create buildings введите следующее:
    • Для Buildings выберите Portland_segmented.
    • Для Elevation Surface (DSM) выберите Portland_dsm_surface.
    • Для Ground Elevation Surface (DTM) выберите Portland_dtm_surface.
    • Для Normalized Elevation Surface (nDSM) выберите Portland_ndsm_surface.

    Параметры для входных данных

  9. Для Output Building Polygons введите Portland. Пока не запускайте инструмент.

    Параметры RoofForm определяют, что будет считаться поверхностью крыши. По умолчанию крыша должна быть 250 квадратных футов (плоская) или 75 квадратных футов (наклонная) и 8 футов над землей. Эти минимальные параметры не позволяют меньшим объектам, таким как автомобили или уличные киоски, считаться поверхностями крыш. Данные лидара, которые включают большие или меньшие здания, будут нуждаться в другом диапазоне параметров. Эта область зонирована как жилая и коммерческая, поэтому значения по умолчанию не слишком мягкие для подсчета объектов, не относящихся к строительству, и не слишком строгие для исключения небольших домов. При создании подробных зданий следует также рассмотреть возможность упрощения элементов путем удаления слишком близких или избыточных вершин в контурах здания. Упрощенные модели выглядят более плавными и сокращают время отрисовки, что идеально подходит для передачи ваших результатов муниципальному правительству Портленда.

    Примечание:

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

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

  10. Разверните секцию Roof Form и убедитесь, что отмечено Упростить здания.

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

  11. Для опции Simplify Tolerance (допуск упрощения) введите 0.1, либо проверьте, что там уже задано значение 0.1.

    Параметры Упростить здания и допуск упрощения

    Примечание:

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

  12. Щелкните Запустить.

    Инструмент может выполняться несколько минут. По завершении работы новый слой добавится на сцену.

  13. На панели Содержание отключите все слои, кроме Portland_roofform, Топографической базовой карты и слоя DTM_project в разделе Поверхности высот.

    Слой Portland_roofform на карте

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

  14. Правой кнопкой мыши щелкните слой Portland_roofform и выберите Таблицу атрибутов.

    Появится таблица атрибутов. Помимо стандартных атрибутов класса пространственных объектов, таких как OBJECTID, Shape, Shape_Length и Shape_Area, появилось несколько полей с информацией о высоте, форме и направлении крыши.

    Поля в таблице атрибутов

    Эти поля инструмент Extract Roof Form добавил на основании слоёв высот и контуров зданий, которые использовались в качестве входных данных. Далее приведём список этих полей с пояснениями:

    • BLDGHEIGHT (высота здания) – максимальная высота здания.
    • EAVEHEIGHT (высота карниза) – минимальная высота здания. У зданий без карнизов плоские крыши.
    • ROOFFORM (форма крыши) – форма крыши. Форма крыши может быть Flat (плоская), Gable (двускатная) или Hip (шатровая). На рисунке ниже показано как выглядят эти формы:

      Примеры форм крыши

    • BASEELEV (базовая высота) – базовая высота здания, обычна равна уровню поверхности земли там, где стоит это здание.
    • ROOFDIR (направление крыши) – азимут (в градусах) куда направлены скаты крыши. Это поле заполнено только для двускатных крыш.
    • RoofDirAdjust (исправленное направление крыши) – это поле позволяет исправить направление крыши. По умолчанию значение равно 0. Значение 1 поворачивает крышу на 90 градусов против часовой стрелки, а 2 – на 180 градусов. Это поле используется для того, чтобы вручную отредактировать форму крыши в тех случаях, если она установлена неверно. На данном этапе можно не принимать это во внимание.

  15. Закройте таблицу атрибутов.
  16. На панели Задачи щелкните Готово
  17. Сохраните проект.

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

Проверьте точность зданий

Вы построили слой 3D-контуров зданий с информацией о формах крыш в атрибутах. Далее вы проверите, насколько они точны.

  1. На панели Задачи в разделе Publish Buildings дважды щелкните Review buildings.
  2. На панели Review buildings для Buildings выберите слой Portland_roofform, а для Elevation Surface (DSM) выберите Portland_dsm_surface. Щелкните Запустить.

    Инструмент Confidence Measurement вычисляет среднеквадратичную ошибку (RMSE), которая представляет собой разницу между значениями в слое форм кровли и значениями в DSM. Более высокое среднеквадратичное значение указывает на более высокую погрешность для сгенерированных контуров здания. Статистика добавляется в таблицу атрибутов.

  3. На панели Содержание правой кнопкой мыши щелкните Portland_roofform и щелкните Таблицу атрибутов.
  4. В таблице атрибутов прокрутите до столбца RMSE. Щелкните правой кнопкой мыши имя атрибута и выберите Сортировать по убыванию.

    Сортировать по убыванию значения RMSE.

    Как правило, вы стремитесь к среднеквадратическому значению около 3 футов (1 метр), хотя этот уровень точности зависит от варианта использования. Хоть эти значения и могут пригодиться, но в слое Portland_roofform 1 083 пространственных объекта, и просмотр всех их ошибок займёт довольно много времени. Чтобы легко визуализировать, в каких зданиях самые большие ошибки, отобразим слой символами по атрибуту RMSE.

  5. Закройте таблицу атрибутов.
  6. На панели Задачи щелкните Далее.

    Откроется связанная 2D карта.

  7. На панели Содержание для 2D карт выберите слой Portland_roofform, а на панели Задачи щелкните Запустить.

    Откроется панель Символы для слоя Portland_roofform.

  8. На панели Символы щелкните Опции и выберите Импорт символов.

    Опция Импорт символов

    Появится панель Применить символы слоя.

  9. На панели Применить символы слоя введите следующее:
    • Для Входного слоя должен быть выбран Portland_roofform, поскольку он был выбран при запуске шага задачи.
    • Для Слоя символов щелкните Обзор и перейдите в папку layer_files в папке проекта p20. Дважды щелкните файл LOD2RMSEclassification.lyrx.

    Добавить файл .lyrx.

  10. Щелкните Запустить.

    Стиль .lyrx применяется к слою Portland_roofform. Символы слоя показывают здания с низким среднеквадратичным средним значением ошибки зеленым цветом, а здания с высоким среднеквадратичным средним значением ошибки красным цветом.

  11. На панели Содержание для 2D-карты щелкните Portland_dsm, чтобы выбрать слой.
  12. На ленте щелкните вкладку Оформление. В группе Эффекты для Прозрачности введите 50 и нажмите Enter.

    Прозрачность слоя – 50.0%.

  13. На панели Задачи щелкните Далее.
  14. Перетащите вкладку вида Карта и закрепите ее сбоку от вкладки вида 3D Basemap.

    Перетащите и закрепите вкладку вида Карта.

  15. Перейдите на вкладку Карты, чтобы активировать 2D-карту.
  16. На вкладке Карта щелкните Базовая карта и выберите Изображение.

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

  17. Приблизьтесь к зданием с высоким значением RMSE, к западу от реки. Сравните пространственные объекты зданий со слоями DSM и изображений.

    Здания с высокими значениями RMSE

  18. На панели Задачи щелкните Далее.

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

  19. Щелкните сцену 3DBasemap, чтобы ее активировать. На панели Содержание включите слой Portland_LAS.

    Слой Portland_LAS в Сцене

    Существуют две основные причины, по которым контуры могут быть неправильными: либо неправильно введена форма крыши, либо лидар был неверно интерпретирован. Если посмотреть на контуры здания, то, видно больше вершин и сегментированных частей, чем показано на лидарных данных, – инструмент, вероятнее всего, собрал детали с объектов крыши, таких как блоки HVAC. Вы проверите атрибуты, чтобы увидеть, нужно ли менять какие-либо объекты вручную перед их редактированием.

  20. На ленте на вкладке Карта щелкните Выбрать и щелкните один из красных или желтых контуров здания в виде Карта.

    Выбран красный контур здания

  21. Выбрав один из объектов, щелкните Атрибуты.

    Атрибуты пространственных объектов

    Появится панель Атрибуты.

    Просматривая эти атрибуты, вы можете увидеть тип крыши. Большинство типов крыш являются плоскими, это верно. В следующем задании вы исправите неверные вершины.

  22. На ленте в группе Выборка щелкните Очистить, чтобы очистить выборку.

    Очистить

  23. На панели Задачи щелкните Готово, чтобы сохранить проект.

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


Редактирование зданий и экспорт пространственных объектов

Ранее вы создали 3D-здания с уровнем прорисовки крыш LOD2 и выявляли ошибки. Теперь вы исправите объект, у которого была более высокая среднеквадратическая ошибка (RMSE). Далее вы будете экспортировать здания в класс пространственных 3D-объектов мультипатч, чтобы данные было проще публиковать. Для экономии времени вы отредактируете только одно здание, хотя несколько зданий помечены как имеющие высокую RMSE.

Изменение вершин контура зданий

Одна из проблем у тех зданий, которые вы рассматривали, заключается в том, что контуры здания не совпадают со снимком и данными высот. Перед тем как вносить прочие изменения, вы исправите вершины, чтобы они оказались на своих местах.

  1. При необходимости откройте свой проект 3DBasemaps в ArcGIS Pro и откройте панель Задачи.
  2. В панели Задачи для группы задач Публикация зданий дважды щелкните Изменить здания.

    Откроется задача Изменить здания и активизирует инструмент Выбрать, но только для 2D-карты, не для 3D-сцены. Вы выберите контур здания, который хотите отредактировать.

  3. Если необходимо, отцентрируйте карту на оранжевом здании к западу от реки.
    Подсказка:

    Если вам требуется масштабировать и перемещать карту, используйте следующие сочетания клавиш: нажмите C для перемещения, X для отдаления и Z для приближения карты.

    Контур здания на карте

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

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

  4. На панели Каталог щелкните вкладку Портал и выберите ArcGIS Online.

    ArcGIS Online на панели Каталог

  5. Введите в поисковом окне World Imagery (Wayback 2017-05-31) и нажмите Enter. Правой кнопкой щелкните элемент World Imagery (Wayback 2017-05-3) и выберите Добавить на текущую карту.

    Добавьте World Imagery Wayback.

    Слой World Imagery (Wayback 2017-05-3) добавится в вид Карты. Разрешение выше, поэтому здание показано более четко.

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

    Выбранный оранжевый объект

    Подсказка:

    Если вы случайно выбрали не тот объект, щёлкните Изменить выборку на панели Задачи.

  7. На панели Задачи в верхней части панели Изменить здания щелкните Изменить вершины контура зданий.

    Изменение вершин контура зданий

    Инструмент Редактировать вершины откроется на панели Задачи, а вершины здания станут видны на карте. Но из-под прозрачного слоя ЦММ довольно сложно увидеть, где должны быть вершины.

  8. На панели Содержание выключите слой Portland_dsm.
  9. В виде Карта подвиньте каждую из вершин, чтобы трассировать пространственные объекты форм крыш на структуре башенки на основе базовой карты Изображения.
    Подсказка:

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

    Вершины, выровненные по контуру здания на базовой карте.

    Примечание:

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

  10. На панели Инструменты изменения крыши щелкните Изменить выборку и в виде Карта выберите предыдущую форму крыши (оранжевый прямоугольник), чтобы получить доступ к ее вершинам.

    При этом могут быть выбраны вершины более крупного здания, и это нормально.

  11. Щелкните правой кнопкой мыши только вершину исходной оранжевой крыши и выберите Удалить вершину. Сделайте то же самое для оставшихся трех вершин.

    Удалить вершину

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

    При сохранении ваши правки остаются в наборах данных, поэтому перед сохранением обязательно надо убедиться, что всё исправлено верно. Исходный элемент крыши с более высокой RMSE удаляется, а тот, который вы редактировали, становится желтым, что указывает на низкую RMSE.

    Желтый отредактированный объект крыши
  13. В нижней части панели Задачи щелкните Пропустить два раза, чтобы вернуться к списку главных задач.

    Далее вы сконвертируете полученные пространственные объекты для передачи в администрацию Портленда. Далее вы опубликуете свой набор данных.

Публикация отредактированных зданий

Набор данных Portland_Roof_Forms является классом пространственных объектов 2D, которые отображаются так, как будто они 3D. Если передать их в администрацию Портленда, их снова надо будет отображать в 3D. Кроме того, поддержание 3D-форм возможно только при определённой спецификации символов слоя. Поэтому вы сконвертируете набор данных в 3D класс пространственных объектов мультипатч, поддерживающий 3D-форму пространственных объектов. Затем вы опубликуете здания в ArcGIS Online, чтобы их можно было добавлять и визуализировать в веб-сценах.

  1. На панели Задачи, если необходимо, разверните группу задач Опубликовать здания и дважды щёлкните задачу Опубликовать слой зданий.

    Задача Опубликовать слой зданий

    Появится задача Опубликовать слой зданий. Поскольку вы уже опубликовали свою сцену в Web Mercator ранее, вы можете пропустить первый шаг. Теперь вы сконвертируете полигоны зданий в объекты-мультипатчи.

  2. На панели Опубликовать слой зданий щелкните Пропустить.
  3. Убедитесь, что вкладка 3D Basemap активна. В панели Содержание выберите сцену 3D Basemap.
    Сцена 3D Basemap выбрана
  4. На панели Опубликовать слой зданий введите следующее:
    • Для Слой зданий выберите Portland_roofform.
    • Для Уникальный ObjectID выберите BuildingFID.
    • Для Выходной мультипатч здания введите Portland_Building_Roof_Forms.

    Конвертировать здания в мультипатч объекты.

    Уникальный object ID - это поле, которое идентифицирует отдельные здания как уникальные объекты. Когда вы создали слой Portland_roofform, уникальное поле OBJECTID из слоя Portland_Buildings было воссоздано как BuildingFID.

  5. Щелкните Запустить.

    Слой Portland_Building_Roof_Forms будет добавлен в панель Содержание.

  6. В панели Задачи щелкните Пропустить, чтобы пропустить инструментОбъекты маски в слое.
  7. На панели Содержание проверьте, что выбран слой Portland_Building_Roof_Forms. На панели Задачи щелкните Запустить

    Откроется панель Опубликовать как веб-слой.

  8. На панели Опубликовать как веб-слой в Имени добавьте свои инициалы после Portland_Building_Roof_Forms.

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

  9. Для Краткой информации, введите или вставьте Building roof forms extracted from LiDAR, а для Тегов введите 3D, municipal development и Green initiative, и нажмите Enter.
  10. В Общий доступ отметьте Все.
  11. Щелкните Анализировать и убедитесь, что нет ошибок.
  12. Щелкните Опубликовать.

    После завершения процесса публикации в нижней части панели появляется уведомление.

  13. Внизу панели Опубликовать как веб-слой щелкните Управление веб-слоем, чтобы просмотреть опубликованный элемент в интернете.
  14. На панели Задачи щелкните Готово.
  15. Сохраните проект.

Теперь 3D-здания опубликованы как класс пространственных объектов мультипатч, который можно передать в администрацию Портленда. Вы создали эти здания с помощью пакета проекта решения 3DBasemaps, путём извлечения слоев с высотами из лидарных данных, с последующим использованием этих слоев для извлечения форм крыш уровня детальности LOD2 из контуров зданий. Вы отобразили контуры зданий в 3D и отредактировали пространственные объекты с высокими значениями ошибок. Помимо задач зонирования, развития и городского планирования, эти реалистичные формы крыш можно использовать для анализа в 3D солнечной освещённости и анализа затенения.

Вы можете использовать задачи, инструменты и файлы слоёв данного проекта и применительно к собственным данным. Если у вас есть контуры зданий и лидарные данные, вы можете построить формы крыш уровня прорисовки LOD2. Задача ArcGIS Pro для 3D Basemaps доступна на странице ArcGIS Solutions, она разработана, чтобы быстро воспроизвести рабочий процесс, описанный в этих уроках. Вы можете использовать загруженный пакет проекта с данными урока на ваших собственных данных или загрузить пакет проекта со страницы ArcGIS Solutions.

Другие уроки см. в Галерее уроков Learn ArcGIS.