Maksymalna wartość komórki ze stosu rastrowego

9

Jak znaleźć maksymalną wartość komórki ze stosu rastrowego.

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

działa dobrze, ale

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

daje NA.

Oczywiście nie w ustawionym w stos rastrze.

Oto mój kod:

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
źródło
Szukasz maksimum wszystkich warstw lub maksimum każdej warstwy? W każdym razie nie używasz maxValueprawidłowego sposobu. Według strony pomocy lepiej użyć dodatkowego argumentu... Additional argument: layer number (for RasterStack or RasterBrick objects)
Szukam maksimum wszystkich warstw, aby mieć taką samą skalę jak my.at <- seq (0, maksymalna wartość komórki wszystkich warstw, przyrost). Dzięki, Nahm
Nahm
Mam go z 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

Odpowiedzi:

9

Poniższy przykład pokazuje dwa sposoby uzyskania maksymalnej wartości rastra na stosie. Pierwszy wykorzystuje, max()który daje również wiele innych przydatnych informacji. Druga metoda wykorzystuje maxValue(), która daje tylko maksymalną wartość obu rastrów w stosie

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
źródło
0

max(MaxValue(raster)) zapewni maksymalną wartość wszystkich rastrów w stosie.

Umaomamaomao
źródło