Valor máximo de celda de un ráster apilado

9

¿Cómo puedo encontrar un valor de celda máximo de un ráster apilado?

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

funciona bien pero

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

da NA.

Por supuesto que no en una trama apilada.

Aquí está mi 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
fuente
¿Estás buscando el máximo de todas las capas o el máximo de cada capa? De todos modos, no estás utilizando maxValuela forma correcta. De acuerdo con la página de ayuda, es mejor que use argumentos adicionales... Additional argument: layer number (for RasterStack or RasterBrick objects)
Estoy buscando el máximo de todas las capas para tener una misma escala como my.at <- seq (0, valor máximo de celda de todas las capas, incremento). Gracias, Nahm
Nahm
Lo obtuve con 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

Respuestas:

9

El siguiente ejemplo muestra dos formas de obtener el valor máximo de ráster en una pila. La primera utiliza, max()que también le brinda una gran cantidad de otra información útil. Utiliza el segundo método maxValue(), que proporciona solo el valor máximo de ambos rásteres en la pila

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
fuente
0

max(MaxValue(raster)) proporcionará el valor máximo de todos los rásteres en la pila.

Umaomamaomao
fuente