You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R包swmmr的run_swmm无法生成.rpt/.out及swmm5.exe查找求助

解决swmmr调用run_swmm无法生成.rpt/.out文件的问题

问题背景

运行R包swmmr自带的SWMM率定示例时,调用run_swmm函数无法生成预期的.rpt和.out文件。执行代码时SWMM GUI(epaswmm5.exe)会自动启动并在10-15秒后关闭,同时出现警告提示需使用命令行版本swmm5.exe而非GUI版,但安装64位SWMM后未找到swmm5.exe文件。

操作步骤

  • 安装SWMM 5.2.3(64位)
  • 在R中执行以下代码:
remotes::install_github("dleutnant/swmmr")
install.packages("DEoptim")
library(swmmr)
library(DEoptim)

inp_file <- system.file("extdata", "Example1.inp", package = "swmmr", mustWork = TRUE)
tmp_rpt_file <- tempfile(tmpdir = "D:/SWMM_example", fileext = ".rpt")
tmp_out_file <- tempfile(tmpdir = "D:/SWMM_example", fileext = ".out")

swmm_files <- run_swmm(inp = inp_file, rpt = tmp_rpt_file, 
                        out = tmp_out_file, 
                        exec = "D:/SWMM/EPA SWMM 5.2.3 (64-bit)/epaswmm5.exe")

解决方案

1. 获取命令行版swmm5.exe

  • 预编译版本获取:SWMM官方源码仓库提供了预编译的命令行工具,可找到对应64位系统的swmm5.exe文件。
  • 手动编译:若熟悉C++编译流程,可克隆SWMM源码仓库,按照官方文档的编译步骤生成命令行版本的swmm5.exe。

2. 更新R代码中的exec参数

将代码中exec的路径替换为命令行版swmm5.exe的实际路径,示例如下:

swmm_files <- run_swmm(inp = inp_file, rpt = tmp_rpt_file, 
                        out = tmp_out_file, 
                        exec = "D:/SWMM/swmm5.exe")

3. 验证结果

运行修改后的代码,检查D:/SWMM_example目录下是否生成.rpt和.out文件。若仍有问题,查看R控制台的报错信息以进一步定位问题。

内容的提问来源于stack exchange,提问作者Yang Yang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:33:34