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

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 01 апр 2015, 14:58
Александр Мурый
Да, команда "r.mask -r" удаляет текущую растровую маску.
Если после <r.null> что-то идёт не так, рекомендую импортировать растры заново и повторить цикл (я не зря говорил выше про работу с копиями).

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 01 апр 2015, 15:11
kclo
Screen.jpg
Screen.jpg (103.83 КБ) 14509 просмотров
Вот, вроде все прошло гладко, бахромы нет. Как можно еще проверить то ли получилось, что нужно?

И еще вопрос: если мне понадобится заново импортировать растр и я просто удалю то, что мне ненужно из списка отображаемых, значит ли это, что он вообще удалится из набора, или просто не будет отображаться в данном рабочем пространстве?

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 01 апр 2015, 15:21
Александр Мурый
kclo писал(а):Как можно еще проверить то ли получилось, что нужно?
После всех операций у вас просто создана маска, которая отсекает "бахрому" и null-значения в отображаемом на экране растре. Чтобы получить новый "очищенный" растр, нужно выполнить:

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

r.mapcalc 'LT51700271987166XXX02_B3.clean = LT51700271987166XXX02_B3'
После этого маску можно будет выключить (r.mask -r), а при необходимости включать потом снова.
kclo писал(а): И еще вопрос: если мне понадобится заново импортировать растр и я просто удалю то, что мне ненужно из списка отображаемых, значит ли это, что он вообще удалится из набора, или просто не будет отображаться в данном рабочем пространстве?
Удаление из списка слоёв не влияет на состояние самих данных в наборе. Чтобы удалить из набора, используйте <g.remove> или <g.mremove>. Если при импорте у вас будет активна опция "перезаписать данные", то растр будет перезаписан.

Окончательно убедиться, что получилось "как надо", можно только сделав по растру диаграммы в Матлабе.

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 01 апр 2015, 15:25
kclo
Спасибо Вам огромное за помощь!

Просто камень с плеч! :)

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 01 апр 2015, 15:30
Александр Мурый
Если вам надо обрабатывать таким образом много сцен со всеми каналами, то это надо будет автоматизировать скриптом на Питоне. Как именно это делается, давайте разбираться отдельно. Или можно вместо этого сочинить модель в wxGUI.Modeler.

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 02 апр 2015, 12:42
kclo
Здравствуйте!

Думаю, скрипт был бы очень кстати тут. Буду очень благодарна, если поможете с этим.

Прямо сейчас мне требуется всего 2 сцены по 6 каналов, но недели через 2 нужны будут и другие, и немало.

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 08 апр 2015, 16:54
kclo
Хочу добавить еще тут один момент, возможно очевидный для знатоков, но ставший для меня сюрпризом. Может, кому тоже такой опыт пригодится:
При попытке экспортировать файл в формат .hdf все удаленные Null откуда-то взялись обратно, а вот если экспортировать в .tif, то все ОК

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 23 апр 2015, 17:18
kclo
Здравствуйте!
Попыталась сделать то же самое в Грасс 7, но возникла проблема. Седьмому Грассу не нравится "in" . Как только доходит до этой операции, все заканчивается.
что-то поменялось, но что написать вместо этого, не пойму.

Рылась в мануалах на сайте - что-то не нашла, как решить проблему :(
Кто-нибудь знает?

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 23 апр 2015, 17:21
kclo
Александр Мурый писал(а):Попробуйте такую последовательность команд (здесь "landsat_B1" - условный растр для примера):

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

g.region rast=landsat_B1
r.null landsat_B1 setnull=0
r.mapcalc "landsat_B1.mask = if(isnull(landsat_B1))"
r.mask in=landsat_B1.mask maskcats=0
4я строчка

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 23 апр 2015, 17:37
Александр Мурый
Если верить мануалу, надо заменить "in" на "raster".

Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null

Добавлено: 24 апр 2015, 09:58
kclo
Да, все получилось! спасибо!