Растр из текстовой матрицы

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Растр из текстовой матрицы

Сообщение bolotoved » 18 окт 2011, 08:57

Можно ли в QGIS или напрямую в GDAL преобразовать матрицу с разделителями пробелами в tif? Может ее нужно перед импортом как-то специальным образом подготовить?
Последний раз редактировалось bolotoved 19 окт 2011, 08:02, всего редактировалось 1 раз.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Растр из тектовой матрицы

Сообщение Александр Мурый » 18 окт 2011, 09:30

txt --> CSV --> VRT --> gdal_rasterize
Редактор материалов, модератор форума

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: Растр из тектовой матрицы

Сообщение bolotoved » 18 окт 2011, 11:37

Что-то застрял на стадии CSV --> VRT
В приложении собственно матрица, разделители -- запятые. 360*180.
Прописал команду:

Код: Выделить всё

gdal_rasterize -ts 360 180 matrix.csv matrix.vrt

Спрашивает про параметры -l, -a, как их правильно указать?
Вложения
matrix.csv
(126.56 КБ) 590 скачиваний

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Растр из тектовой матрицы

Сообщение Александр Мурый » 18 окт 2011, 13:19

gdal_rasterize делает tif уже из готового vrt. Готовить VRT надо по этому рецепту.

Матрица довольно ужасная. Хотя нет, не матрица, а то, что это CSV.
Для перевода в VRT текст нужен в несколько полей, желательно XYZ, где Z -- значение, по к-й будем делать растр, а XY -- координаты точек.
Редактор материалов, модератор форума

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: Растр из тектовой матрицы

Сообщение bolotoved » 18 окт 2011, 14:44

Да уж :(
Полагаю, что должен быть какой-то иной способ преобразования матрицы m*n в растр, пусть и без привязки.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Растр из тектовой матрицы

Сообщение Voltron » 18 окт 2011, 15:12

Такой способ есть. Матрицу загоняем в массив NumPy, потом это безобразие сохраняется как канал растра. Все

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Растр из тектовой матрицы

Сообщение Максим Дубинин » 18 окт 2011, 15:23

или превратить матрицу в ASCII растр убрав все переводы строки и добавив минимальный заголовок
пристегивайтесь, турбулентность прямо по курсу

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: Растр из тектовой матрицы

Сообщение bolotoved » 18 окт 2011, 15:42

Максим Дубинин писал(а):или превратить матрицу в ASCII растр убрав все переводы строки и добавив минимальный заголовок
Подытожим.
Чтобы преобразовать матрицу m*n в растр нужно:
1. Представить ее в виде массива где в качестве разделителя используется пробел.
2. Прописать заголовок файла в формате Arc/Info ASCII Grid, который понимает GDAL через драйвер AAIGrid. Для матрицы 360*180, (представляющий массив с разрешением 1 градус на весь мир) он будет выглядеть так:

Код: Выделить всё

ncols        360
nrows        180
xllcorner    -180.000000000000
yllcorner    -90.000000000000
cellsize     1.000000000000
nodata_value 0
Где:
ncols -- количество колонок матрицы
nrows -- количество строк матрицы
xllcorner -- координаты западной границы участка
yllcorner -- координаты южной границы участка
cellsize -- разрешение растра (в градусах?)
nodata_value -- значение "нет данных".
Примечание: координаты могут указываться в десятичных градусах или в формате DD:MM:SS

3. Поменять расширение текстового файла на asc.
4. Полученный файл можно открыть в QGIS и экспортировать в любой другой растровый формат.
Последний раз редактировалось bolotoved 19 окт 2011, 08:18, всего редактировалось 2 раза.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Растр из тектовой матрицы

Сообщение ericsson » 18 окт 2011, 19:18

То есть, говоря русским языком, добавить заголовок в формате Arc/Info ASCII Grid, который понимает GDAL через драйвер AAIGrid. Там еще всякие параметры имеются.

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: Растр из текстовой матрицы

Сообщение bolotoved » 19 окт 2011, 08:18

Спасибо, поправил.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Растр из текстовой матрицы

Сообщение ericsson » 19 окт 2011, 09:13

Есть "подводный камень".
Те параметры xllcorner, yllcorner, которые предложены, указывают на соответствующие края растра, если природа данных такова, что отсчеты находятся в центрах ячеек, и известны именно их координаты, то использовать надо параметры xllcenter, yllcenter

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость