Конечной целью предполагается получение CSV файла вида X, Y, Z. Потребуется следующий инструментарий:
- QGIS
- Плагины к нему:
- Какой-нибудь плагин для подгрузки подложек типа QuickMapServices. Ну или загрузить их вручную через XYZ Connections.
- SRTM-Downloader
- Point sampling tool
- Аккаунты как минимум на одном из сайтов с рельефом со спутников:
Итак, алгоритм следующий:
- В QGIS любым известным способом открываем картографическую подложку. Это не обязательно, но как правило сильно облегчает работу.
- Создаем временный слой типа Polygon. Рисуем в нем полигон по контуру территории, для которой нам нужен рельеф. Зуммируемся так, чтоб нарисованный полигон занимал большую часть экрана (Zoom to Layer).
- С помощью строенного в QGIS инструмента Vector/Random points in polygons генерируем достаточное количество точек в пределах нарисованного в предыдущем пункте полигона. При этом создается новый временный слой с точками.
- С помощью SRTM-Downloader скачиваем растры с рельефом для области, показанной на экране. Для чего жмём последовательно Set Canvas Extend и Download. Для данных ALOS придется скачивать данные через сайт и подгружать в QGIS вручную.
- Запускаем Point sampling tool, указываем слой с точками из пункта 3 в качестве Layer containing sampling points, а в качестве Layers with fields/bands to get values from — растры (можно указать сразу несколько) из пункта 4. Тут важно отметить, что точки и растры должны быть в одной системе координат (WGS 84 - EPSG 4326 в случае если мы работаем с SRTM).
- На выходе получаем векторный слой с точками с атрибутами в виде значений рельефа. Если область интереса попадает сразу на несколько растров, то столбцов с атрибутами будет несколько. Надеюсь, не надо рассказывать, как из нескольких столбцов получить один — это можно сделать как через Field Calculator в самом QGIS, так и в Excel или любом другом табличном редакторе.
- Пересохраняем полученный точечный слой в виде CSV, не забывая выбрать нужную нам систему координат (если не выбирать, то по умолчанию координаты будут представлены в виде градусов) и указать, что GEOMETRY сохраняется в виде AS_XY.
Добрый день. А не удобнее сначала построить изолинии рельефа по растрам, а после импортировать их в модель? Сначала конечно немного сгладить растр. Кстати, в QGIS есть достаточно удобный модуль для корректировки отметок растра. Можно точечно или полигонами удалить лишние объекты.
ReplyDeleteИнтерполяция CSV в блоки модели есть во всех препроцессорах, а вот засунуть в них изолинии - тот еще квест. PMWIN (версии до 8 включительно) этого не умеет точно. GMS вроде может, но там тоже пляски с бубном. С этой задачей вроде бы хорошо справляется Model Muse, но и тут я не уверен.
DeleteКо всему прочему речь шла именно о получении точек в формате CSV из растра — я эту инструкцию не просто так написал - меня попросили помочь именно с этим. А получение изолиний да еще по сглаженному растру (там и так полный швах с точностью, а вы предлагаете её ещё уменьшить ради того, чтоб изолинии симпатичнее выглядели)- это совсем другая задача и она передо мной не стояла.
В GMS минута делов. Согласен, что текстовый файл более универсален. Фильтрация растра не сильно влияет на его точность, сглаживает грубые косяки. Я сравнивал SRTM, ASTER и съемку на одном участке. На плоских участках разлет по отметкам около 1-3 м, на склонах до 8-10. SRTM вроде точнее получается.
DeleteС AW3D30 совсем не понял, что у них с отметками, они значительно отличаются. Может нужно дополнительно вводить какой-то коэффициент, так и не разобрался
А не проще в том же Surfer одной кнопкой конвертировать geoTIFF в CSV? Современные компьютеры от такого количества точек уже не вешаются.
DeleteИли идея именно сделать бесплатным QGIS?
Да, покупать Surfer ради такой задачи - ну такое себе. Кроме того, в QGIS есть алгоритм gdal2xyz, делающий абсолютно то же самое - переводит растр в csv.
DeleteЯ предложил чуть более сложный алгоритм, но он более гибкий.