Pythonrmp-rwp包完整使用手册
一、包基础说明
1. 包简介
rmp-rwp是面向雷达、气象、风场、遥感类 RWP/RMP 格式数据的专业 Python 解析、处理、可视化工具包,主要用于读取、解析、转换、绘图、批量处理.rwp、.rmp格式文件(国内气象雷达、风廓线雷达、微波辐射计等设备主流原始数据格式)。
- 核心定位:替代传统 MATLAB、Fortran 读写脚本,纯 Python 实现跨平台数据操作;
- 适用场景:气象业务、雷达数据分析、风场反演、环境监测、科研数据处理;
- 格式兼容:原生支持单站 RWP 观测文件、多站点 RMP 汇总文件,兼容主流国产雷达设备输出格式。
补充区分:
.rwp:单设备/单时次原始观测数据(点数据、时序数据);.rmp:多文件合并、网格插值后的汇总产品数据(面数据、格点数据)。
2. 核心功能总览
- 数据读写:读取本地
.rwp/.rmp文件,导出为DataFrame、数组、JSON、CSV、NetCDF; - 字段解析:自动识别雷达仰角、风速、风向、温度、湿度、海拔、时间、经纬度、信噪比等观测字段;
- 数据清洗:缺测值填充、异常值剔除、时序重采样、格式标准化;
- 数据运算:风场合成、垂直剖面计算、时序统计(均值/极值/方差);
- 可视化:时序折线、垂直廓线图、风羽图、热力图、空间分布图;
- 批量处理:遍历文件夹、批量解析、批量转格式、批量出图;
- 格式互转:RWP/RMP ↔ CSV/Excel/NetCDF/TXT。
二、环境与安装
1. 前置依赖
该包依赖科学计算、数据可视化库,需提前安装:
pipinstallnumpy pandas matplotlib tqdm netCDF42. 正式安装
方式1:PyPI 标准安装(推荐)
pipinstallrmp-rwp方式2:源码安装(最新开发版)
gitclone https://github.com/xxx/rmp-rwp.git# 官方源码仓库cdrmp-rwp python setup.pyinstall3. 安装校验
Python 终端执行以下代码,无报错即安装成功:
importrmp_rwpprint(rmp_rwp.__version__)三、核心语法、类、函数与参数详解
包核心对外暴露RwpReader、RmpReader、RwpPlot三大主类,覆盖读取、解析、绘图全流程。
(一)基础导入
fromrmp_rwpimportRwpReader,RmpReader,RwpPlotimportpandasaspdimportnumpyasnp(二)RwpReader 类(解析 .rwp 文件)
用于单文件 RWP 原始数据读取,最常用核心类。
1. 初始化语法
reader=RwpReader(file_path,encoding="gbk",na_value=-9999.0)参数详解
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| file_path | str | 必传 | .rwp文件绝对/相对路径 |
| encoding | str | gbk | 文件编码,国内设备默认 GBK,乱码可试utf-8 |
| na_value | float | -9999.0 | 原始文件缺测标识值,自动转为 pandasNaN |
2. 核心成员方法
read_all()
语法:df = reader.read_all()
功能:读取全量数据,返回pandas.DataFrame,所有观测字段为列,行代表采样点/时次。get_header()
语法:header_dict = reader.get_header()
功能:读取文件头部信息(站点名、经纬度、海拔、设备型号、观测时间、采样频率),返回字典。get_fields()
语法:fields = reader.get_fields()
功能:获取当前文件所有可用观测字段名列表(风速、风向、温度、高度等)。filter_data(cond)
语法:new_df = reader.filter_data(condition)
功能:按条件筛选数据(如指定高度、时间范围),参数为 pandas 布尔条件表达式。to_csv(save_path)/to_excel(save_path)
功能:直接将解析后数据导出为 CSV/Excel。
(三)RmpReader 类(解析 .rmp 文件)
用于多站点/格点 RMP 汇总文件,语法与RwpReader高度兼容。
初始化语法
rmp_reader=RmpReader(file_path,na_value=-9999.0)- 方法同
RwpReader:read_all()、get_header()、to_csv()等; - 区别:RMP 数据多为二维格点数据,返回 DataFrame 包含
lon/lat/网格值等空间字段。
(四)RwpPlot 绘图类(可视化)
依托解析后的 DataFrame 快速绘图,内置气象雷达专用绘图模板。
初始化语法
plotter=RwpPlot(df,header)参数:
df:RwpReader 读取的 DataFrame;header:文件头信息字典(可选,用于标注站点、时间)。
核心绘图方法
plot_time_series(col):单字段时序折线图,col为列名字符串;plot_vertical_profile(h_col, val_col):垂直廓线图(高度-观测值,风廓线雷达核心图);plot_wind_barb(h_col, ws_col, wd_col):绘制气象风羽图(风向风速专用);plot_heatmap(x_col, y_col, val_col):二维热力图;save_fig(save_path, dpi=300):保存图片,dpi 控制清晰度。
(五)全局工具函数(批量处理)
fromrmp_rwpimportbatch_read_rwp,batch_convertbatch_read_rwp(folder_path):遍历文件夹,批量读取所有.rwp文件,返回文件路径+数据列表;batch_convert(src_dir, dst_dir, target_format="csv"):批量格式转换,支持csv/excel/txt/nc。
四、8 个实战应用案例(可直接运行代码)
案例1:单 RWP 文件读取 + 查看基础信息
场景:读取单个风廓线雷达.rwp文件,查看文件头、字段、前10行数据。
fromrmp_rwpimportRwpReader# 1. 初始化读取器file="data/obs.rwp"reader=RwpReader(file,encoding="gbk",na_value=-9999.0)# 2. 读取头部信息header=reader.get_header()print("文件头信息:",header)# 3. 查看所有观测字段fields=reader.get_fields()print("可用字段:",fields)# 4. 读取数据并展示df=reader.read_all()print(df.head(10))案例2:RWP 数据清洗(剔除缺测、异常值)
场景:过滤风速异常值、删除全缺测行,标准化数据。
fromrmp_rwpimportRwpReader reader=RwpReader("data/obs.rwp")df=reader.read_all()# 1. 剔除缺测行df=df.dropna()# 2. 过滤异常风速(合理范围 0~60 m/s)df=df[(df["wind_speed"]>=0)&(df["wind_speed"]<=60)]# 3. 重置索引df=df.reset_index(drop=True)print("清洗后数据行数:",len(df))案例3:数据筛选(指定高度/时间范围)
场景:只提取 500~2000 米高度的风场数据。
fromrmp_rwpimportRwpReader reader=RwpReader("data/obs.rwp")df=reader.read_all()# 筛选高度 500 ~ 2000 米df_filter=reader.filter_data((df["height"]>=500)&(df["height"]<=2000))print(df_filter[["height","wind_speed","wind_direction"]])案例4:RWP 转 CSV/Excel 格式导出
场景:将解析后的原始数据转为通用表格,供Excel查看。
fromrmp_rwpimportRwpReader reader=RwpReader("data/obs.rwp")# 直接导出CSVreader.to_csv("output/result.csv")# 导出Excelreader.to_excel("output/result.xlsx")print("格式转换完成")案例5:绘制垂直风廓线图(雷达核心应用)
场景:绘制「高度-风速」垂直廓线图,气象风廓线雷达最常用图表。
fromrmp_rwpimportRwpReader,RwpPlot reader=RwpReader("data/obs.rwp")df=reader.read_all()header=reader.get_header()# 初始化绘图器plot=RwpPlot(df,header)# 绘制垂直廓线:高度列、风速列plot.plot_vertical_profile(h_col="height",val_col="wind_speed")# 保存图片plot.save_fig("output/风廓线图.png",dpi=300)案例6:绘制风羽图(风向风速专业可视化)
场景:气象标准风羽图,直观展示不同高度风向、风速。
fromrmp_rwpimportRwpReader,RwpPlot reader=RwpReader("data/obs.rwp")df=reader.read_all()plot=RwpPlot(df)# 风羽图:高度、风速、风向 三列字段plot.plot_wind_barb(h_col="height",ws_col="wind_speed",wd_col="wind_direction")plot.save_fig("output/风羽图.png")案例7:批量解析整个文件夹 RWP 文件
场景:遍历文件夹下所有.rwp,批量读取并汇总数据。
fromrmp_rwpimportbatch_read_rwpimportpandasaspd folder="./rwp_files/"# 批量读取所有rwp文件file_list,data_list=batch_read_rwp(folder)# 合并所有文件数据为一张总表all_df=pd.concat(data_list,ignore_index=True)all_df.to_csv("output/批量汇总数据.csv",index=False)print(f"共读取{len(file_list)}个文件,总数据量:{len(all_df)}行")案例8:读取 RMP 格点文件 + 绘制热力图
场景:解析多站点汇总.rmp格点数据,绘制空间热力图。
fromrmp_rwpimportRmpReader,RwpPlot# 读取RMP格点文件rmp_reader=RmpReader("data/grid.rmp")df=rmp_reader.read_all()# 绘制经纬度-温度热力图plot=RwpPlot(df)plot.plot_heatmap(x_col="lon",y_col="lat",val_col="temperature")plot.save_fig("output/格点热力图.png")五、常见错误、报错原因与解决方案
1. 报错:UnicodeDecodeError: 'gbk' codec can't decode byte
- 原因:文件编码不是 GBK(部分境外设备/新版系统使用 UTF-8);
- 解决:手动指定编码
encoding="utf-8"reader=RwpReader("xxx.rwp",encoding="utf-8")
2. 报错:FileNotFoundError文件不存在
- 原因:文件路径错误、相对路径层级不对、文件名大小写问题(Linux/Mac 区分大小写);
- 解决:使用绝对路径,检查文件后缀是否为
.rwp/.rmp。
3. 读取后全是 NaN 空值
- 原因1:
na_value设置错误,和文件实际缺测值不匹配(部分设备用-99999、-8888); - 解决:查看原始文件,修改缺测参数:
reader=RwpReader("xxx.rwp",na_value=-99999.0) - 原因2:文件损坏、非标准 RWP/RMP 格式;
- 解决:用文本编辑器打开文件,校验头部格式。
4.KeyError: 'wind_speed'字段不存在
- 原因:不同设备字段名不统一(如
ws/风速/windspd); - 解决:先执行
get_fields()查看真实字段名,再使用。
5. 绘图无数据/空白图
- 原因:数据已被全部过滤、高度/风速列数据全为空;
- 解决:先打印
df检查数据,再执行绘图。
6. 批量读取batch_read_rwp遍历不到文件
- 原因:文件夹内存在子目录、文件后缀大写
.RWP; - 解决:统一后缀为小写,或开启递归遍历(部分版本支持
recursive=True)。
7. 导出 Excel 报错ModuleNotFoundError: No module named 'openpyxl'
- 原因:导出 Excel 缺少依赖;
- 解决:
pipinstallopenpyxl
六、使用注意事项 & 最佳实践
编码规范
国内气象雷达 RWP/RMP 优先使用gbk编码,出现乱码再切换utf-8,不要混用编码。缺测值优先校验
不同厂商设备缺测标识不一致(-9999/-8888/-99999),读取前务必确认原始文件缺测值。大数据量优化
单个 RWP 文件超过 10 万行时,建议分步读取、分批清洗,避免内存溢出。格式区分
- 单点时序数据用
RwpReader读.rwp; - 多站点格点产品用
RmpReader读.rmp,不要混用类。
- 单点时序数据用
文件备份
批量转换/处理前,备份原始 RWP/RMP 文件,该包仅读取不修改原文件,但避免误删。跨平台兼容
Windows 路径用\\或原始字符串r"路径";Linux/Mac 用/。可视化规范
气象风场绘图优先使用内置plot_wind_barb、plot_vertical_profile,适配气象行业标准样式。版本兼容
Python 版本建议3.7 ~ 3.11,3.12 以上部分依赖库存在兼容问题。
《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章,前6章涵盖深度学习基础,包括张量运算、神经网络原理、数据预处理及卷积神经网络等;后5章进阶探讨图像、文本、音频建模技术,并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法,每章附有动手练习题,帮助读者巩固实战能力。内容兼顾数学原理与工程实现,适配PyTorch框架最新技术发展趋势。