Valeur maximale de cellule d'un raster empilé

9

Comment puis-je trouver une valeur de cellule maximale à partir d'un raster empilé.

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

fonctionne bien mais

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

donne NA.

Bien sûr, pas dans un raster empilé.

Voici mon code:

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
la source
Recherchez-vous le maximum de tous les calques ou le maximum de chaque calque? Quoi qu'il en soit, vous n'utilisez pas maxValuela bonne façon. Selon la page d'aide, vous feriez mieux d'utiliser un argument supplémentaire... Additional argument: layer number (for RasterStack or RasterBrick objects)
Je recherche le maximum de toutes les couches pour avoir une même échelle comme my.at <- seq (0, valeur de cellule max de toutes les couches, incrément). Merci, Nahm
Nahm
Je l'ai eu avec 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

Réponses:

9

L'exemple suivant montre deux façons d'obtenir la valeur de raster maximale dans une pile. Le premier utilise max()ce qui vous donne également une foule d'autres informations utiles. La deuxième méthode utilise maxValue(), ce qui donne juste la valeur maximale des deux rasters de la pile

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
la source
0

max(MaxValue(raster)) fournira la valeur maximale de tous les rasters de la pile.

Umaomamaomao
la source