APSIM 模型运行和结果处理代码示例

该代码示例展示了如何使用 R 语言运行 APSIM 模型,并处理模型输出结果。

# Define file paths and parameters
apsim_exe <- 'D:/APSIM/APSIM710-r4158/Model/APSIM.exe'
apsim <- readLines('D:/APSIM/APSIM710-r4158/region1wheat/quyu1xiaomai.apsim', warn = FALSE)

# Define soil parameters dataframe (assuming you have it defined as soil_df)
# Make sure soil_df contains the necessary columns: site, lat, lon, LL15, DUL, SAT, BD

# Initialize an empty list to store output
output <- list()

# Loop through each site and depth
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)) {
    # Set soil parameters
    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]
    )
    
    # Run APSIM model
    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)
    
    # Save results as CSV file
    file.copy('D:/APSIM/APSIM710-r4158/region1wheat/SHIYONG.out', paste0('D:/APSIM/APSIM710-r4158/region1wheat/SHIYONG/', soil_df$name[i], '.out'))
    
    # Store output in list
    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 文件内容的可能原因:

  • APSIM 模型运行错误: 有可能是因为在执行 APSIM 模型时出现了错误,导致没有生成输出文件。你可以检查一下 APSIM 模型运行的日志,看是否有错误信息。
  • 模型输入参数错误: 检查 APSIM 模型的输入参数是否正确。
  • 模型本身存在问题: 如果手动运行 APSIM 模型也不能生成输出文件,可能需要检查模型本身是否存在问题。

建议:

  • 仔细检查代码,确保文件路径、参数设置正确。
  • 查看 APSIM 模型运行日志,查找错误信息。
  • 尝试手动运行 APSIM 模型,并检查输出结果。
  • 如果问题依然存在,可以参考 APSIM 官方文档或寻求技术支持。
APSIM 模型运行和结果处理代码示例

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

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