Как отобразить готовое изображение разреза в 3Д сцене ArcGIS

Сегодня поделюсь как можно отобразить в 3Д сцене ArcGIS Pro изображение разреза, например, взятого с геологической карты. Для этого воспользуемся инструментом редактирования ArcGIS Pro для накладывания текстур на мультипатчи https://pro.arcgis.com/ru/pro-app/help/editing/apply-textures-to-a-multipatch-feature.htm

Если вы хотите создать 3Д разрез из изображения в ArcScene, то по этой ссылке вы найдёте подробную инструкцию https://www.arcgis.com/home/item.html?id=133a6dc35a5f45d094b73effa68fefcb

В качестве примера воспользуемся разрезом с геологической карты P-43-XXIII из Электронного каталога ГГК-200 ВСЕГЕИ http://geo.mfvsegei.ru/200k/index.html . В этой статье я буду настраивать отображение в 3Д разреза по линии Б1-Б6 с геологической карты и карты полезных ископаемых доплиоценовых образований листов Р-43-XVI-Р-43-XVIII, Р-43-XXII-Р-43-XXIV http://geo.mfvsegei.ru/200k/p-43/p-43-23/index.html

Геологическая карта и карта полезных ископаемых доплиоценовых образований листов Р-43-XVI-Р-43-XVIII, Р-43-XXII-Р-43-XXIV

 

Геологический разрез по линии Б1-Б6 http://geo.mfvsegei.ru/200k/p-43/p-43-23/3/index.html

Подготовим изображение разреза. Это хорошо если размеры изображения разреза соответствуют печатным и соответственно его горизонтальному и вертикальному масштабу. В нашем примере мы можем получить макет карты с разрезом из архива http://geo.mfvsegei.ru/200k/Maket/PDF_P-43-XXIII.rar

Откроем макет карты в графическом редакторе и вырежем отдельные секции разреза, используя единую верхнюю и нижнюю отметку высот – для Б1-Б6 это 250 м и -3750 м. Для удобства можно использовать направляющие.

Нарезка изображений с секциями разреза в Adobe Photoshop

В итоге получилось 5 секций:

Так как горизонтальный и вертикальный масштаб разреза различается, то нам нужно рассчитать вертикальное увеличение (vertical exaggeration), которое в дальнейшем мы будем использовать при создании верхней и нижней границы разреза в сцене. Для разреза по линии Б1-Б6 вертикальное увеличение равно 20 (500000/25000). Это вертикальное увеличение корректно для изображения, имеющего реальные печатные размеры. Если же изображение разреза было сделано используя снимок с экрана или другим способом, при котором фактические размеры картинки не соответствуют печатным, а соответственно и масштабу – то нужно рассчитать вертикальное увеличение исходя из имеющегося размера картинки.

Загрузим Цифровую модель листа Р-43-XVIII http://geo.mfvsegei.ru/200k/DM/DigitalModel_P-43-XXIII.rar

Откроем локальную сцену в ArcGIS Pro и установим единицы высот в соответствии с единицами высот разреза – в нашем случае это метры.

Добавим в сцену линию разреза. В нашем примере она находится в ..\P-43-23\P4323\GEOL\SECT\sectl.shp

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

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

Для слоя с нижней границей разреза зададим высоту -3750 метров и вертикальное увеличение 20.

Создадим пустой класс объектов Multipatch с необходимыми атрибутами и добавим его в сцену. Перейдём в режиме редактирования и оцифруем каждую плоскость секции профиля. Обратите внимание на направление оцифровки – оно должно соответствовать изображению. В случае секции Б1-Б2 это будет Б1 (верх) –> Б2 (верх) –> Б2 (низ) –> Б1(низ) –> замыкаем на Б1 (верх). Так же можно оцифровать плоскость разреза целиком что я и сделал.

Оцифровываем мультипатч по линии Б1-Б6

Используем ранее созданные изображения с секциями в качестве текстур и применим их к каждой плоскости созданного мультипатча. Для этого в панели Редактирование -> Инструменты активируем инструмент Текстура мультипатч (Multipatch Texture) https://pro.arcgis.com/ru/pro-app/help/editing/apply-textures-to-a-multipatch-feature.htm , выделим мультипатч и укажем плоскость. После чего можно загрузить соответствующее изображение секции и применить её как текстуру.

Текстурирование мультипатча

Применив подготовленные изображения секций к оставшимся плоскостям мультипатча получим разрез целиком. К этой сцене добавил кровли баженовской свиты и тавдинского горизонта – эта тема отельного поста (если кратко то: Topo to raster или другой метод интерполяции -> Raster to TIN -> TIN Domain -> Interpolate Polygon To Multipatch или если кроме самой поверхности нужны значения: Topo to raster или другой метод интерполяции -> растр в полигоны, например Contour -> Interpolate Shape -> Layer 3D To Feature Class)

Разрез по линии Б1-Б2 в 3D сцене ArcGIS Pro

Я опубликовал полученную сцену с разрезом у другими геологическими слоями для публичного доступа в виде веб сервисов на облачном сервисе ArcGIS Online. Т.к. вертикальное увеличение у слоёв 20, то отдельно опубликовал соответствующую ЦМР 1:500 000 на основе данных, включенных в Цифровую модель листа Р-43-XVIII.

Получившуюся сцену можно покрутить прямо здесь (так же эта сцена может быть опубликована внутри сети организации на корпоративном сервере ArcGIS Enterprise) либо открыть по ссылке https://www.arcgis.com/home/webscene/viewer.html?webscene=346d7bdecdc6468396df99444d504fa2