Генерация матрицы высот из контурного шейп-файла с использованием QGIS?


12

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

Мой прогресс / процесс до сих пор:

  1. открыть новую карту в QGIS, импортировать шейп-файл контура
  2. установить экстент GRASS, установить новый файл GRASS и т. д.
  3. попробуйте «импортировать» шейп-файл в «траву», преобразовав его в файл «трава», основываясь на догадке из формулировки на этой странице (поиск на странице: «использование qgis и grass»): управление файлами, импорт в траве, импорт вектора в траву импортируйте загруженный вектор (v.in.ogr.qgis), а затем просмотрите вывод. Это создает идентично выглядящий слой.
  4. попробуйте использовать r.surf.contour для этого - не позволяет выбрать слой.
  5. попробуйте использовать r.surf.contour2 для этого - либо вылетает QGIS, либо выдает полный блок цвета.

Любые мысли / советы о том, что я должен делать по-другому?


Сбой интерполяции, пробовал все в GRASS и в плагине GRASS, сбой, не может ли быть проблема из-за исходного шейп-файла?

Что-то, что я узнал из других источников, это «инструменты геометрии> проверка правильности геометрии», которые я запустил в шейп-файле контура, и он обнаружил множество ошибок.

Мне интересно, может ли это быть причиной того, что все мои усилия по созданию ЦМР провалились?

Может ли кто-нибудь оказать мне огромную услугу, посмотрев на мой шейп-файл, чтобы узнать, бесполезен ли я, или проблема в том, что относительный новичок будет извинен за то, что не ожидал?


Вы пытались использовать плагин intrpolation? Нет необходимости в траве ...
Херардо Хименес

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

Ответы:


6

Я использовал это руководство для создания цифровой модели местности (DTM).

Он использует в качестве входных контуров шейп-файлы, преобразованные в растровые контуры, которые впоследствии интерполируются в DTM (выглядит как непрерывная тепловая карта)

Он не использует QGIS, а просто GRASS, но это возможно с плагином Grass из QGIS.


Ссылка на учебник не работает
MDHald

@PolyGeo Человек, который отредактировал мой пост и преобразовал мою ссылку в скрытую ссылку, пропустил последний 'l' из 'html', так что теперь ссылка заканчивается теперь на 'htm'. Добавьте l, и это будет работать. Я пытался отредактировать свое сообщение, но не смог найти способ сделать это. Я надеюсь, что человек, который отредактировал и допустил ошибку, сможет это исправить. Для вашего удобства я добавлю это в этот комментарий: хорошая ссылка на учебник
Богдан

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

@PolyGeo Извините, возможно, я не вошел в систему. Теперь я вижу ссылку для редактирования.
Богдан

4

Урок GRASS выглядит как билет. Следуя вашим шагам, вы конвертируете контуры в растр где-то между 1 и 4?

Последний абзац в разделе «О программе»:

Ряд модулей r.surf. * Хотят, чтобы входные данные уже были в растровой форме, поэтому мы растеризуем контурные линии, используя столбец уровня для значений высоты. Также некоторым старым модулям r.surf. * Нравится работать только с целыми числами, поэтому для сохранения точности на уровне метра мы делаем небольшую хитрость, где мы умножаем на большое число, делаем процесс, а затем делим на это число снова (чтобы избегайте террасирования, убедитесь, что это с плавающей точкой, а не целое число).


так что в процессе растеризации я, вероятно, ошибаюсь. Должен ли я импортировать вектор в траву или сначала преобразовать его в растр? Нужно ли для этого использовать v.to.rast.constant в траве или версию QGIS?
dez93_2000

3
Процедура должна быть: импортировать контурные линии в GRASS, преобразовать вектор GRASS в растр, используя v.to.rast.attr. Затем запустите r.surf.contour, чтобы получить дем.
Миха

Миха, большое спасибо за прохождение, это разобрано. Вроде: какие-нибудь советы по получению более высокого разрешения для растра? Там, кажется, нет такой возможности. См. Ссылку на изображение с импортированными в GRASS контурами (тонкие линии), результирующим растром (красные квадраты) и матрицей
высот

1
Изучите настройки «Регион»: gis.stackexchange.com/questions/15727/…
Баррет

Спасибо Барретт, глядя на это сейчас. Если вы знаете, что размеры клеток соответствуют верхней части головы, пожалуйста, дайте мне знать! Приветствия.
dez93_2000

4

Я использую следующую процедуру с большим успехом. Откройте панель инструментов «Обработка» внутри QGIS, нажмите «SAGA», нажмите «Инструменты создания растра» и, наконец, нажмите «Триангуляция». В диалоговом окне «триангуляция» выберите файл формы, в котором есть точки данных, используемые для создания контура. Выберите поле атрибута с данными о высоте, укажите размер ячейки. Чем меньше значение размера ячейки, тем выше разрешение. Выполните, и растровый файл будет создан и загружен как слой памяти.

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