命令行
HydroPilot 提供四个命令行入口,分别负责配置校验、冒烟测试、参数写入和单次运行。
命令概览
| 命令 | 作用 |
|---|---|
hydropilot-validate | 校验配置并输出诊断信息 |
hydropilot-test | 用默认参数执行一次完整冒烟测试 |
hydropilot-apply | 将设计参数或物理参数写入工程副本 |
hydropilot-run | 从 run YAML 执行一次单次评估 |
典型使用顺序
面对一份新配置,通常建议按下面的顺序来:
- 先跑
hydropilot-validate,确认配置结构正确。 - 再跑
hydropilot-test,确认真实模型工作流已经接通。 - 之后再用
hydropilot-run或 Python 接口做受控评估。 - 如果你想得到一个已经写好参数的工程副本,就用
hydropilot-apply。
hydropilot-validate
bash
hydropilot-validate <config.yaml>这个命令用于在不运行模型的前提下检查配置。它会解析 YAML,在需要时展开模板,再对展开后的通用配置做校验,并逐行输出诊断信息。
要点是:
- 退出码
0表示校验通过,即使有 warning 也如此 - 退出码
1表示至少存在一条 error 级诊断 - 这个命令是只读的,不会改动工程文件
hydropilot-test
bash
hydropilot-test <config.yaml>这是完整的冒烟测试入口。HydroPilot 会加载配置,根据参数范围生成默认测试向量,创建临时工程副本,运行一次模型,然后提取输出并计算目标和诊断项。
它适合用来验证这些事情:
- 工程路径是否正确
- 模型命令是否真的能跑起来
- 输出文件是否可读
- 评价指标是否已经接通
为了便于排查,这个命令会强制使用 parallel = 1 和 keepInstances = true。
hydropilot-apply
bash
hydropilot-apply <apply.yaml>这个命令会先复制一份新的工程副本,再把参数写进去。
典型的 apply 文件长这样:
yaml
config: path/to/config.yaml
mode: design
values:
CN2: 72.5
ALPHA_BF: 0.3
GW_DELAY: 120
outDir: ./applied_project如果你的值还处在设计空间,就用 mode: design。如果你已经拿到了物理参数值,就用 mode: physical。
hydropilot-run
bash
hydropilot-run <run.yaml>这是单次运行入口。它会加载指定配置,评估一组参数,并输出目标值、约束、诊断项和结果位置摘要。
它的定位很明确:
- 适合一次性的受控评估
- 不适合承担优化实验
- 不负责实验管理
如果你需要重复运行,或者需要让算法驱动整个流程,就应该转到 SimModel 或 UQPyLAdapter。
命令行适合解决什么问题
- 尽早发现配置问题
- 对真实工程做一次完整冒烟测试
- 生成可检查的参数写入结果
- 在不写 Python 脚本的情况下完成单次运行
命令对比
| 命令 | 是否运行模型 | 是否写入文件 | 最适合的场景 |
|---|---|---|---|
hydropilot-validate | 否 | 否 | 结构化配置检查 |
hydropilot-test | 是 | 是 | 端到端冒烟测试 |
hydropilot-apply | 否 | 是 | 生成可检查的工程副本 |
hydropilot-run | 是 | 是 | 单次参数评估 |
