Как в GRASS GIS 6.44 исключить (вырезать) из растра Null?
-
- Участник
- Сообщения: 63
- Зарегистрирован: 07 окт 2014, 12:08
- Репутация: 2
Как в GRASS GIS 6.44 исключить (вырезать) из растра Null?
Здравствуйте!
Подскажите, пожалуйста, как из снимка Landsat удалить все пикселы, для которых нет данных (Null)? в т.ч. и "бахрому"?
Мне нужен исходный снимок (DN) и TOA reflectance, в котором нет незначащих пикселов
Подскажите, пожалуйста, как из снимка Landsat удалить все пикселы, для которых нет данных (Null)? в т.ч. и "бахрому"?
Мне нужен исходный снимок (DN) и TOA reflectance, в котором нет незначащих пикселов
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Ваc интересует какой-то один канал или надо сделать "маску" по всем каналам сцены?
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 63
- Зарегистрирован: 07 окт 2014, 12:08
- Репутация: 2
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Мне нужно получить для каждого канала видимого и ИК диапазона. Чтобы Null можно было исключить из статистической обработки (строим диаграммы рассеяния)
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Попробуйте такую последовательность команд (здесь "landsat_B1" - условный растр для примера):
После этих действий будет активирована растровая маска для растра "landsat_B1", которая отсечёт "бахрому" и null-значения.
Код: Выделить всё
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
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 63
- Зарегистрирован: 07 окт 2014, 12:08
- Репутация: 2
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Спасибо Вам большое!
Буду пробовать.
Буду пробовать.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
О результатах пишите :) Подойдёт вам этот способ или нет, зависит ещё от того, как вы дальше используете эти растры (как и в чём строите диаграммы рассеяния). И ещё совет: экспериментируйте лучше на копиях данных.
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 63
- Зарегистрирован: 07 окт 2014, 12:08
- Репутация: 2
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Здравствуйте!
Как только будет что писать, обязательно напишу.
Вчера пришлось резко отвлечься на срочную работу
Диаграммы делаем с коллегой в матлабе.
А почему экспериментировать лучше на копиях? Ведь исходный растр же Грасс не испортит?
Как только будет что писать, обязательно напишу.
Вчера пришлось резко отвлечься на срочную работу
Диаграммы делаем с коллегой в матлабе.
А почему экспериментировать лучше на копиях? Ведь исходный растр же Грасс не испортит?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Потому что модуль <r.null> действует весьма своеобразно, и восстановить исходный растр с неизменёнными null-значениями бывает проблематично (или я просто чего-то не понимаю). Так что экспериментировать всё-таки лучше на копиях.kclo писал(а): А почему экспериментировать лучше на копиях? Ведь исходный растр же Грасс не испортит?
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 63
- Зарегистрирован: 07 окт 2014, 12:08
- Репутация: 2
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Понятно.
Попробовала на MSS снимке, но заткнулась сразу же на первом этапе
g.region rast=landsat_B1
программа выдает, что растр не найден. Видимо, неправильно вбиваю его название, т.к. изображения я загрузила (пакетом, нужные каналы) в соотв.набор
снимок у меня с ID LM21850261979121XXX01
Соответственно, вбиваю LM21850261979121XXX01_B4 например.
Нужно как-то иначе?
Попробовала также обойтись способом "дрессированного кнопконажимателя" в GUI интерфейсе в меню "управление значениями Null" (тот же r.null) Открыла в меню вкладку Remove и поставила галку в окне "Удалить растрового файла битмэп с Null-значениями" (Впрочем, сильно тревожась, правильно ли я понимаю эту убойную смесь русского и английского).
После запуска модуля произошло следующее:
Мне написали, что растр был изменен и операция завершена за 0 секунд. Впрочем, изменений я не увидела. По-крайней мере, "бахрома" осталась на месте.
Растр одного из каналов вообще перестал отрисовываться.
Попробовала на MSS снимке, но заткнулась сразу же на первом этапе
g.region rast=landsat_B1
программа выдает, что растр не найден. Видимо, неправильно вбиваю его название, т.к. изображения я загрузила (пакетом, нужные каналы) в соотв.набор
снимок у меня с ID LM21850261979121XXX01
Соответственно, вбиваю LM21850261979121XXX01_B4 например.
Нужно как-то иначе?
Попробовала также обойтись способом "дрессированного кнопконажимателя" в GUI интерфейсе в меню "управление значениями Null" (тот же r.null) Открыла в меню вкладку Remove и поставила галку в окне "Удалить растрового файла битмэп с Null-значениями" (Впрочем, сильно тревожась, правильно ли я понимаю эту убойную смесь русского и английского).
После запуска модуля произошло следующее:
Мне написали, что растр был изменен и операция завершена за 0 секунд. Впрочем, изменений я не увидела. По-крайней мере, "бахрома" осталась на месте.
Растр одного из каналов вообще перестал отрисовываться.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Давайте разбираться с самого начала.
Как у вас установлена GRASS - отдельный установщик, через OSGeo4W, или вместе с QGIS?
Какой интерфейс вы запускаете - wxPython? Для начала вам надо перейти на англ. интерфейс (посмотрите в меню в настройках).
Как у вас установлена GRASS - отдельный установщик, через OSGeo4W, или вместе с QGIS?
Какой интерфейс вы запускаете - wxPython? Для начала вам надо перейти на англ. интерфейс (посмотрите в меню в настройках).
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 63
- Зарегистрирован: 07 окт 2014, 12:08
- Репутация: 2
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Спасибо, посмотрю. С русским интерфейсом тяжко.
Для установки Грасс использовала стандартный установщик Win7
Интерфейс wxPython.
Для установки Грасс использовала стандартный установщик Win7
Интерфейс wxPython.
-
- Участник
- Сообщения: 63
- Зарегистрирован: 07 окт 2014, 12:08
- Репутация: 2
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Ура, с другим снимком Грасс что-то сделал, но я теперь не знаю, как посмотреть, что вышло...
- Вложения
-
- Doc14.doc
- (278.5 КБ) 499 скачиваний
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Прикрепляйте картинки прямо к сообщению, пож-та (кнопка "Добавить вложения" внизу).
Предлагаю обойтись без командной строки, а запускать по очереди нужные модули. Я не увидел, чтобы использовались модули <g.region>, а потом <r.null>, а в данном случае это принципиально важно.
Предлагаю обойтись без командной строки, а запускать по очереди нужные модули. Я не увидел, чтобы использовались модули <g.region>, а потом <r.null>, а в данном случае это принципиально важно.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
Нужна именно такая последовательность:
g.region -> r.null -> r.mapcalc -> r.mask
В <r.null> надо указывать ваш растр, а не "landsat_B1".
Напишите, как и что получается.
g.region -> r.null -> r.mapcalc -> r.mask
В <r.null> надо указывать ваш растр, а не "landsat_B1".
Напишите, как и что получается.
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 63
- Зарегистрирован: 07 окт 2014, 12:08
- Репутация: 2
Re: Как в GRASS GIS 6.44 исключить (вырезать) из растра Null
ОК, сейчас попробую пошагово.
В <r.null> я указываю свой растр, естественно . Например, LT51700271987166XXX02_B4. Так ведь нужно?
r.mask -r ?
Как я понимаю, созданные при работе модулей маски в одном "цикле", могут мешать дальнейшей работе и, соответственно, до исходного растра будет трудно добраться
В <r.null> я указываю свой растр, естественно . Например, LT51700271987166XXX02_B4. Так ведь нужно?
А интересно, не поможет ли восстановить исходный растр командаАлександр Мурый писал(а): Потому что модуль <r.null> действует весьма своеобразно, и восстановить исходный растр с неизменёнными null-значениями бывает проблематично (или я просто чего-то не понимаю). Так что экспериментировать всё-таки лучше на копиях.
r.mask -r ?
Как я понимаю, созданные при работе модулей маски в одном "цикле", могут мешать дальнейшей работе и, соответственно, до исходного растра будет трудно добраться
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей