Для примера будет использоваться
это изображение (без географической привязки, размер 2048x2048).
Часто после импорта растра (например, JPG) в наборе получаются растры типа raster.red, raster.green, raster.blue. Для отображения на экране полноцветного растра в RGB можно исп-ть модуль
d.rgb, либо сделать композитный растр с помощью
r.composite и иметь дело уже с ним.
Код: Выделить всё
GRASS 6.4.2svn (globe_east):~ > g.list rast
----------------------------------------------
raster files available in mapset <PERMANENT>:
globe_east.blue globe_east.green globe_east.red
Для вывода на экран RGB-растра пишем (вначале запускаем графический терминал):
Код: Выделить всё
d.mon x0
d.rgb r=globe_east.red g=globe_east.green b=globe_east.blue
Сделаем RGB-растр:
Код: Выделить всё
r.composite r=globe_east.red g=globe_east.green b=globe_east.blue out=globe_east.rgb
Разную информацию о растре можно посмотреть с пом. модуля
r.info:
Код: Выделить всё
GRASS 6.4.2svn (globe_east):~ > r.info globe_east.rgb
+----------------------------------------------------------------------------+
| Layer: globe_east.rgb Date: Sun Nov 13 09:25:56 2011 |
| Mapset: PERMANENT Login of Creator: user |
| Location: globe_east |
| DataBase: /home/user/Work/grassdata |
| Title: ( globe_east.rgb ) |
| Timestamp: none |
|----------------------------------------------------------------------------|
| |
| Type of Map: raster Number of Categories: 32767 |
| Data Type: CELL |
| Rows: 2048 |
| Columns: 2048 |
| Total Cells: 4194304 |
| Projection: x,y |
| N: 2048 S: 0 Res: 1 |
| E: 2048 W: 0 Res: 1 |
| Range of data: min = 0 max = 32767 |
| |
| Data Description: |
| generated by r.composite |
| |
| Comments: |
| r.composite red="globe_east.red" green="globe_east.green" blue="glob\ |
| e_east.blue" levels=32 output="globe_east.rgb" |
| |
+----------------------------------------------------------------------------+
Очистим экран и выведем теперь RGB-растр:

- globe_east_rgb.png (165.4 КБ) 11456 просмотров
Посмотрим значения растра "методом тыка" ---
d.what.rast
Чёрный космос вокруг Земли на картинке имеет значение "0"
Чтобы вывести на экран одну Землю, укажем, какие именно значения растра надо показать.
Сначала посмотрим, как распределяются значения (
r.describe):
Код: Выделить всё
GRASS 6.4.2svn (globe_east):~ > r.describe -r globe_east.rgb --q
0
32 thru 32767
Видно, что после "0" идёт группа значений 32-32767, которая, видимо, нам и нужна.
Очистим экран и выведем RGB-растр с выбором значений от 32 до 32767:
Код: Выделить всё
d.erase
d.rast globe_east.rgb catlist=32-32767

- globe_east_rgb_2.png (166.56 КБ) 11456 просмотров
Можно также указать значение "0" как NULL, т.е. "нет данных" с помощью модуля
r.null:
Теперь чёрное окружение не будет выводиться даже при простом отображении растра (d.rast globe_east.rgb)
Далее оцифруем векторный полигон и сделаем по нему растровую маску (маска используется для того, чтобы все действия с растром производились только в её пределах):
-- Создадим произвольный векторный полигон (
v.digit):
Код: Выделить всё
v.digit -n mask bgcmd="d.rast globe_east.rgb"

- globe_east_vector_mask.png (292.08 КБ) 11456 просмотров
Появится 2 окошка для оцифровки, нарисуем какую-либо границу, в центре неё поставим центроид, в конце нажмём "Save and exit" в правом верхнем углу окна оцифровщика.
*** Продолжение в след. сообщении ***