夜雨聆风学习资料网

ARTICLE · 1306538

【模式教程】HYSPLIT Linux 版安装与试运行

【模式教程】HYSPLIT Linux 版安装与试运行

HYSPLIT(Hybrid Single-Particle Lagrangian Integrated Trajectory)是美国 NOAA 开发的大气输送与扩散模型,广泛用于气团前后向轨迹、污染物输送、野火烟羽扩散等研究。

本文记录如何在 Linux 服务器上安装 HYSPLIT,并完成一次简单的轨迹模拟、结果解读与可视化。

一、环境准备

本次使用的环境:

  • 操作系统:AlmaLinux 10.1
  • 系统架构:x86_64
  • HYSPLIT:v5.4.2 Public
  • 开发工具:VS Code + Remote-SSH

首先从 NOAA HYSPLIT 官网 (https://www.ready.noaa.gov/HYSPLIT.php)下载 Linux x86_64 预编译安装包:hysplit.v5.4.2_x86_64_public.tar.gz

预编译版本不需要自行编译 Fortran 源代码。

二、安装 HYSPLIT

1. 上传安装包

在本地终端执行:

1
2
3
rsync -avhP --partial \  ~/Downloads/hysplit.v5.4.2_x86_64_public.tar.gz \  user@server:~/models/

利用rsync进行文件传输。将 user@server 替换为自己的服务器账户与地址,在Linux系统提前创建 ~/models 目录存放hysplit安装包。

2. 解压安装包

在 Linux 服务器执行:

1
2
3
4
5
cd ~/modelstar -xzf hysplit.v5.4.2_x86_64_public.tar.gzcd hysplit.v5.4.2_x86_64_public

解压后包含以下主要目录:

  • exec/: 模型可执行程序
  • working/: 示例数据与工作文件
  • graphics/: 绘图资源
  • examples/: 示例程序和配置

3. 检查可执行程序

1
2
file exec/hyts_stdldd exec/hyts_std

本次安装的 hyts_std 是静态链接的 x86_64 程序,ldd 显示“不是动态可执行文件”是正常现象。

三、运行第一个前向轨迹模拟

使用 HYSPLIT 自带的 oct1618.BIN 气象数据进行测试。

1. 创建测试目录

1
2
3
4
HYSPLIT=$HOME/models/hysplit.v5.4.2_x86_64_publicmkdir -p "$HYSPLIT/test_trajectory"cd "$HYSPLIT/test_trajectory"

如果安装路径不同,需要相应修改 HYSPLIT 变量。

2. 创建 CONTROL 文件

HYSPLIT 使用 CONTROL 文件指定轨迹模拟的初始条件、运行时长和气象数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
cat > CONTROL <<EOF00 00 00 00140.0 -90.0 100.024010000.01$HYSPLIT/working/oct1618.BIN./tdumpEOF

主要参数说明:

参数
含义
00 00 00 00
从气象文件首个时次开始
1
一条轨迹
40.0 -90.0 100.0
起点纬度、经度、距地高度(m)
24
前向模拟 24 小时,负数为后向模拟
0
使用气象数据的垂直速度
10000.0
模型顶部高度(m AGL)
oct1618.BIN
输入气象文件
tdump
输出轨迹文件名

3. 运行模型

1
2
3
4
"$HYSPLIT/exec/hyts_std" > run.log 2>&1echo "Exit code: $?"tail -n 20 run.log

若日志显示:

1
2
Percent complete: 100.0Complete Hysplit

并在/test_trajectory生成 tdump 文件,说明轨迹模拟成功。

四、tdump 轨迹输出文件

tdump 是 HYSPLIT 生成的 ASCII 文本文件,记录轨迹每个时刻的经纬度、高度和相关气象诊断变量。

本次模拟的文件共有 30 行:

  • 前 5 行:头文件(Header)
  • 后 25 行:逐小时轨迹位置(Endpoints)

1. 头文件第 1 行:气象网格信息

1
1     1
  • 第一个 1:本次模拟使用 1 个气象网格。
  • 第二个 1:轨迹输出文件的格式版本标识。

2. 头文件第 2 行:气象数据来源

1
NGM     95    10    16     0     0
字段
含义
NGM
气象模式标识(Nested Grid Model)
95
1995 年
10
10 月
16
16 日
0
00 UTC
0
预报时效 0 小时

说明本次使用的示例气象数据从 1995 年 10 月 16 日 00:00 UTC 开始。

3. 头文件第 3 行:轨迹类型

1
1 FORWARD OMEGA
  • 1: 模拟轨迹的数量。
  • FORWARD: 前向轨迹,追踪气团未来的运动。
  • OMEGA: 采用气象数据中的垂直速度场计算垂直运动。

4. 头文件第 4 行:起始位置

1
95 10 16 0 40.000 -90.000 100.0

表示:

  • 起始时间:1995-10-16 00:00 UTC
  • 纬度:40.000°N
  • 经度:90.000°W
  • 起始高度:100 m AGL

注意:AGL(Above Ground Level)表示相对于当地地面的高度,不是海拔高度。

5. 头文件第 5 行:诊断变量

1
1 PRESSURE

表示本次输出 1 个附加诊断变量,即 PRESSURE(气压,hPa)。

除标准的时间、经纬度、高度外,也可以根据配置与气象数据条件,输出其他诊断变量。

6. 轨迹数据读取

例如第 4 小时的轨迹记录:

1
1 1 95 10 16 4 0 0 4.0 39.433 -89.160 72.0 987.2

这行包含 13 列:

列
变量
含义
1
Trajectory
轨迹编号
2
Grid
气象网格编号
3–7
Date/Time
UTC 年、月、日、时、分
8
Forecast hour
气象预报时效
9
Age
轨迹累计运行时间(h)
10
Latitude
纬度(°)
11
Longitude
经度(°)
12
Height
距地高度(m AGL)
13
Pressure
气压(hPa)

这一行的物理意义是:

气团从起点出发 4 小时后,移动到 39.433°N、89.160°W,高度为 72.0 m AGL,气压为 987.2 hPa。

其中 Age 是轨迹运行时间,不能与气象数据的 Forecast hour 混淆。

7. 本次模拟的轨迹结果

运行时间
纬度
经度
高度(m AGL)
0 h
40.000
-90.000
100.0
6 h
39.110
-88.868
63.9
12 h
38.127
-88.229
35.5
18 h
37.713
-88.237
18.8
24 h
37.589
-88.195
16.2

气团整体向东南方向输送,距地高度逐渐降低。

需要注意,AGL 高度变化还受到地形影响,不能仅凭距地高度下降就判断污染物发生了沉降。

五、轨迹可视化

HYSPLIT 自带 trajplot 程序,可以直接读取 tdump 文件并生成轨迹地图。

1
2
3
4
5
"$HYSPLIT/exec/trajplot" \  -itdump \  -otrajplot.html \  +g1 \  -j"$HYSPLIT/graphics/arlmap"

运行成功后会显示:

1
2
3
Started Trajectory DrawingHYSPLIT version: hysplit.v5.4.2Complete Trajplot

生成的 trajplot.html 可以直接在浏览器中查看。

VS Code 用户的小技巧:

如果使用 Remote-SSH 连接 Linux 服务器,可以安装 Microsoft 的 Live Preview 扩展。

直接打开服务器上的 trajplot.html,右键选择 Show Preview,即可在 VS Code 中查看轨迹图,不需要将结果下载到本地。

参考资料:

  • https://www.ready.noaa.gov/HYSPLIT.php
  • https://www.ready.noaa.gov/hysplitusersguide/S262.htm
  • https://hysplit2.arl.noaa.gov/hysplitusersguide/S263.htm

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料