Страница 1 из 2
					
				исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 16 июн 2012, 21:03
				 ecotherine
				в GRASS считаю статистику, но не знаю, как убрать эти всё портящие значения! в одном случае (NDVI) нужно всё, кроме отрицательных, в другом -  исключить fillvalue, равные 32700. 
пожалуйста, подскажите! времени совсем нет...
			 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 16 июн 2012, 21:56
				 rhot
				в одном случае (NDVI) нужно всё, кроме отрицательных
Код: Выделить всё
r.mapcalc expression='output=if(ndvi>=0,ndvi,null())'
в другом - исключить fillvalue, равные 32700
Код: Выделить всё
r.mapcalc expression='output=if(fillvalue_raster=32700,null(),fillvalue_raster)'
 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 16 июн 2012, 21:57
				 Александр Мурый
				Вы используете GRASS Tools в QGIS, так? 
-- Для первой задачи вам нужен растровый калькулятор (в GRASS это модуль 
r.mapcalc). Пример команды для получения только положительных значений растра (так это выглядит в "чистой" GRASS, без QGIS):
Код: Выделить всё
r.mapcalc 'ndvi_pos = if(ndvi>0,ndvi,null())'
-- Чтобы "исключить fillvalue, равные 32700", используйте модуль 
r.null:
 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 16 июн 2012, 21:59
				 rhot
				amuriy, мы по-разному думаем))
			 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 16 июн 2012, 23:12
				 ecotherine
				это можно автоматизировать? у меня 50 файлов
			 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 16 июн 2012, 23:37
				 Александр Мурый
				ecotherine писал(а):это можно автоматизировать? 
Можно, через цикл на каком-либо скриптовом языке (shell, Python, Perl, PHP). 
Я, например, использую юниксовый 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. Спрашивайте, если что не ясно. Или (если это реально) выложите где-то ваши растры, обработаем как надо 

 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 01:09
				 ecotherine
				я не умею программировать...
а что делать в mapcalc? можно подробно?
у меня win7.
[ Сообщение с мобильного устройства ]
			 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 08:23
				 rhot
				В GRASS 7.0 (фактически доступна с 6.4.2, но советую всё-таки пользоваться 
самой новой) есть 
Graphical Modeler, который не требует навыков программирования. Программа работает и с условиями, и с циклами. НО, довольно сырая, хотя я сумел пару моделей в ней построить.
а что делать в mapcalc? можно подробно?
r.mapcalc и есть растровый калькулятор в GRASS. 
Вот справка 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 09:03
				 KolesovDmitry
				amuriy писал(а):
Но: всё это надо делать в "чистой" GRASS, а не через "GRASS Tools" в QGIS.
Почему? Вроде же в GRASS Tools была консоль, в которой можно было работать под bash... по крайней мере пару лет назад я ее видел.
 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 09:31
				 Александр Мурый
				KolesovDmitry писал(а):Вроде же в GRASS Tools была консоль, в которой можно было работать под bash... по крайней мере пару лет назад я ее видел.
Я тоже когда-то видел, что там в шелле запускается GRASS, потом с определённого времени стал запускаться пустой шелл.
rhot писал(а): Graphical Modeler, который не требует навыков программирования. Программа работает и с условиями, и с циклами.
   
Ок, давайте разберёмся, как создать в "моделлере" цикл?
 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 09:38
				 rhot
				amuriy писал(а):Ок, давайте разберёмся, как создать в "моделлере" цикл?
amuriy, хотите прямо в этой теме разобраться? 
 http://www.youtube.com/watch?v=LFdn1VozMfo
http://www.youtube.com/watch?v=LFdn1VozMfo
amuriy писал(а):потом с определённого времени стал запускаться пустой шелл.
не понял, как это?
команды там нормально выполняются, только что проверил.
 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 10:07
				 Александр Мурый
				
Ну велкам ту зе отдельная тема, коли тут негоже 

Посмотрел захватывающий ролик. Вся лажа в том, что для всего этого нужно понимать азы программирования (цикл -- он и в граф. моделлере цикл), ну и неплохо знать грассовские модули.. 
В итоге я бы рекомендовал топикстартеру установить GRASS как описано 
здесь и в OSGeo4W Shell пройтись циклом (который ещё надо сочинить в досовском CMD) по нужным растрам (для выборок с условиями есть спец. модуль 
g.mlist). 
Напишите, что ли, примеры названий ваших растров..
 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 10:14
				 rhot
				amuriy писал(а):Вся лажа в том, что для всего этого нужно понимать азы программирования
а в чём собственно лажа? Разве щас не учат в общеобразовательной школе азам программирования на BASIC или Pascal на уроках информатики?
 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 10:19
				 Александр Мурый
				rhot писал(а):не понял, как это?
команды там нормально выполняются, только что проверил.
Значит, это я один такой везучий 
 
 
Может быть, проблема в версиях GRASS. В "тулзах" используется древняя уже 6.4.0RC, которая как его зависимость ставится в систему. Я мог просто потереть старую грасс, т.к. пользуюсь самосборной, вот шелл из GRASS Tools и не запускается как надо... Влезать глубоко не хочется, т.к. я не пользуюсь сиим чудом природы.
rhot писал(а):а в чём собственно лажа? Разве щас не учат в общеобразовательной школе азам программирования на BASIC или Pascal на уроках информатики?
Не здесь же дискутировать, кого и как учили..  

  Может, кого и учат..
 
			
					
				Re: исключение отрицательных и fillvalue значений в расчетах
				Добавлено: 17 июн 2012, 18:03
				 ecotherine
				rhot писал(а):В итоге я бы рекомендовал топикстартеру установить GRASS как описано здесь и в OSGeo4W Shell пройтись циклом (который ещё надо сочинить в досовском CMD) по нужным растрам (для выборок с условиями есть спец. модуль g.mlist).
Напишите, что ли, примеры названий ваших растров..
спасибо! попробую установить.
имена файлов: MOD13A3.A2001274.h21v04.005.2007109185753_MOD_Grid_monthly_1km_VI
сконвертированы в multy-band geotiff. 
если я запущу GRASS на компе,где нет кугиса, все это возможно? повторюсь,я вообще не умею программировать. сколько времени может занять процесс создания условий для такого пересчета растров?