Python ARM雷达工具包(Py-ART)安装与使用指南
1. 项目概述
Python ARM雷达工具包(Py-ART)是一个基于Python的开源气象雷达数据处理库,由美国能源部大气辐射测量(ARM)用户设施支持开发。该项目提供了一套完整的工具集,用于处理和分析各种天气雷达数据,包括降水雷达和云雷达数据。
Py-ART构建在科学Python生态系统之上,采用BSD 3-Clause许可证分发,被设计为可供雷达和大气科学社区的其他研究人员使用,用于检查、处理和分析多种类型天气雷达的数据。
2. 核心功能模块
2.1 数据输入输出模块 (io)
Py-ART支持多种雷达数据格式的读取和写入,包括:
- CF/Radial格式
- NEXRAD数据(存档、CDM、Level2、Level3)
- SIGMET格式
- UF格式
- MDV格式
- RSL库支持的多种格式
2.2 数据处理与校正模块 (correct)
提供丰富的雷达数据处理功能:
- 衰减校正
- 偏差和噪声校正
- 速度退模糊处理
- 相位处理
- 斑点去除
- 区域退模糊
2.3 数据检索与分析模块 (retrieve)
包含多种雷达数据分析算法:
- 平显高度位置指示器(CAPPI)
- 频率高度图(CFAD)
- 回波分类
- 水凝物分类
- 定量降水估计(QPE)
- 速度方位显示(VAD)
2.4 数据可视化模块 (graph)
提供强大的数据可视化功能:
- 雷达数据显示
- 网格地图显示
- 最大CAPPI显示
- 对流层分层方案绘图
3. 安装方法
3.1 使用Conda安装(推荐)
创建新的conda环境并安装Py-ART:
conda env create -f environment.yml
或者使用基础环境安装:
conda create -n pyart_env -c conda-forge python=3.13 arm_pyart
安装最新版本:
conda install -c conda-forge arm_pyart
3.2 从源码安装
获取最新源代码:
git clone https://gitcode.com/gh_mirrors/py/pyart
安装到用户目录:
python setup.py install --user
开发模式安装:
pip install -e .
4. 依赖要求
4.1 必需依赖
- Python 3.11, 3.12, 或 3.13
- NumPy
- SciPy
- matplotlib
- netCDF4
- pooch
- Cython
- setuptools
- cartopy
- cmweather
- xradar
- xarray
- mda-xdrlib
- fsspec
- s3fs
- pandas
4.2 可选依赖
- TRMM雷达软件库(RSL)- 支持额外数据格式和速度退模糊
- h5py - 读取HDF5格式文件
- CyLP/PyGLPK/CVXOPT - 线性规划求解器
- Basemap - 地理地图绘制(推荐使用cartopy)
- wradlib - 差分相位场纹理计算
- pytest - 单元测试运行
- gdal - GeoTIFF输出
- metpy - 网格剖面绘图
5. 配置文件设置
Py-ART的配置文件指定了默认元数据、字段名称、颜色映射和绘图限制。可以通过设置环境变量PYART_CONFIG来自定义配置文件:
export PYART_CONFIG=path_to_myconfig/myconfig.yml
配置文件支持YAML格式,允许用户灵活定制Py-ART的行为,以适应不同的研究需求或数据格式偏好。
6. 基本使用示例
6.1 读取雷达数据
import pyart
# 读取CF/Radial格式数据
radar = pyart.io.read('radar_data.nc')
# 读取NEXRAD数据
radar = pyart.io.read_nexrad_archive('nexrad_data.bz2')
6.2 数据可视化
import matplotlib.pyplot as plt
# 创建雷达显示
display = pyart.graph.RadarDisplay(radar)
fig = plt.figure(figsize=(10, 8))
# 绘制反射率PPI图
display.plot('reflectivity', 0, vmin=-20, vmax=60)
display.set_limits(ylim=(-150, 150), xlim=(-150, 150))
plt.show()
6.3 数据处理
# 应用门过滤器
gatefilter = pyart.filters.GateFilter(radar)
gatefilter.exclude_transition()
gatefilter.exclude_below('reflectivity', 10)
# 速度退模糊处理
vel_dealias = pyart.correct.dealias_region_based(
radar, vel_field='velocity', keep_original=False)
7. 项目目录结构
Py-ART的项目结构设计清晰,便于开发者和研究人员快速找到所需组件:
pyart/
├── core/ # 核心数据模型
├── io/ # 数据输入输出
├── correct/ # 数据校正处理
├── retrieve/ # 数据检索分析
├── graph/ # 数据可视化
├── map/ # 地图映射功能
├── filters/ # 数据过滤
├── util/ # 实用工具
├── testing/ # 测试数据
└── examples/ # 使用示例
8. 扩展和相关软件
Py-ART可以与多个相关项目配合使用:
- ARTView: 交互式雷达查看浏览器
- pyrad: MeteoSwiss和MeteoFrance开发的实时数据处理框架
- PyTDA: Python湍流检测算法
- SingleDop: 单多普勒反演工具包
- DualPol: 双极化雷达算法Python接口
- wradlib: 天气雷达数据处理的另一个开源库
9. 测试和贡献
9.1 运行测试
安装测试依赖:
conda install -c conda-forge pytest open-radar-data
运行测试套件:
pytest --pyargs pyart
9.2 贡献代码
Py-ART是一个开源社区项目,欢迎所有用户的贡献。贡献的代码必须能够在BSD 3-Clause许可证下分发。详细的贡献指南请参考CONTRIBUTING.rst文件。
10. 引用要求
如果在出版物中使用Py-ART,请引用:
Helmus, J.J. & Collis, S.M., (2016). The Python ARM Radar Toolkit (Py-ART), a Library for Working with Weather Radar Data in the Python Programming Language. Journal of Open Research Software. 4(1), p.e25. DOI: http://doi.org/10.5334/jors.119
同时,如果使用了Py-ART中实现的已发表科学方法,也应该引用相关的方法论文。参考文献信息可以在所用函数的文档中找到。
Py-ART提供了丰富的示例代码,位于examples目录中,涵盖了从基本数据读取到高级处理的各个方面,是学习和使用该工具包的最佳起点。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





