WW3Tool
WAVEWATCH III workflow toolkit · WAVEWATCH III 工作流工具包
A pure-Python preprocessing & run-assist toolkit around WAVEWATCH III (third-generation ocean wave model). Works on Windows / Linux / macOS. Provides CLI / interactive Shell / Desktop GUI / MCP server. Bilingual UI (Chinese / English).
English
What it does
WW3Tool does not replace the WW3 executables (ww3_grid, ww3_prnc, ww3_shel, ...). It automates and chains them:
- Forcing preprocessing: validate / fix / merge wind & current NetCDF forcing files (latitude sorting, variable renaming, time-axis repair).
- Mesh generation: structured rectilinear meshes (arbitrary-depth two-way nesting), unstructured triangular meshes, and SMC meshes.
- Automatic namelists: generate the full WW3 namelist set for v6.07.1 and v7.14 (
ww3_grid.nml,ww3_prnc.nml,ww3_shel.nml,ww3_ounf.nml,ww3_multi.nml, ...). - Run scripts: generate scripts that correctly invoke
ww3_grid/ww3_prnc/ww3_shel. - HPC integration: SSH upload of the workdir to clusters, Slurm configuration, job submission / monitoring / result download.
- Post-processing: wave-height maps, directional spectra, Jason-3 satellite validation, NDBC buoy matching.
Install
One command on every platform (macOS / Linux / Windows). GUI dependencies are included, no extra extra to install:
pip install ww3tool
Requires Python 3.9+. The ww3tool command is ready right after install.
Quick start
ww3tool --help # list all commands
ww3tool workdir my_run # create a workdir from the built-in template
ww3tool config # view / edit the configuration
ww3tool print-params # print the current params.yml
⚠️ You MUST configure
params.ymlfirst
workdircreatesparams.ymlfrom the built-in template. Edit it before running anything: set the wind/current forcing paths, mesh region and resolution, time steps, and output settings — then run the corresponding subcommand to generate the mesh, namelists, and run scripts. WW3Tool cannot know your case untilparams.ymlis configured.
Desktop GUI
ww3tool # no argument launches the desktop GUI
Interactive shell
ww3tool shell
Tab completion and history; shares the same configuration as the GUI.
MCP server (for AI clients)
The repo ships an MCP server (34 ww3tool_* tools + list_commands, stdio transport) for Claude / Cursor and other AI clients. See public/packaging/mcp/ in the GitHub repo.
Links
- GitHub (full docs, mesh generators, examples): https://github.com/ZxyGch/WW3Tool
- Packaging / MCP details:
public/packaging/PACKAGING.mdin the repo
中文
这是什么
WW3Tool 不替代 WW3 可执行文件(ww3_grid、ww3_prnc、ww3_shel 等),而是把这些流程串起来、自动化:
- 强迫场预处理:风场 / 流场 NetCDF 强迫文件的校验、修复与合并(纬度排序、变量重命名、时间轴修正)。
- 网格生成:结构化矩形网格(任意深度双向嵌套)、非结构化三角网格、SMC 网格。
- 自动配置:为 v6.07.1 与 v7.14 生成 WW3 全套 namelist(
ww3_grid.nml、ww3_prnc.nml、ww3_shel.nml、ww3_ounf.nml、ww3_multi.nml等)。 - 运行脚本:自动生成正确调用
ww3_grid/ww3_prnc/ww3_shel的脚本。 - HPC 对接:SSH 上传工作目录到超算、配置 Slurm、提交作业、监控状态、下载结果。
- 后处理绘图:波高填色图、方向谱、Jason-3 卫星验证、NDBC 浮标匹配。
安装
一条指令,所有平台相同(macOS / Linux / Windows),GUI 依赖已内置,无需额外安装:
pip install ww3tool
要求 Python 3.9+,安装后 ww3tool 命令直接可用。
快速开始
ww3tool --help # 查看全部命令
ww3tool workdir my_run # 从内置模板创建工作目录并进入
ww3tool config # 查看 / 修改配置
ww3tool print-params # 打印当前参数
⚠️ 必须配置
params.yml
workdir会从内置模板生成params.yml。运行前必须编辑它:配置风场 / 流场路径、网格区域与分辨率、时间步长、输出设置,再执行对应子命令生成网格、namelist 与运行脚本。不配置params.yml,工具无法知道你的算例是什么。
桌面图形界面(GUI)
ww3tool # 无参数默认启动桌面
交互式命令行(shell)
ww3tool shell
支持 Tab 补全与历史记录,与 GUI 共用同一套配置。
MCP server(供 AI 客户端调用)
仓库提供 MCP server(34 个 ww3tool_* 工具 + list_commands,stdio 传输),可直接接入 Claude / Cursor 等 AI 客户端。配置方法见 GitHub 仓库 public/packaging/mcp/ 目录。
相关链接
- GitHub 仓库(完整文档、网格生成器源码、示例):https://github.com/ZxyGch/WW3Tool
- 安装 / 发布 / MCP 详细说明:仓库内
public/packaging/PACKAGING.md
Metadata
Release files for ww3tool 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ww3tool-0.1.5.tar.gz | 6.4 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ww3tool-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.5 MB
Release files / ww3tool-0.1.5.tar.gz
| Download URL | ww3tool-0.1.5.tar.gz |
|---|---|
| Size | 6.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8ac09ed083fa734f8c2eb3e0faad97025b85487556a90d6c09b8227beb989b6a
|
|
BLAKE2b-256 checksum How to use checksums |
e3e0423663679818f2df3cc05f1f3e935734fb3860d9585ad564ca70f59ab205
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / ww3tool-0.1.5-py3-none-any.whl
| Download URL | ww3tool-0.1.5-py3-none-any.whl |
|---|---|
| Size | 7.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d9d925f7ce3a549a96e0bb52789d780bc8eefad1d6b198eab4cb457e2175549b
|
|
BLAKE2b-256 checksum How to use checksums |
4b878b5a927a68cde1febc5786566b853ca0bb6763382eb7e5e38c0cb3020060
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Security for ww3tool 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.