Valor máximo de célula de uma varredura empilhada

9

Como posso encontrar um valor máximo de célula de uma varredura empilhada.

Rmax <- maxValue(RAD1998.all[[1]]) 

funciona bem, mas

Rmax <- maxValue(RAD1998.all[[2]]) 

dá NA.

Claro que não em uma varredura empilhada.

Aqui está o meu código:

RAD1998 <- raster(paste(getwd(), "/1998bil/1998ASC5min_ppt_spas1214_0001_19980202_0810_UTC.asc.bil", sep = ""))
list.ras <- mixedsort(list.files(paste(getwd(), "/1998bil/", sep = ""), full.names = T, pattern = ".asc.bil")) 
RAD1998.all <- stack(list.ras)
Nahm
fonte
Você está procurando o máximo de todas as camadas ou o máximo de cada camada? De qualquer forma, você não está usando maxValueo caminho correto. De acordo com a página de ajuda, é melhor usar argumentos adicionais... Additional argument: layer number (for RasterStack or RasterBrick objects)
Eu estou procurando o máximo de todas as camadas para ter uma mesma escala como my.at <- seq (0, valor máximo de célula de todas as camadas, incremento). Obrigado, Nahm
Nahm
Eu peguei com cellStats # geostat-course.org/system/files/lewis_tutorAM.pdf Rad1998.max <- cellStats (RAD1998.all, 'max') Rad1998.all.max <- max (Rad1998.max) Rad1998.all .max
Nahm

Respostas:

9

O exemplo a seguir mostra duas maneiras de obter o valor máximo de varredura em uma pilha. O primeiro utiliza o max()que também fornece uma série de outras informações úteis. O segundo método usa maxValue(), que fornece apenas o valor máximo de ambos os rasters na pilha

library(raster)  

# Generate some georeferenced raster data
x = matrix(rnorm(400),20,20)
rast = raster(x)
extent(rast) = c(36,37,-3,-2)
projection(rast) = CRS("+proj=longlat +datum=WGS84")

y = matrix(rnorm(400),20,20)
rast2 = raster(y)
extent(rast2) = c(36,37,-3,-2)
projection(rast2) = CRS("+proj=longlat +datum=WGS84")

raster = stack(rast, rast2)

# Now run the statistics
max(raster) # Provides min, max and additional details  # Example 1

maxValue(raster)  # Gives both values                   # Example 2...
maxValue(raster)[[1]] # Gives first in stack max value
maxValue(raster)[[2]] # Gives second in stack max value

> maxValue(raster)  # Gives both values
[1] 2.688376 2.971443
> maxValue(raster)[[1]] # Gives first in stack max value
[1] 2.688376
> maxValue(raster)[[2]] # Gives second in stack max value
[1] 2.971443
> 
> max(raster) # Provides min, max and additional details
class       : RasterLayer 
dimensions  : 20, 20, 400  (nrow, ncol, ncell)
resolution  : 0.05, 0.05  (x, y)
extent      : 36, 37, -3, -2  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : in memory
names       : layer 
values      : -1.457908, 2.971443  (min, max)
Aaron
fonte
0

max(MaxValue(raster)) fornecerá o valor máximo de todos os rasters na pilha.

Umaomamaomao
fonte