我正在使用由APEC气候中心开发的AIMS模型。该模型从ftp服务器下载数据,然后从datasource.R调用LoadCmip5DataFromAdss
函数将数据加载到模型中。
#do.call("LoadCmip5DataFromAdss", parameters)
在github上我找到了LoadCmip5DataFromAdss
的源代码,它给出了ftp服务器下载数据的路径
LoadCmip5DataFromAdss <- function(dbdir, NtlCode) {
fname <- paste("cmip5_daily_", NtlCode, ".zip", sep="")
if(nchar(NtlCode)==4 && substr(NtlCode,1,2)=="US"){
adss <- "ftp://cis.apcc21.org/CMIP5DB/US/"
}else{
adss <- "ftp://cis.apcc21.org/CMIP5DB/"
}
我想从本地目录获取数据而不是下载,因为这需要花费很多时间。我怎么做?
我在哪里可以在PC上找到包含LoadCmip5DataFromAdss
的文件,因为在设置中只提供了datasource.R。
答案 0 :(得分:0)
所有该功能都是将zip文件(cmip5_daily_
+您为NtlCode
+ .zip
指定的任何内容)复制到您为dbdir
指定的目录后下载然后解压缩并删除ZIP文件。这是rSQM
的整个函数:
LoadCmip5DataFromAdss <- function(dbdir, NtlCode) {
fname <- paste("cmip5_daily_", NtlCode, ".zip", sep="")
if(nchar(NtlCode)==4 && substr(NtlCode,1,2)=="US"){
adss <- "ftp://cis.apcc21.org/CMIP5DB/US/"
}else{
adss <- "ftp://cis.apcc21.org/CMIP5DB/"
}
srcfname <- paste(adss, fname, sep="")
dstfname <- paste(dbdir, "/", fname, sep = "")
download.file(srcfname, dstfname, mode = "wb")
unzip(dstfname, exdir = dbdir)
unlink(dstfname, force = T)
cat("CMIP5 scenario data at",NtlCode,"is successfully loaded.\n")
}
您可以执行以下操作:
unzip(YOUR_LOCAL_NtlCode_ZIP_FILE, exdir = WHERE_YOUR_dbdir_IS)
vs使用该功能。