У меня очень большой rasterbrick
и некоторые координаты содержатся в другом объекте. Я sh использую точки в качестве маски, возвращая NA для всех ячеек , за исключением , где расположены мои точки (для моего конкретного приложения мне нужно сохранить экстент, разрешение и источник ввода rasterbrick
).
Я могу выполнить sh это с помощью следующего:
library(raster)
library(tidyverse)
library(sf)
# Load a rasterbrick
b <- brick(system.file("external/rlogo.grd", package="raster"))
# Create some random points as test points for masking
pts<-as_tibble(rasterToPoints(b[[1]])) %>%
select(x, y) %>%
sample_n(15, replace = TRUE)
plot(b[[1]])
points(pts)
# Convert points to SpatialPoints so they can be passed to `mask`
pts <- st_as_sf(x = pts, coords = c("x", "y"),
crs = crs(b))
# Mask stack using pts
xx<-raster::mask(b, pts)
plot(xx)
В этом примере код выполняется очень быстро, но при его увеличении это может занять много времени. бежать. Что может быть более эффективным способом сделать это для большого, многослойного rasterbrick
? Для ощущения масштаба мои rasterbrick's are
360, 720, 259200, 3653 (nrow, ncol, ncell, nlayers) `так что было бы здорово ускорить процесс.