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

Калькулятор r.mapcalc

Добавлено: 04 май 2012, 14:40
rhot
Есть растровые слой границ и слой облаков. Нужно из слоя границ вычесть слой облаков, получив "продырявленный облаками" растр слоя с границами.
Пробовал вычитать через r.mapcalc но на выходе получаю не растр с границами, а растр облаков, расположенных внутри слоя границ.

Использованная команда:

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

r.mapcalc 'new=borders@PERMANENT-acca@20110822'
Что я делаю не так?

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 14:51
Александр Мурый
--

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 15:12
rhot
Не получается =(
Команда №3 не совсем понятна: borders.acca@20110822 - это название нового растра?

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 15:34
Александр Мурый
rhot писал(а): Команда №3 не совсем понятна: borders.acca@20110822 - это название нового растра?
Да. Просто я ж не знаю имя набора.. Можно так:

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

r.mapcalc 'borders.acca = borders@PERMANENT'

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 15:40
rhot
Пробовал - не получается. В чём принцип-то? Когда маскуем район облаками, мы никак не получим растр границ, а ведь расчёт ведётся внутри границ облаков.

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 15:42
Александр Мурый
Каюсь, выше были плохие советы.

А если попробовать так:

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

r.mapcalc 'borders.acca = if(acca@20110822,borders@PERMANENT,null())'
?

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 15:50
Александр Мурый
Опять мимо ..

Теперь проверил на пробных растрах -- вроде бы, работает:

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

r.mapcalc 'borders.acca = if(isnull(acca@20110822),borders@PERMANENT,null())'
Делать никакие маски перед этой командой не надо! Просто задать регион по растрам.

Все ранние косяки я сотру, чтоб не путаться :oops:

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 16:01
rhot
amuriy, щас нормально, создаёт растр со значениями 0,1 где 0 для облаков, а 1 всё остальное.
Спасибо :)
Делать никакие маски перед этой командой не надо!
Делать маску надо - маску по слою границ, если не делать облака вылезают за пределы слоя границ.

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 16:22
Александр Мурый
rhot писал(а):создаёт растр со значениями 0,1 где 0 для облаков, а 1 всё остальное.
Я запутался -- так где слой границ, а где и слой облаков? Я посчитал в примере, что acca@20110822 -- облака, а borders@PERMANENT -- растр границ, из которого надо вырезать облака.. :) Если наоборот, то в выражении <r.mapcalc> надо поменять растры местами.

Re: Калькулятор r.mapcalc

Добавлено: 04 май 2012, 17:31
rhot
всё верно, acca@20110822 -- облака, а borders@PERMANENT -- растр границ, из которого надо вырезать облака