- Запускаем GRASS в командной строке, например, так:
Код: Выделить всё
grass64 -text ~/home/user/grassdata/location/PERMANENT
- Заходим в директорию с растрами (например, это файлы *jpg)
Код: Выделить всё
cd ~/папка_с_растрами/
и импортируем один любой из них, используя модуль r.in.gdal:
Код: Выделить всё
r.in.gdal -e input=./01.jpg output=01 location=rasters
- Выходим из GRASS и заходим снова, уже в свежесозданную область:
Код: Выделить всё
grass64 -text ~/home/user/grassdata/rasters/PERMANENT
- Импортируем оставшиеся растры, используя модуль r.in.gdal и команды bash:
Код: Выделить всё
for file in ./*jpg; do r.in.gdal input=$file output=$(basename $file); done
В текущем наборе появляются растры *.red / *.green / .*blue, соответствующие каналам RGB каждого изображения. [Примечание: не все типы изображений при импорте разбиваются по каналам, например, GIF импортируются как единый растр] - Получим каждый растр в цветах RGB (модуль r.composite), по очереди "подгоняя" под них текущий регион (модуль g.region):
Код: Выделить всё
for raster in `g.mlist rast pat="*red" | sed 's/.red//g'` ; do
g.region rast=$raster.red ;
r.composite -d red=$raster.red green=$raster.green blue=$raster.blue output=`echo $raster.rgb`;
done - "Гурманам" можно поменять все символы "-" в названиях на "_":
Код: Выделить всё
for maps in `g.mlist rast pat="*rgb"` ; do
g.rename rast=$maps,`echo $maps | sed 's/-/_/g'`;
done - Создадим группы изображений, которые затем будут привязываться из другой области.
Допустим, что растры наши -- не космоснимки, а, например, топокарты или схемы, для которых привязка растров по всем каналам ни к чему. Тогда надо включить в состав группы изображений только растры *.rgb
Код: Выделить всё
for groups in `g.mlist group` ; do
i.group -r group=$groups input=$groups.red,$groups.green,$groups.blue;
i.group group=$groups input=`echo $groups | sed 's/-/_/g'`.rgb;
done
Если важно, чтобы привязывались все растры с отдельными каналами и растр RGB, добавляем в группы все *.rgb без удаления из групп всех *.red / *.green / .*blue:
Код: Выделить всё
for groups in `g.mlist group` ; do
i.group group=$groups input=`echo $groups | sed 's/-/_/g'`.rgb;
done
Пакетный импорт растров и подготовка к привязке (Linux/bash)
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Пакетный импорт растров и подготовка к привязке (Linux/bash)
Для привязки растров в GRASS нужно для начала импортировать их в новую область GRASS. Не обязательно импортировать каждое изображение в отдельную область, можно поместить все в одну.
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость