我需要一些帮助编写一个循环来下载选定的模型预测列表。我是数据科学世界的新手,我在循环中挣扎。下面我已经张贴了我已经尝试过的,但没有运气。我已经包括了最初的下载链接。理想的最终目标是将所有这些模型项目堆放在一块光栅砖中。
"awip3200“一节是模型列表应该循环通过的部分。(awip3203,awip3206,awip3209.等)。我还附加了代码,它工作在一个型号下线。
谢谢!
#Loop
mod.list <- c(00, 03, 06, 09, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66,
69, 72, 75, 78, 81, 84)
for(i in 1:seq_along(mod.list)) {
url_ucomp[[i]] <- ("https://nomads.ncep.noaa.gov/cgi-bin/filter_nam_na.pl?file=nam.t00z.awip32" , mod.list[[i]] , ".tm00.grib2&lev_10_m_above_ground=on&var_UGRD=on&leftlon=0&rightlon=360&toplat=90&bottomlat=-90&dir=%2Fnam.20220511")
wind_u[i] <- download.file(url_ucomp[[i]], here("data", "wind_u.grb"))
wind_u[i] <- here("data", "wind_u.grb") %>%
raster()
}
#single model download
url_ucomp_00 <- ("https://nomads.ncep.noaa.gov/cgi-bin/filter_nam_na.pl?file=nam.t00z.awip3200.tm00.grib2&lev_10_m_above_ground=on&var_UGRD=on&leftlon=0&rightlon=360&toplat=90&bottomlat=-90&dir=%2Fnam.20220511")
wind_u_00 <- download.file(url_ucomp_00, here("data", "wind_u_00.grb"))
wind_u_00 <- here("data", "wind_u_00.grb") %>%
raster()
plot(wind_u_00)发布于 2022-05-11 19:08:47
下面的代码成功下载了所有文件。所作的修改如下。
mod.list必须是字符向量,否则00是数字0,链接是错误的;"data",下载的文件名是"widn_u_??.grb","??"替换为mod.list.中的值
library(here)
library(dplyr)
library(raster)
mod.list <- c("00", "03", "06", "09", "12", "15", "18", "21", "24", "27",
"30", "33", "36", "39", "42", "45", "48", "51", "54", "57", "60",
"63", "66", "69", "72", "75", "78", "81", "84")
gribstring <- "wind_u_%s.grb"
wind.u <- vector("list", length(mod.list))
for(i in seq_along(mod.list)) {
url_ucomp <- paste0("https://nomads.ncep.noaa.gov/cgi-bin/filter_nam_na.pl?file=nam.t00z.awip32" , mod.list[[i]] , ".tm00.grib2&lev_10_m_above_ground=on&var_UGRD=on&leftlon=0&rightlon=360&toplat=90&bottomlat=-90&dir=%2Fnam.20220511")
gribfile <- sprintf(gribstring, mod.list[i])
download.file(url_ucomp, here("Temp", gribfile))
#
#wind.u[[i]] <- here("Temp", gribfile) %>% raster()
#
}最后一个循环行被注释掉,因为它抛出了一个错误。
here("Temp", "wind_u_00.grb") %>% raster().local中的错误(.Object,.):
C:\Users\ruipb\Documents\Temp\wind_u_00.grb是一个格里布文件,但没有成功识别光栅数据集。.rasterObjectFromFile(x,band = band,objecttype = "RasterLayer“)中的错误,
无法从此文件创建RasterLayer对象.
https://stackoverflow.com/questions/72205994
复制相似问题