定义文件路径和参数

apsim_exe <- 'D:/APSIM/APSIM710-r4158/Model/APSIM.exe' apsim <- readLines('D:/APSIM/APSIM710-r4158/region1wheat/quyu1xiaomai.apsim', warn = FALSE)

定义土壤参数数据框 (假设您已将其定义为 soil_df)

确保 soil_df 包含必要的列:site, lat, lon, LL15, DUL, SAT, BD

初始化一个空列表以存储输出

output <- list()

循环遍历每个站点和深度

for (i in 1:nrow(soil_df)) { site <- soil_df$site[i] lat <- soil_df$lat[i] lon <- soil_df$lon[i]

for (depth in c(5, 15, 30, 60)) { ## 设置土壤参数 soil_parameters <- list( Site = site, Depth = depth, LL15 = soil_df$LL15[i], DUL = soil_df$DUL[i], SAT = soil_df$SAT[i], BD = soil_df$BD[i] )

## 运行 APSIM 模型
file_apsim <- paste0('D:/APSIM/APSIM710-r4158/region1wheat/SHIYONG.apsim') 
writeLines(apsim, file_apsim)
system(paste(apsim_exe, file_apsim), wait = TRUE, ignore.stdout = TRUE, show.output.on.console = FALSE)

## 保存结果为 CSV 文件
file.copy('D:/APSIM/APSIM710-r4158/region1wheat/SHIYONG.out', paste0('D:/APSIM/APSIM710-r4158/region1wheat/SHIYONG/', soil_df$name[i], '.out'))

## 将输出存储在列表中
output[[paste0(site, '_', depth)]] <- read.csv(paste0('D:/APSIM/APSIM710-r4158/region1wheat/SHIYONG/', site, '.out'))


print(i)
output_file <- 'D:/APSIM/APSIM710-r4158/region1wheat/output.csv'  # 指定输出文件的路径和文件名
write.csv(output, file = output_file, row.names = FALSE) 

} }

为什么运行没有 out 文件,手动运行是可以的内容:可能是因为代码中指定的文件路径不正确或者没有权限访问该文件路径。请检查文件路径是否正确,并确保您有访问该文件路径的权限。另外,您可以尝试在代码中加入一些错误处理机制,以便更好地调试代码,例如使用 tryCatch() 函数来捕获可能出现的错误。

APSIM 模型运行及结果存储:定义文件路径和参数

原文地址: https://www.cveoy.top/t/topic/nCPE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录