Инструмент с открытым исходным кодом для преобразования матрицы высот в 3D-модель


11

Я хотел бы преобразовать файл DEM (Digitial Elevation Model) (например, из SRTM) в 3D-модель, которую я затем могу редактировать с помощью обычных инструментов 3D-моделирования (например, Meshlab / Blender / etc.). Однако я использую Ubuntu Linux.

Итак, есть ли программы / инструменты с открытым исходным кодом, которые могут это сделать? И если да, можете ли вы дать мне простое руководство о том, как преобразовать ЦМР в 3D-модель. (программы командной строки отработаны)

Ответы:


7

Blender имеет Python API. Поэтому я использую Python в Blender и импортирую библиотеки GDAL и создаю нативную сетку Blender непосредственно из данных ГИС. Единственное, с чем вам нужно быть осторожным, это то, что версия GDAL, которая у вас есть, соответствует версии Python в используемой вами версии Blender.

РЕДАКТИРОВАТЬ Плагины:
Если вы не хотите писать свой собственный скрипт с использованием Blender Python API и GDAL, есть несколько плагинов, которые доступны в стандартной комплектации, которые могут помочь:

  1. Импорт DXF
  2. Существуют импортеры для OBJ, X3D и VRML, и некоторые трехмерные ГИС-системы будут экспортировать в них (например, ArcScene и NVIZ), хотя этот маршрут может быть обязательно абсолютно бесплатным.

Существует дополнение для данных XYZ, но оно нестандартно и предназначено главным образом для молекулярных данных, хотя, возможно, вы могли бы согнуть их по своему желанию. Полный ассортимент готовых импортеров для Blender смотрите здесь . В Blender есть импортер PDS .IMG, но GDAL может только читать файлы IMG PDS (не путать с файлами Erdas IMG, которые отличаются).

Так что, действительно, лучший выбор, если у вас есть GeoTiff, ASC или любой другой растр данных о высоте, - это написать небольшой скрипт для итерации по растру, поскольку в большинстве случаев нет готового плагина, если вы не можете экспортируйте ваш DTM в DXF, VRML или OBJ.


Есть ли какой-то конкретный плагин или что-нибудь, что я могу скачать и поиграть?
Рори

1
Лучшее, что вы можете сделать, - это написать сценарий самостоятельно - смотрите мои правки.
MappaGnosis

4

Я обнаружил, что NVIZ (который входит в состав пакета GRASS) является полезным инструментом для визуализации данных матрицы высот в виде 3D-модели.

Чтобы установить плагин GRASS (если у вас уже установлен QGIS), просто перейдите в «Плагины» -> «Управление и установка плагинов» -> «Получить больше» и установите GRASS. Убедитесь, что он отмечен в вашем списке управления и установки плагинов!

  1. После установки GRASS начните с добавления растрового слоя. Вы можете сделать это, перейдя в Layer -> Add Raster Layer -> Select

  2. Затем создайте новый набор карт в GRASS. Сделайте это, перейдя в Плагины -> GRASS -> Новый набор карт или используйте панель инструментов GRASS, которая должна быть видимой. A. Выберите местоположение для вашего набора данных GRASS B. Введите новое имя местоположения по вашему выбору C. Выберите желаемую проекцию D. Выберите регион из выпадающего списка или выберите вручную, используя координаты широта / долгота (вы можете посмотреть широта / длина вашего местоположения в Интернете) E. Введите имя нового набора карт и затем нажмите «Готово».

  3. Затем вы захотите загрузить свой DEM или растровый слой в GRASS. Вы сделаете это: A. Перейдите к плагинам -> GRASS -> Открыть инструменты GRASS B. В разделе «Список модулей» выберите «r.in.gdal.qgis» C. В разделе «Загруженный слой» выберите свой слой из выпадающий список и назовите выходной файл D. Нажмите «Выполнить»

  4. Теперь вам нужно добавить растровый слой GRASS к вашему набору карт A. Перейдите к плагинам -> GRASS -> Добавить растровый слой GRASS или нажмите. Б. Выберите ваше местоположение и набор карт, затем выберите слой и нажмите «ОК».

  5. Вы можете покрасить свой растр. Если это так, A. Убедитесь, что вы выбрали правильный выходной растровый слой B. Перейдите в Плагины -> GRASS -> Открыть инструменты GRASS C. В «Списке модулей» нажмите «r.colors.table». D. Выберите входной слой, а затем выберите «Тип таблицы цветов». E. Нажмите «Выполнить».

  6. СЕЙЧАС для забавной части. Визуализация в 3D с использованием NVIZ. Таким образом, вы захотите A. Установить конкретную область карты для 3D-моделирования, перейдя в Плагины -> GRASS -> Редактировать текущую область GRASS. Затем либо вручную выберите нужную область, нарисовав мышью красную рамку, либо установите координаты в появившемся диалоговом окне. (Это помогает NVIZ определить, какое разрешение использовать). B. Перейдите к плагинам -> GRASS -> Открыть инструменты GRASS. C. В «Списке модулей» выберите «nviz». D. Выберите растр для «Высота» и «Цвет» (они могут быть одинаковыми. 1), и нажмите на квадрат справа (что означает «Использовать регион этой карты»). E. Нажмите «Бег».

Затем поиграйте с разными видами, высотой и освещением, пока не получите желаемое изображение!

Надеюсь, это поможет, и, пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы!


Отмечу, что у меня были проблемы с проекцией при использовании слоя SRTM. У кого-нибудь есть предложения?
Жиза

Какие проблемы?
markusN


1

nviz - это не отдельное приложение, а часть GRASS GIS для трехмерной визуализации и анимации. Если вы хотите экспортировать растры, вам нужна GRASS GIS (или GRASS в QGIS). Вы можете экспортировать матрицы высот в различные форматы файлов , включая поле высоты Terragen (.ter), VTK, PovRay, xyz и т. Д.

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

Но у Blender есть также плагины для непосредственного импорта DEMS, например, Blender Digital Elevation Importer или импорта шейп-файлов и растров ( ESRI Shapefile import / export и растровый импортер с географической привязкой ).

Kodex также представляет решение для визуализации данных QGIS с помощью Blender в формате SVG

Смотрите также Shaded Relief в Blender с данными SRTM


1

Вы можете просто добавить файл dem как * .tif в blender с надстройкой «import image as plane». Посмотрите этот пост, где вы можете увидеть, как я сделал несколько 3d-карт высокого разрешения, используя демо в blender: -> /gis//a/80842/24809

После загрузки дема в блендер вы также можете редактировать его, как вы можете редактировать изображение.



0

Вы пробовали USGS & GTOPO30 DEM Importer ?


Некоторые скриншоты (и имена файлов) на этой странице делают ее похожей на программу MS Windows. Мне нужно что-то, что может работать на Linux.
Рори

Я не уверен, работает ли он на Linux или нет. Возможно, вы можете проверить их документацию для этого.
Catlover


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.