Страница 1 из 1

Как в GRASS маскировать определенные слои?

Добавлено: 01 мар 2013, 09:36
gimran
Здравствуйте!

В один проект загрузил несколько космоснимков, рассчитал toar и acca.
Предположим, у меня есть снимки A и B, и, соответственно, toar_A и toar_B, acca_A и acca_B.
Задача: отсечь (вычесть) из A облака по маске acca_A, отсечь (вычесть) из B облака по маске acca_B. A и B в одном проекте. Будь они в разных — r.mask с remove'ом бы сделал, но в моём случае acca_A с r.mask повредит B.
Подскажите, какую команду необходимо использовать в моём случае.

Заранее спасибо.

PS Перепутал ветку форума, просьба модератора/администратора перенести в ветку GRASS.

Re: Как в GRASS маскировать определенные слои?

Добавлено: 01 мар 2013, 10:04
gimran
Сам написал — сам ответил.
В описанном выше случае нужно использовать команду r.mapcalc.

Re: Как в GRASS маскировать определенные слои?

Добавлено: 01 мар 2013, 10:22
gimran
Указано:
# Более сложная операция для создания маски,
# назначить маску только значениям 1 и 3:
r.mapcalc "MASK=if(map==1 || map==3,null(),map)"

а как применить данную маску только к определенному слою?

Re: Как в GRASS маскировать определенные слои?

Добавлено: 01 мар 2013, 10:24
Александр Мурый
gimran писал(а): В описанном выше случае нужно использовать команду r.mapcalc.
Да, примерно так:

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

g.region rast=toar_A
r.mapcalc 'toar_A.masked = if(isnull(acca_A),toar_A,null())'
g.region rast=toar_B
r.mapcalc 'toar_B.masked = if(isnull(acca_B),toar_B,null())'

Re: Как в GRASS маскировать определенные слои?

Добавлено: 01 мар 2013, 10:46
gimran
спасибо за совет

Re: Как в GRASS маскировать определенные слои?

Добавлено: 01 мар 2013, 12:44
gimran
Вопрос закрыт. Спасибо, мешало почему-то:

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

g.region rast=toar_A