#r #raster
Вопрос:
Я новичок в r и нуждаюсь в некоторой помощи для задания заданной области из растрового кирпича с 6 различными временными рамками модели набухания. Я пробовал обрезать() и маскировать (), но безуспешно. Пожалуйста, ознакомьтесь с моим кодом ниже для загрузки данных, создания интересующей области и попытки использования crop. Я также попробовал другой метод волны Любая помощь будет очень признательна.
url <- "http://thredds.cdip.ucsd.edu/thredds/fileServer/cdip/model/MOP_grids/CA_0.01_nowcast.nc"
options(timeout = 1000)
data <- download.file(url, "/Users/mycomp/Desktop/wave_data.nc")
data_set <- "wave_data.nc"
waves <- brick(data_set, sub = "waveHs")
ROI <- st_polygon(list(rbind(c(-121.0062, 33.10625), c(-121.0062, 34.90625),
c(-118.7438, 34.90625), c(-118.7438, 33.10625), c(-121.0062, 33.10625))))
ROI <- st_sfc(ROI, crs = 4326)
t_1 <- subset(waves, 1:1)
crs(t_1) <- 4326
t_1 <- crop(t_1, ROI)
Ответ №1:
Это лучше сочетается с terra
пакетом
url <- "http://thredds.cdip.ucsd.edu/thredds/fileServer/cdip/model/MOP_grids/CA_0.01_nowcast.nc"
options(timeout = 1000)
data_set <- "wave_data.nc"
if (!file.exists(data_set)) download.file(url, data_set, mode="wb")
library(terra)
waves <- rast(data_set, sub = "waveHs")
ROU <- ext(-121.0062, -118.7438, 33.10625, 34.90625)
x <- crop(waves, ROU)
waves
#class : SpatRaster
#dimensions : 1000, 800, 6 (nrow, ncol, nlyr)
#resolution : 0.009999997, 0.009999998 (x, y)
#extent : -124.995, -116.995, 31.995, 41.995 (xmin, xmax, ymin, ymax)
#coord. ref. : proj=longlat ellps=WGS84 no_defs
#source : wave_data.nc:waveHs
#varname : waveHs (significant wave height)
#names : waveH~24800, waveH~28400, waveH~32000, waveH~35600, waveH~39200, waveH~42800
#unit : meter, meter, meter, meter, meter, meter
x
#class : SpatRaster
#dimensions : 180, 226, 6 (nrow, ncol, nlyr)
#resolution : 0.009999997, 0.009999998 (x, y)
#extent : -121.005, -118.745, 33.105, 34.905 (xmin, xmax, ymin, ymax)
#coord. ref. : proj=longlat ellps=WGS84 no_defs
#source : memory
#names : waveH~24800, waveH~28400, waveH~32000, waveH~35600, waveH~39200, waveH~42800
#min values : 0.04026191, 0.04014703, 0.04019210, 0.03900384, 0.03891155, 0.03870345
#max values : 1.974934, 1.948596, 1.862421, 1.782451, 1.709235, 1.692052
Комментарии:
1. Огромное спасибо. Случайно, вы не могли бы объяснить, почему мой код не работал? Похоже, мы сделали то же самое, но с разными пакетами?
2. Я не исследовал, но из предупреждающих сообщений, которые
raster
выдает, кажется, что он не совсем понимает этот особый вкус файла ncdf.