исключение отрицательных и fillvalue значений в расчетах
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 05 июн 2012, 11:25
- Репутация: 0
исключение отрицательных и fillvalue значений в расчетах
в GRASS считаю статистику, но не знаю, как убрать эти всё портящие значения! в одном случае (NDVI) нужно всё, кроме отрицательных, в другом - исключить fillvalue, равные 32700.
пожалуйста, подскажите! времени совсем нет...
пожалуйста, подскажите! времени совсем нет...
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: исключение отрицательных и fillvalue значений в расчетах
в одном случае (NDVI) нужно всё, кроме отрицательных
Код: Выделить всё
r.mapcalc expression='output=if(ndvi>=0,ndvi,null())'
в другом - исключить fillvalue, равные 32700
Код: Выделить всё
r.mapcalc expression='output=if(fillvalue_raster=32700,null(),fillvalue_raster)'
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: исключение отрицательных и fillvalue значений в расчетах
Вы используете GRASS Tools в QGIS, так?
-- Для первой задачи вам нужен растровый калькулятор (в GRASS это модуль r.mapcalc). Пример команды для получения только положительных значений растра (так это выглядит в "чистой" GRASS, без QGIS):
-- Чтобы "исключить fillvalue, равные 32700", используйте модуль r.null:
-- Для первой задачи вам нужен растровый калькулятор (в GRASS это модуль r.mapcalc). Пример команды для получения только положительных значений растра (так это выглядит в "чистой" GRASS, без QGIS):
Код: Выделить всё
r.mapcalc 'ndvi_pos = if(ndvi>0,ndvi,null())'
Код: Выделить всё
r.null ndvi setnull=32700
Редактор материалов, модератор форума
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: исключение отрицательных и fillvalue значений в расчетах
amuriy, мы по-разному думаем))
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 05 июн 2012, 11:25
- Репутация: 0
Re: исключение отрицательных и fillvalue значений в расчетах
это можно автоматизировать? у меня 50 файлов
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: исключение отрицательных и fillvalue значений в расчетах
Можно, через цикл на каком-либо скриптовом языке (shell, Python, Perl, PHP).ecotherine писал(а):это можно автоматизировать?
Я, например, использую юниксовый shell (скрипты командной оболочки). Если у вас Windows, напишите bat-файл с циклом наподобие этого (этот на shell):
Код: Выделить всё
for RAST in $(g.mlist rast pat=ndvi_*); do
r.mapcalc "${RAST}_pos = if($RAST>0,$RAST,null())"
r.null $RAST setnull=32700
done
Но: всё это надо делать в "чистой" GRASS, а не через "GRASS Tools" в QGIS.
P.S. Спрашивайте, если что не ясно. Или (если это реально) выложите где-то ваши растры, обработаем как надо
Редактор материалов, модератор форума
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 05 июн 2012, 11:25
- Репутация: 0
Re: исключение отрицательных и fillvalue значений в расчетах
я не умею программировать...
а что делать в mapcalc? можно подробно?
у меня win7.
[ Сообщение с мобильного устройства ]
а что делать в mapcalc? можно подробно?
у меня win7.
[ Сообщение с мобильного устройства ]
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: исключение отрицательных и fillvalue значений в расчетах
В GRASS 7.0 (фактически доступна с 6.4.2, но советую всё-таки пользоваться самой новой) есть Graphical Modeler, который не требует навыков программирования. Программа работает и с условиями, и с циклами. НО, довольно сырая, хотя я сумел пару моделей в ней построить.
r.mapcalc и есть растровый калькулятор в GRASS. Вот справкаа что делать в mapcalc? можно подробно?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: исключение отрицательных и fillvalue значений в расчетах
Почему? Вроде же в GRASS Tools была консоль, в которой можно было работать под bash... по крайней мере пару лет назад я ее видел.amuriy писал(а): Но: всё это надо делать в "чистой" GRASS, а не через "GRASS Tools" в QGIS.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: исключение отрицательных и fillvalue значений в расчетах
Я тоже когда-то видел, что там в шелле запускается GRASS, потом с определённого времени стал запускаться пустой шелл.KolesovDmitry писал(а):Вроде же в GRASS Tools была консоль, в которой можно было работать под bash... по крайней мере пару лет назад я ее видел.
rhot писал(а): Graphical Modeler, который не требует навыков программирования. Программа работает и с условиями, и с циклами.
Ок, давайте разберёмся, как создать в "моделлере" цикл?
Редактор материалов, модератор форума
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: исключение отрицательных и fillvalue значений в расчетах
amuriy, хотите прямо в этой теме разобраться?amuriy писал(а):Ок, давайте разберёмся, как создать в "моделлере" цикл?
http://www.youtube.com/watch?v=LFdn1VozMfo
не понял, как это?amuriy писал(а):потом с определённого времени стал запускаться пустой шелл.
команды там нормально выполняются, только что проверил.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: исключение отрицательных и fillvalue значений в расчетах
Ну велкам ту зе отдельная тема, коли тут негожеrhot писал(а):хотите прямо в этой теме разобраться?
http://www.youtube.com/watch?v=LFdn1VozMfo
Посмотрел захватывающий ролик. Вся лажа в том, что для всего этого нужно понимать азы программирования (цикл -- он и в граф. моделлере цикл), ну и неплохо знать грассовские модули..
В итоге я бы рекомендовал топикстартеру установить GRASS как описано здесь и в OSGeo4W Shell пройтись циклом (который ещё надо сочинить в досовском CMD) по нужным растрам (для выборок с условиями есть спец. модуль g.mlist).
Напишите, что ли, примеры названий ваших растров..
Редактор материалов, модератор форума
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: исключение отрицательных и fillvalue значений в расчетах
а в чём собственно лажа? Разве щас не учат в общеобразовательной школе азам программирования на BASIC или Pascal на уроках информатики?amuriy писал(а):Вся лажа в том, что для всего этого нужно понимать азы программирования
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: исключение отрицательных и fillvalue значений в расчетах
Значит, это я один такой везучийrhot писал(а):не понял, как это?
команды там нормально выполняются, только что проверил.
Может быть, проблема в версиях GRASS. В "тулзах" используется древняя уже 6.4.0RC, которая как его зависимость ставится в систему. Я мог просто потереть старую грасс, т.к. пользуюсь самосборной, вот шелл из GRASS Tools и не запускается как надо... Влезать глубоко не хочется, т.к. я не пользуюсь сиим чудом природы.
Не здесь же дискутировать, кого и как учили.. Может, кого и учат..rhot писал(а):а в чём собственно лажа? Разве щас не учат в общеобразовательной школе азам программирования на BASIC или Pascal на уроках информатики?
Редактор материалов, модератор форума
-
- Новоприбывший
- Сообщения: 13
- Зарегистрирован: 05 июн 2012, 11:25
- Репутация: 0
Re: исключение отрицательных и fillvalue значений в расчетах
спасибо! попробую установить.rhot писал(а):В итоге я бы рекомендовал топикстартеру установить GRASS как описано здесь и в OSGeo4W Shell пройтись циклом (который ещё надо сочинить в досовском CMD) по нужным растрам (для выборок с условиями есть спец. модуль g.mlist).
Напишите, что ли, примеры названий ваших растров..
имена файлов: MOD13A3.A2001274.h21v04.005.2007109185753_MOD_Grid_monthly_1km_VI
сконвертированы в multy-band geotiff.
если я запущу GRASS на компе,где нет кугиса, все это возможно? повторюсь,я вообще не умею программировать. сколько времени может занять процесс создания условий для такого пересчета растров?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость