观澜交付 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
..
README.md 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
apply_theme.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
build_collapse_3d.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
build_hub.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
build_viv_page.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
mk_share.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
pain_pitch_imbalance.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
pain_viv.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
pain_yawslip.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
wake.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
wake_anim.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen
wake_real.py 2912bf6644 观澜 v2 源代码快照(2.96.0)—— 干净仓库:只含源码,排除产物/依赖/大件 vor 3 Tagen

README.md

sim_hub — 仿真集成台 构建与出图

产物

文件 落点 用途
仿真集成台.html outputs/rudong/windscada/_demo/sim/ 本机版:13 个仿真入口全可点(本机服务 + 本地文件),演示用
仿真集成台_分享版.html 同上 分享版:入口列清单不外链,可发出去

单一内容源 = build_hub.py。 分享版由 mk_share.py 后处理产出,不单独维护。 改内容改 build_hub.py,两版重跑一次即可,不要直接手改 HTML(会与脚本脱钩)。

python3 build_hub.py && python3 mk_share.py

mk_share.py 带断言:13 个本机链接必须全部转成 nolink 卡片,转换后残留必须为 0,否则失败。

结构(改内容时对照)

01 仿真架构(四层 SVG)· 02 整体价值 · 03 我们能做什么(四组入口 + 场级尾流)· 04 培训编排(前置一篇 + 正课六篇)

「需要的基础条件」一节按 2026-09-08 用户裁决未写。

出图脚本

脚本 出什么 依赖
wake_real.py 真实山地风场尾流静态图 → assets/wake_real.png ⚠ 见下
wake_anim.py 风向扫过的动态仿真帧 → 再用 ffmpeg 合成 assets/wake_anim.mp4 ⚠ 见下
wake.py 叶轮直径 vs 间距的示意三联图(合成布局,非真实场) 仅 PyWake

⚠ 两条外部依赖,换机器会断:

  1. Python 环境 = ~/.venvs/windsim(仓外隔离,装了 PyWake / ROSCO / pyproj)。 不要装进生产 venv —— PyWake 会拉动 numpy/pandas 版本,可能打坏分析主链。

    python3 -m venv ~/.venvs/windsim && ~/.venvs/windsim/bin/pip install py_wake rosco pyproj
    
    1. 机位坐标源写死在 wake_real.py / wake_anim.py 里,指向另一个仓: /Users/yuanying/wind-analytics/app_ETL/configs/contracts/mawang_machine_map.csv。 assets/ 里已存好出图结果,所以日常重建集成台不需要它;只有要重出尾流图时才需要。

    合成视频:

    ffmpeg -y -framerate 8 -i frames/f%03d.png -vf "scale=1600:-2:flags=lanczos" \
    -c:v libx264 -pix_fmt yuv420p -crf 20 assets/wake_anim.mp4
    

出图时踩过的两个坑(都不报错,只出错结果)

  1. 机位坐标表混两套坐标系。 源表 90 台里 50 台是经纬度、40 台是 3 度带投影米制 (中央经线 108°E,EPSG:4545;4547 是 CM114E,别记岔)。按期别干净分开 = 两期不同单位测绘。 当经纬度直读 → 场跨度算成 1e11 量级而不抛异常。脚本里已加跨度断言。

  2. 旋转脱敏时风向符号。 机位逆时针转 θ,风向必须 wd_true − θ(气象风向自北顺时针量)。 写成 +θ 尾流朝错误方向拖,看图看不出来。 唯一可靠检出:刚性变换下逐台亏损须与不旋转基准逐位相同(实测差 0.0000;符号错时差 73–84 个百分点)。 另:flow_map 的 WS_eff 本就是 (len(Y), len(X)),不要用 shape 相等去猜方向——网格常是方阵,必然误判。已改断言。

详见主仓 TASKS.md 的 [2026-09-08] 培训中心仿真集成线。