HydroPilot

命令行

命令行

HydroPilot 提供四个命令行入口,分别负责配置校验、冒烟测试、参数写入和单次运行。

命令概览

命令作用
hydropilot-validate校验配置并输出诊断信息
hydropilot-test用默认参数执行一次完整冒烟测试
hydropilot-apply将设计参数或物理参数写入工程副本
hydropilot-run从 run YAML 执行一次单次评估

典型使用顺序

面对一份新配置,通常建议按下面的顺序来:

  1. 先跑 hydropilot-validate,确认配置结构正确。
  2. 再跑 hydropilot-test,确认真实模型工作流已经接通。
  3. 之后再用 hydropilot-run 或 Python 接口做受控评估。
  4. 如果你想得到一个已经写好参数的工程副本,就用 hydropilot-apply

hydropilot-validate

bash
hydropilot-validate <config.yaml>

这个命令用于在不运行模型的前提下检查配置。它会解析 YAML,在需要时展开模板,再对展开后的通用配置做校验,并逐行输出诊断信息。

要点是:

  • 退出码 0 表示校验通过,即使有 warning 也如此
  • 退出码 1 表示至少存在一条 error 级诊断
  • 这个命令是只读的,不会改动工程文件

hydropilot-test

bash
hydropilot-test <config.yaml>

这是完整的冒烟测试入口。HydroPilot 会加载配置,根据参数范围生成默认测试向量,创建临时工程副本,运行一次模型,然后提取输出并计算目标和诊断项。

它适合用来验证这些事情:

  • 工程路径是否正确
  • 模型命令是否真的能跑起来
  • 输出文件是否可读
  • 评价指标是否已经接通

为了便于排查,这个命令会强制使用 parallel = 1keepInstances = 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>

这是单次运行入口。它会加载指定配置,评估一组参数,并输出目标值、约束、诊断项和结果位置摘要。

它的定位很明确:

  • 适合一次性的受控评估
  • 不适合承担优化实验
  • 不负责实验管理

如果你需要重复运行,或者需要让算法驱动整个流程,就应该转到 SimModelUQPyLAdapter

命令行适合解决什么问题

  • 尽早发现配置问题
  • 对真实工程做一次完整冒烟测试
  • 生成可检查的参数写入结果
  • 在不写 Python 脚本的情况下完成单次运行

命令对比

命令是否运行模型是否写入文件最适合的场景
hydropilot-validate结构化配置检查
hydropilot-test端到端冒烟测试
hydropilot-apply生成可检查的工程副本
hydropilot-run单次参数评估

建议继续阅读